]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
[multiple changes]
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
5fcafa60
KY
12011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
2
3 PR target/49547
4 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with
5 lzcntintrin.h.
6 (x86_64-*-*): Likewise.
7 * config/i386/i386.opt (mlzcnt): New.
8 * config/i386/abmintrin.h: File removed.
9 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
10 * config/i386/lzcntintrin.h: ... here. New file.
11 (__lzcnt): Rename to ...
12 (__lzcnt32): ... this.
13 * config/i386/bmiintrin.h (head): Update copyright year.
14 (__lzcnt_u16): Removed.
15 (__lzcnt_u32): Likewise.
16 (__lzcnt_u64): Likewise.
17 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
18 is defined, remove abmintrin.h.
19 * config/i386/cpuid.h (bit_LZCNT): New.
20 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
21 LZCNT feature.
22 * config/i386/i386-c.c (ix86_target_macros_internal): Define
23 __LZCNT__ if needed.
24 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
25 (ix86_option_override_internal): Handle LZCNT option.
26 (ix86_valid_target_attribute_inner_p): Likewise.
27 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
28 * config/i386/i386.h (TARGET_LZCNT): New.
29 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
30 * config/i386/i386.md (clz<mode>2): Update insn constraint.
31 (clz<mode>2_lzcnt): Likewise.
32 * doc/invoke.texi: Mention -mlzcnt option.
33 * doc/extend.texi: Likewise.
34
655b30bf
JB
352011-08-01 Julian Brown <julian@codesourcery.com>
36
37 * configure.ac (fixed-point): Add ARM support.
38 * configure: Regenerate.
39 * config/arm/arm.c (arm_fixed_mode_set): New struct.
40 (arm_set_fixed_optab_libfunc): New.
41 (arm_set_fixed_conv_libfunc): New.
42 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
43 ARM-specific names.
44 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
45 return values in SImode.
46 (arm_return_in_msb): Return fixed-point types in the msb.
47 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
48 upwards.
49 (arm_scalar_mode_supported_p): Support fixed-point modes.
50 (arm_vector_mode_supported_p): Support vector fixed-point modes.
51 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
52 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
53 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
54 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
55 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
56 New mode iterators.
57 (qaddsub_suf): New mode attribute.
58 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
59 vector modes.
60 * config/arm/predicates.md (sat_shift_operator): New predicate.
61 * config/arm/arm-fixed.md: New.
62 * config/arm/arm.md: Include arm-fixed.md.
63 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
64
460b171d
JB
652011-08-01 Julian Brown <julian@codesourcery.com>
66
67 * calls.c (emit_library_call_value_1): Support padding for libcall
68 arguments and return values.
69 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
70 downwards in big-endian mode.
71
b6193c94
RO
722011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
73
74 PR debug/49887
75 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
76 * config/sol2-protos.h: Likewise.
77 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
78 solaris_code_end.
79 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
80 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
81 solaris_file_end.
82 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
83
0747aae4
JB
842011-08-01 Julian Brown <julian@codesourcery.com>
85
86 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
87
848fac28
JB
882011-08-01 Julian Brown <julian@codesourcery.com>
89
90 * final.c (output_addr_const): Print fixed-point constants as
91 decimal not hex.
92
e62a2b6e
RG
932011-08-01 Richard Guenther <rguenther@suse.de>
94
95 * stor-layout.c (initialize_sizetypes): Properly sign-extend
96 bitsiztype TYPE_MAX_VALUE.
97
f64398b5
JB
982011-08-01 Julian Brown <julian@codesourcery.com>
99
100 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
101 comparison helpers.
102
c469244e
RH
1032011-07-31 Richard Henderson <rth@redhat.com>
104
105 * config/h8300/crti.asm: Add flags to .section directive.
106 * config/h8300/crtn.asm: Likewise.
107
b87ac615
RH
1082011-07-31 Richard Henderson <rth@redhat.com>
109
110 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
111 * tree.c (build_common_tree_nodes): Likewise.
112
05eb5cc3
KK
1132011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
114
115 PR target/49880
116 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
117 (divsi3_i1): Likewise.
118
a3059635
BS
1192011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
120
121 PR tree-optimization/49749
122 * tree-ssa-reassoc.c (get_rank): New forward declaration.
123 (PHI_LOOP_BIAS): New macro.
124 (phi_rank): New function.
125 (loop_carried_phi): Likewise.
126 (propagate_rank): Likewise.
127 (get_rank): Add calls to phi_rank and propagate_rank.
128
3ee7be4c
L
1292011-07-31 H.J. Lu <hongjiu.lu@intel.com>
130
131 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
132 of TARGET_64BIT.
133 (PTRDIFF_TYPE): Likewise.
134
deb1f617
UB
1352011-07-31 Uros Bizjak <ubizjak@gmail.com>
136
137 PR target/49920
138 * config/i386/i386.md (strset): Do not expand strset_singleop
139 when %eax or $edi are fixed.
140 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
141 (*strsetsi_1): Ditto.
142 (*strsethi_1): Ditto.
143 (*strsetqi_1): Ditto.
144 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
145 (*rep_stossi): Ditto.
146 (*rep_stosqi): Ditto.
147 (cmpstrnsi): Also fail when %ecx is fixed.
148 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
149 (*cmpstrnqi_1): Ditto.
150 (*strlenqi_1): Ditto.
151 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
152 (*strmovsi_1): Ditto.
153 (*strmovhi_1): Ditto.
154 (*strmovqi_1): Ditto.
155 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
156 (*rep_movsi): Ditto.
157 (*rep_movqi): Ditto.
158
03e69b12
MP
1592011-07-31 Mikael Pettersson <mikpe@it.uu.se>
160
161 PR target/47908
162 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
163 Disable instruction scheduling for non-ColdFire targets.
164 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
165
dcaac07d
RE
1662011-07-31 Revital Eres <revital.eres@linaro.org>
167
168 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
169 of anti-dep edge from a branch.
170 (add_cross_iteration_register_deps): Create anti-dep edge from
171 a branch.
172
413e50a2
RE
1732011-07-31 Revital Eres <revital.eres@linaro.org>
174
175 * modulo-sched.c: Change comment.
176 (reset_sched_times): Fix print message.
177 (print_partial_schedule): Add print info.
178
f047e518
TV
1792011-07-31 Tom de Vries <tom@codesourcery.com>
180
181 PR middle-end/43513
182 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
183 get_object_alignment and TYPE_ALIGN.
184
b3421a06
TV
1852011-07-30 Tom de Vries <tom@codesourcery.com>
186
187 PR middle-end/43513
188 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
189 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
190
cc822cc1
RO
1912011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
192
193 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
194 <sys/sbd.h>.
195 (cpu_types): New array.
196 (cputype): New function.
197 (host_detect_local_cpu): Only define buf, f if !__sgi__.
198 Use scaninvent instead of /proc/cpuinfo if __sgi__.
199 * config.host: Also use driver-native.o, mips/x-native on
200 mips-sgi-irix*.
deb1f617 201 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
cc822cc1
RO
202 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
203 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
204
25142650
JJ
2052011-07-29 Jakub Jelinek <jakub@redhat.com>
206
207 PR middle-end/49897
208 PR middle-end/49898
209 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
210 in nested parallel and outer is a gimple_reg, mark it as addressable
211 and set its bit in task_shared_vars bitmap too.
212
89840058
UB
2132011-07-29 Uros Bizjak <ubizjak@gmail.com>
214
215 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
216
d2da41f5
RO
2172011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
218
219 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
220 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
221 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
222 AMASK_LOCKPFTCHOK): Define.
223 (host_detect_local_cpu): Remove buf, f, cpu_names.
224 Define cpu_types, implver, amask.
225 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
226 native CPU.
227 * config.host: Also use driver-alpha.o, alpha/x-alpha on
228 alpha*-dec-osf*.
229 * config/alpha/osf5.h [__alpha__ || __alpha]
230 (host_detect_local_cpu): Declare.
231 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
232 (DRIVER_SELF_SPECS): Define.
233
dadecee2
UB
2342011-07-29 Uros Bizjak <ubizjak@gmail.com>
235
236 PR target/47715
237 * config/i386/i386.md (*load_tp_x32): New.
238 (*load_tp_x32_zext): Ditto.
239 (*add_tp_x32): Ditto.
240 (*add_tp_x32_zext): Ditto.
241 (*load_tp_<mode>): Disable for TARGET_X32 targets.
242 (*add_tp_<mode>): Ditto.
243 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
244 ptr_mode and convert to Pmode if needed.
245
db7ccee2 2462011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 247
db7ccee2
GJL
248 PR target/49687
249 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
250 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
251 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
252 Add X to register footprint: Clobber r26/r27.
253
96d03496
RG
2542011-07-29 Richard Guenther <rguenther@suse.de>
255
256 * builtins.c (fold_builtin_signbit): Build the comparison
257 with a proper type.
258
64fb0d3a
RG
2592011-07-29 Richard Guenther <rguenther@suse.de>
260
261 PR tree-optimization/49893
262 * tree-predcom.c (suitable_reference_p): Volatile references
263 are not suitable.
264
6130646b 2652011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 266
6130646b
GJL
267 PR target/49313
268 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
269 (__ctzsi2): Result for 0 may be undefined.
270 (__ctzhi2): Result for 0 may be undefined.
271 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
272 (__popcountsi2): Ditto. And don't clobber r26.
273 (__popcountdi2): Ditto. And don't clobber r27.
274 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
275 (parityhi2): New expand.
276 (paritysi2): New expand.
277 (popcounthi2): New expand.
278 (popcountsi2): New expand.
279 (clzhi2): New expand.
280 (clzsi2): New expand.
281 (ctzhi2): New expand.
282 (ctzsi2): New expand.
283 (ffshi2): New expand.
284 (ffssi2): New expand.
285 (copysignsf3): New insn.
286 (bswapsi2): New expand.
287 (*parityhi2.libgcc): New insn.
288 (*parityqihi2.libgcc): New insn.
289 (*paritysihi2.libgcc): New insn.
290 (*popcounthi2.libgcc): New insn.
291 (*popcountsi2.libgcc): New insn.
292 (*popcountqi2.libgcc): New insn.
293 (*popcountqihi2.libgcc): New insn-and-split.
294 (*clzhi2.libgcc): New insn.
295 (*clzsihi2.libgcc): New insn.
296 (*ctzhi2.libgcc): New insn.
297 (*ctzsihi2.libgcc): New insn.
298 (*ffshi2.libgcc): New insn.
299 (*ffssihi2.libgcc): New insn.
300 (*bswapsi2.libgcc): New insn.
301
a9b332d4
RG
3022011-07-29 Richard Guenther <rguenther@suse.de>
303
304 * tree-vrp.c (get_value_range): Only set parameter default
305 definitions to varying, leave others at undefined.
306 (extract_range_from_binary_expr): Fix undefined handling.
307 (vrp_visit_phi_node): Handle merged undefined state.
308
154516d9
WG
3092011-07-29 Wei Guozhi <carrot@google.com>
310
311 PR rtl-optimization/49799
312 * combine.c (make_compound_operation): Check if the bit field is valid
313 before change it to bit field extraction.
314
e40a0b69
BS
3152011-07-29 Bernd Schmidt <bernds@codesourcery.com>
316
317 PR rtl-optimization/49891
318 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
319 newly created returnjumps.
320
13a23442
DD
3212011-07-28 DJ Delorie <dj@redhat.com>
322
69135c94
DD
323 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
324 local frame in a naked function, and produce a suitable error for
325 that specific case.
326
13a23442
DD
327 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
328 registers to be reloaded in HI classes when the target is HI.
329
6c6c79a9
SP
3302011-07-28 Sebastian Pop <sebastian.pop@amd.com>
331
332 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
333 bound_one, bound_two.
334
0c43dbaf
SP
3352011-07-28 Sebastian Pop <sebastian.pop@amd.com>
336
337 PR middle-end/48648
338 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
339 CLAST assignments.
340 (translate_clast): Same.
341 (translate_clast_assignment): New.
342
60cf26cc
SP
3432011-07-28 Sebastian Pop <sebastian.pop@amd.com>
344
345 PR tree-optimization/49876
346 * sese.c (rename_uses): Do not return false on gloog_error: set
347 the new_expr to integer_zero_node and continue code generation.
348 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
349
4fe249e7
JJ
3502011-07-28 Jakub Jelinek <jakub@redhat.com>
351
352 PR debug/49846
353 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
354 arguments also check if they aren't initialized with a MODE_INT
355 mode of the same size.
356
86f98641
AH
3572011-07-28 Aldy Hernandez <aldyh@redhat.com>
358
359 * expr.c (get_bit_range): Handle *MEM_REF's.
360
dc0ff1c8
BS
3612011-07-28 Bernd Schmidt <bernds@codesourcery.com>
362
363 * rtlanal.c (tablejump_p): False for returns.
364 * reorg.c (first_active_target_insn): New static function.
365 (find_end_label): Set JUMP_LABEL for a new returnjump.
366 (optimize_skip, get_jump_flags, rare_destination,
367 mostly_true_jump, get_branch_condition,
368 steal_delay_list_from_target, own_thread_p,
369 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
370 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
371 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
372 * jump.c (delete_related_insns): Likewise.
373 (jump_to_label_p): New function.
374 (redirect_target): New static function.
375 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
376 (redirect_jump_1): Assert that the new label is nonnull.
377 (redirect_jump): Likewise.
378 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
379 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
380 exit block.
381 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
382 changed. Ensure that the right label is passed to redirect_jump.
383 * function.c (emit_return_into_block,
384 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
385 ret_rtx in their JUMP_LABEL.
386 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
387 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
388 pass ret_rtx as label.
389 * cfglayout.c (fixup_reorder_chain): Use
390 force_nonfallthru_and_redirect rather than force_nonfallthru.
391 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
392 * rtl.h (ANY_RETURN_P): New macro.
393 (jump_to_label_p): Declare.
394 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
395 JUMP_LABELs.
396 (mark_target_live_regs): Likewise.
397 * basic-block.h (force_nonfallthru_and_redirect): Declare.
398 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
399 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
400 alpha_tablejump_best_label): Remove functions.
401 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
402 alpha_tablejump_best_label): Remove declarations.
403 * config/sh/sh.c (barrier_align, split_branches): Adjust for
404 ret_rtx in JUMP_LABELs.
405 * config/arm/arm.c (is_jump_table): Likewise.
406
a2e49bb2
UB
4072011-07-28 Uros Bizjak <ubizjak@gmail.com>
408
409 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
410 special predicate. Remove explicit mode checks.
411
64153cce
JJ
4122011-07-28 Jakub Jelinek <jakub@redhat.com>
413
a2e49bb2
UB
414 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
415 DW_AT_data_member_location containing just DW_OP_plus_uconst.
b3882148 416
64153cce
JJ
417 PR debug/49871
418 * dwarf2out.c (size_of_die, value_format, output_die): Use
419 DW_FORM_udata instead of DW_FORM_data[48] for
420 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
421
0465f4f8
L
4222011-07-28 H.J. Lu <hongjiu.lu@intel.com>
423
844bf05b
UB
424 * config/i386/i386.md (*tls_global_dynamic_64): Update
425 length attribute.
0465f4f8 426
f51c4a8a
UB
4272011-07-28 Uros Bizjak <ubizjak@gmail.com>
428
429 PR target/47715
430 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
431 tls_symbolic_operand check. Update code sequence for TARGET_X32.
432 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
433 (tls_dynamic_gnu2_64): Ditto.
434 (*tls_dynamic_gnu2_lea_64): Ditto.
435 (*tls_dynamic_gnu2_call_64): Ditto.
436 (*tls_dynamic_gnu2_combine_64): Ditto.
437
5e9627ca
L
4382011-07-28 H.J. Lu <hongjiu.lu@intel.com>
439
440 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
441
40b9321d
L
4422011-07-28 H.J. Lu <hongjiu.lu@intel.com>
443
444 PR target/47364
445 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
446
95f89bb3
RR
4472011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
448
449 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
450 before the core constraints. Adjust attributes.
a2e49bb2 451 ("*thumb2_movdf_vfp"): Likewise.
95f89bb3 452
98958241
KT
4532011-07-28 Kai Tietz <ktietz@redhat.com>
454
f51c4a8a 455 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
98958241
KT
456 (simplify_truth_ops_using_ranges): Likewise.
457 (build_assert_expr_for): Likewise.
458 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
459 and handle BIT_NOT_EXPR for truth-operation.
460
f627fef2 4612011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 462
f627fef2
GJL
463 PR target/49313
464 Undo r176835 from trunk
465 2011-07-27 Georg-Johann Lay
466
296799ba 4672011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 468
296799ba
GJL
469 PR target/49687
470 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
471 Add _muluhisi3, _mulshisi3, _usmulhisi3.
472 * config/avr/libgcc.S (__mulsi3): Rewrite.
473 (__mulhisi3): Rewrite.
474 (__umulhisi3): Rewrite.
475 (__usmulhisi3): New.
476 (__muluhisi3): New.
477 (__mulshisi3): New.
478 (__mulohisi3): New.
479 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
480 declare.
481 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
482 (pseudo_register_or_const_int_operand): New.
483 (combine_pseudo_register_operand): New.
484 (u16_operand): New.
485 (s16_operand): New.
486 (o16_operand): New.
487 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
488 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
489 (any_extend, any_extend2): New code iterators.
490 (extend_prefix): New code attribute.
491 (mulsi3): Rewrite. Turn insn to expander.
492 (mulhisi3): Ditto.
493 (umulhisi3): Ditto.
494 (usmulhisi3): New expander.
495 (*mulsi3): New insn-and-split.
496 (mulu<mode>si3): New insn-and-split.
497 (muls<mode>si3): New insn-and-split.
498 (mulohisi3): New insn-and-split.
499 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
500 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
501 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
502 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
503 insn-and-split.
504 (*mulsi3_call): Rewrite.
505 (*mulhisi3_call): Rewrite.
506 (*umulhisi3_call): Rewrite.
507 (*usmulhisi3_call): New insn.
508 (*muluhisi3_call): New insn.
509 (*mulshisi3_call): New insn.
510 (*mulohisi3_call): New insn.
511 (extendqihi2): Use combine_pseudo_register_operand as predicate
512 for operand 1.
513 (extendqisi2): Ditto.
514 (zero_extendqihi2): Ditto.
515 (zero_extendqisi2): Ditto.
516 (zero_extendhisi2): Ditto.
517 (extendhisi2): Ditto. Don't early-clobber operand 0.
518
d8fa1b73
UB
5192011-07-28 Uros Bizjak <ubizjak@gmail.com>
520
521 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
522
3689198d
SP
5232011-07-27 Sebastian Pop <sebastian.pop@amd.com>
524
525 PR tree-optimization/49471
526 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
527 iv only when the largest type is unsigned. Do not call
528 lang_hooks.types.type_for_size.
529
27165edd
SP
5302011-07-27 Sebastian Pop <sebastian.pop@amd.com>
531
532 PR middle-end/45450
533 * graphite-poly.c (apply_poly_transforms): Disable legality check
534 after an openscop read.
535
bd4a54da
SP
5362011-07-27 Sebastian Pop <sebastian.pop@amd.com>
537
538 PR middle-end/47691
539 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
540 copy_bb_and_scalar_dependences.
541 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
542 (graphite_copy_stmts_from_block): Update call to rename_uses.
543 (copy_bb_and_scalar_dependences): Update call to
544 graphite_copy_stmts_from_block.
545 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
546
04c9ea12 5472011-07-27 Georg-Johann Lay <avr@gjlay.de>
bd4a54da 548
04c9ea12
GJL
549 PR target/49313
550 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
551 (__ctzsi2): Result for 0 may be undefined.
552 (__ctzhi2): Result for 0 may be undefined.
553 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
554 (__popcountsi2): Ditto. And don't clobber r26.
555 (__popcountdi2): Ditto. And don't clobber r27.
556 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
557 (parityhi2): New expand.
558 (paritysi2): New expand.
559 (popcounthi2): New expand.
560 (popcountsi2): New expand.
561 (clzhi2): New expand.
562 (clzsi2): New expand.
563 (ctzhi2): New expand.
564 (ctzsi2): New expand.
565 (ffshi2): New expand.
566 (ffssi2): New expand.
567 (copysignsf3): New insn.
568 (bswapsi2): New expand.
569 (*parityhi2.libgcc): New insn.
570 (*parityqihi2.libgcc): New insn.
571 (*paritysihi2.libgcc): New insn.
572 (*popcounthi2.libgcc): New insn.
573 (*popcountsi2.libgcc): New insn.
574 (*popcountqi2.libgcc): New insn.
575 (*popcountqihi2.libgcc): New insn-and-split.
576 (*clzhi2.libgcc): New insn.
577 (*clzsihi2.libgcc): New insn.
578 (*ctzhi2.libgcc): New insn.
579 (*ctzsihi2.libgcc): New insn.
580 (*ffshi2.libgcc): New insn.
581 (*ffssihi2.libgcc): New insn.
582 (*bswapsi2.libgcc): New insn.
583
479a4921
UB
5842011-07-27 Uros Bizjak <ubizjak@gmail.com>
585
586 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
587 the mode of symbolic_opreand RTXes.
588
7aecd4e8
UB
5892011-07-27 Uros Bizjak <ubizjak@gmail.com>
590
a2e49bb2
UB
591 * config/i386/predicates.md (x86_64_movabs_operand): Return false
592 for pic_32bit_operand RTXes.
7aecd4e8
UB
593 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
594 in DImode.
595
eb9820c0
KT
5962011-07-27 Kai Tietz <ktietz@redhat.com>
597
2fe83a0c
KT
598 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
599 for 32-bit, too.
600 (ix86_handle_abi_attribute): Allow function attributes
601 ms_abi/sysv_abi in 32-bit mode, too.
602 * doc/extend.texi: Adjust attribute documentation.
603
eb9820c0
KT
604 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
605 expression handling.
606 (and_var_with_comparison_1): Likewise.
607
1169e45d
AH
6082011-07-27 Aldy Hernandez <aldyh@redhat.com>
609
610 * params.h (ALLOW_STORE_DATA_RACES): New.
611 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
612 * Makefile.in (expr.o): Depend on PARAMS_H.
613 * machmode.h (get_best_mode): Add argument.
614 * fold-const.c (optimize_bit_field_compare): Add argument to
615 get_best_mode.
616 (fold_truthop): Same.
617 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
618 * expr.c (emit_group_store): Same.
619 (copy_blkmode_from_reg): Same.
620 (write_complex_part): Same.
621 (optimize_bitfield_assignment_op): Add argument.
622 Add argument to get_best_mode.
623 (get_bit_range): New.
7aecd4e8 624 (expand_assignment): Calculate maxbits and pass it down accordingly.
1169e45d 625 (store_field): New argument.
7aecd4e8 626 (expand_expr_real_2): New argument to store_field. Include params.h.
1169e45d
AH
627 * expr.h (store_bit_field): New argument.
628 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
629 into account maxbits.
630 * calls.c (store_unaligned_arguments_into_pseudos): New argument
631 to store_bit_field.
632 * expmed.c (store_bit_field_1): New argument. Use it.
633 (store_bit_field): Same.
634 (store_fixed_bit_field): Same.
635 (store_split_bit_field): Same.
636 (extract_bit_field_1): Pass new argument to get_best_mode.
637 (extract_bit_field): Same.
638 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
639 * doc/invoke.texi: Document parameter allow-store-data-races.
640
7bbdd4e9
JJ
6412011-07-27 Jakub Jelinek <jakub@redhat.com>
642
7aecd4e8 643 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
7bbdd4e9 644
aebf4828
KT
6452011-07-27 Kai Tietz <ktietz@redhat.com>
646
647 * tree-vrp.c (extract_range_from_binary_expr): Remove
648 TRUTH-binary cases and add new bitwise-cases.
649 (extract_range_from_assignment): Likewise.
650 (register_edge_assert_for_1): Likeiwise.
651 (register_edge_assert_for): Likewise.
652 (simplify_truth_ops_using_ranges): Likewise.
653 (simplify_stmt_using_ranges): Likewise.
654
65ceed36
L
6552011-07-26 H.J. Lu <hongjiu.lu@intel.com>
656
657 PR target/47372
658 * config/i386/i386.c (ix86_delegitimize_address): Call
659 simplify_gen_subreg for PIC with mode of x only if modes of
660 x and orig_x are different.
661
b56bc05b
JJ
6622011-07-26 Jakub Jelinek <jakub@redhat.com>
663
664 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
665 to GC allocated copy of the string.
666 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
667 before .debug_line, not after it.
668
bce26def
SP
6692011-07-26 Sebastian Pop <sebastian.pop@amd.com>
670
671 PR middle-end/47046
672 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
673 evolution_function_is_affine_p on CHREC_RIGHT.
674
5f72e02d
SP
6752011-07-26 Sebastian Pop <sebastian.pop@amd.com>
676
677 * tree-data-ref.c (max_stmt_executions_tree): Do not call
678 lang_hooks.types.type_for_size.
679
cbc1994b
SP
6802011-07-26 Sebastian Pop <sebastian.pop@amd.com>
681
682 PR middle-end/47653
683 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
684 loops using wrapping semantics.
685
4c7d6755
SP
6862011-07-26 Sebastian Pop <sebastian.pop@amd.com>
687
688 PR middle-end/48805
689 * tree-scalar-evolution.c (instantiate_scev_r): Return
690 chrec_dont_know for ADDR_EXPR.
691
e207e41f
UB
6922011-07-26 Uros Bizjak <ubizjak@gmail.com>
693 H.J. Lu <hongjiu.lu@intel.com>
694
695 PR target/47369
696 PR target/49853
697 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
698 if legitimize_tls_address returned operand in wrong mode. Allow
699 SImode and DImode symbolic operand for PIC. Call convert_to_mode
700 if legitimize_pic_address returned operand in wrong mode.
701
842eeb9b
MJ
7022011-07-26 Martin Jambor <mjambor@suse.cz>
703
704 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
705 return false for invariants.
706
98d2c0ad
UB
7072011-07-26 Uros Bizjak <ubizjak@gmail.com>
708
709 * config/i386/i386.md (add->lea splitter): Implement using SWI
710 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
711 (add->lea zext splitter): Change operand 2 predicate to
712 x86_64_nonmemory_operand.
713
c21510a9
RG
7142011-07-26 Richard Guenther <rguenther@suse.de>
715
716 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
717 frequency makes everything hot.
718
9f61fd17
RG
7192011-07-26 Richard Guenther <rguenther@suse.de>
720
721 PR tree-optimization/49840
722 * tree-vrp.c (range_fits_type_p): Properly handle full
723 double-int precision.
724
5bf3d50d
MJ
7252011-07-26 Martin Jambor <mjambor@suse.cz>
726
727 PR bootstrap/49786
728 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
729 counts.
730 (update_specialized_profile): Likewise.
731
536e3f49
UB
7322011-07-26 Uros Bizjak <ubizjak@gmail.com>
733 H.J. Lu <hongjiu.lu@intel.com>
734
735 PR target/47381
736 PR target/49832
737 PR target/49833
738 * config/i386/i386.md (i): Change SImode attribute to "e".
739 (g): Change SImode attribute to "rme".
740 (di): Change SImode attribute to "nF".
741 (general_operand): Change SImode attribute to x86_64_general_operand.
742 (general_szext_operand): Change SImode attribute to
743 x86_64_szext_general_operand.
744 (immediate_operand): Change SImode attribute to
745 x86_64_immediate_operand.
746 (nonmemory_operand): Change SImode attribute to
747 x86_64_nonmemory_operand.
748 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
749 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
750 (*lea_1): Use SWI48 mode iterator.
751 (*lea_1_zext): New insn pattern.
752 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
753 (*bt<mode>): Ditto.
754 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
755 Update operand constraints.
756 (addsi_1_zext): Ditto.
757 (*add<mode>2): Ditto.
758 (*addsi_3_zext): Ditto.
759 (*subsi_1_zext): Ditto.
760 (*subsi_2_zext): Ditto.
761 (*subsi_3_zext): Ditto.
762 (*addsi3_carry_zext): Ditto.
763 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
764 (*mulsi3_1_zext): Ditto.
765 (*andsi_1): Ditto.
766 (*andsi_1_zext): Ditto.
767 (*andsi_2_zext): Ditto.
768 (*<any_or:code>si_1_zext): Ditto.
769 (*<any_or:code>si_2_zext): Ditto.
770 (*test<mode>_1): Use <general_operand> predicate for operand 1.
771 (*and<mode>_2): Ditto.
772 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
773 (add->lea splitter): Check operand modes in insn constraint. Extend
774 operands less than SImode wide to SImode.
775 (add->lea zext splitter): Do not extend input operands to DImode.
776 (*lea_general_1): Handle only QImode and HImode operands.
777 (*lea_general_2): Ditto.
778 (*lea_general_3): Ditto.
779 (*lea_general_1_zext): Remove.
780 (*lea_general_2_zext): Ditto.
781 (*lea_general_3_zext): Ditto.
782 (*lea_general_4): Check operand modes in insn constraint. Extend
783 operands less than SImode wide to SImode.
784 (ashift->lea splitter): Ditto.
785 * config/i386/i386.c (ix86_print_operand_address): Print address
786 registers with 'q' modifier on 64bit targets.
787 * config/i386/predicates.md (pic_32bit_opreand): Define as special
788 predicate. Reject non-SI and non-DI modes.
789
0de204de
AP
7902011-07-25 Andrew Pinski <apinski@cavium.com>
791
792 PR tree-opt/49671
793 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
794 TREE_THIS_NOTRAP into the inner most MEM_REF.
795 Always copy TREE_THIS_VOLATILE.
796 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
797 arguments are not volatile references.
798
104fcc7a
RH
7992011-07-25 Richard Henderson <rth@redhat.com>
800
801 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
802 * final.c (final_scan_insn): Don't test for it.
803 (rest_of_clean_state): Likewise.
804
c24a6738
RH
8052011-07-25 Richard Henderson <rth@redhat.com>
806
807 PR debug/49841
808 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
809 (emit_frame_save): Likewise.
810 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
811 insn onto a dummy blockage insn after the join label.
812
200e10dc
RH
8132011-07-25 Richard Henderson <rth@redhat.com>
814
815 * dwarf2cfi.c (dw_trace_info): Add ID member.
816 (get_trace_index): Remove. Change users to use ID member.
817 (before_next_cfi_note): New.
818 (connect_traces): Remove unreachable traces before the main loop.
819 Look across one trace and generate remember/restore_state if needed.
820
a5d0ce89
RH
8212011-07-25 Richard Henderson <rth@redhat.com>
822
823 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
824
c344a866
JR
8252011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
826
827 * genattr.c (write_upcase, gen_attr <enum definition writing>):
828 Move to ...
829 * genattr-common.c ... here.
830 (main): Call gen_attr.
831 * optc-gen.awk: Make generated program include insn-attr-common.h .
832 * Makefile.in (oprions.o): Depend on insn-attr-common.h
833
4645179e
AS
8342011-07-25 Anatoly Sokolov <aesok@post.ru>
835
836 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
837 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
838 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
839 m32c_print_operand, m32c_print_operand_address): Remove.
840 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
841 Change return type to bool. Change argument type to bool.
842 (m32c_print_operand, m32c_print_operand_address): Make static.
843 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
844 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
845
8175c19c
RO
8462011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
847
848 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
849 attributes): Document mmap.
850
5057fa13
AS
8512011-07-25 Anatoly Sokolov <aesok@post.ru>
852
853 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
854 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
855 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
856 mmix_print_operand, mmix_print_operand_address): Remove.
857 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
858 Change return type to bool. Change argument type to bool.
859 (mmix_print_operand, mmix_print_operand_address): Make static.
536e3f49 860 (mmix_intval, mmix_output_condition): Change 'x' argument type
5057fa13
AS
861 to const_rtx.
862 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
863 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
864
f4da258f 8652011-07-25 Georg-Johann Lay <avr@gjlay.de>
536e3f49 866
f4da258f
GJL
867 PR target/39386
868 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
869 shift counter for x << x and x >> x shifts.
870
1500b428
RO
8712011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
872
873 PR target/47124
874 * config.gcc: Reject *-*-solaris2 configuration.
875
59daeef4
RS
8762011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
877
878 PR tree-optimization/49809
879 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
880 gimple_get_lhs instead of gimple_assign_lhs.
881
4d1c7421
RO
8822011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
883
884 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
885
7fdab8d4
RG
8862011-07-25 Richard Guenther <rguenther@suse.de>
887
888 PR tree-optimization/49822
889 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
890 more. Make sure to preserve stmts with side-effects. Properly
891 handle virtual defs, follow a longer def chain.
892
1baae426
RG
8932011-07-22 Romain Geissler <romain.geissler@gmail.com>
894
895 PR plugins/45348
896 PR plugins/48425
897 PR plugins/46577
898 * Makefile.in: Do not flatten c-family directory when installing
899 plugin headers.
900
264b47b0
EB
9012011-07-25 Eric Botcazou <ebotcazou@adacore.com>
902
903 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
904 original nodes if we are dealing with virtual clones.
905
3d02ae65
BS
9062011-07-25 Bernd Schmidt <bernds@codesourcery.com>
907
908 * common/config/c6x/c6x-common.c: New file.
909
2eaa698b
RZ
9102011-07-25 Roman Zhuykov <zhroma@ispras.ru>
911
912 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
913
ebeadd91
RG
9142011-07-25 Richard Guenther <rguenther@suse.de>
915
916 PR tree-optimization/49715
917 * tree-vrp.c: Include expr.h and optabs.h.
918 (range_fits_type_): New function.
919 (simplify_float_conversion_using_ranges): Likewise.
920 (simplify_stmt_using_ranges): Call it.
921 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
922 * optabs.c (can_float_p): Export.
923 * optabs.h (can_float_p): Declare.
924
d9256277
RG
9252011-07-25 Richard Guenther <rguenther@suse.de>
926
927 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
928 (get_value_range): For out-of-range SSA names or names created
929 after propagation return a read-only varying range.
930 (dump_all_value_ranges): Adjust.
931 (vrp_initialize): Likewise.
932 (vrp_finalize): Likewise.
933
149e741d
RH
9342011-07-24 Richard Henderson <rth@redhat.com>
935
936 PR debug/49831
937 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
938 them entirely.
939
981dc735
RH
9402011-07-24 Richard Henderson <rth@redhat.com>
941
942 PR debug/49825
943 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
944 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
945
3382318a
RH
9462011-07-24 Richard Henderson <rth@redhat.com>
947
948 PR debug/49827
949 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
950
2f23f97a
RH
9512011-07-24 Richard Henderson <rth@redhat.com>
952
953 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
954 Zero args_size for abnormal edges. Adjust all callers.
955
2edb462e
RH
9562011-07-24 Richard Henderson <rth@redhat.com>
957
958 PR debug/49825
959 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
960
96d5384b
L
9612011-07-24 H.J. Lu <hongjiu.lu@intel.com>
962
963 PR bootstrap/49835
964 * collect2.c (demangle_flag): Removed.
965
df45fc34
SL
9662011-07-24 Sandra Loosemore <sandra@codesourcery.com>
967
968 * configure.ac (demangler_in_ld): Default to yes.
969 * configure: Regenerated.
970 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
971 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
972 --no-demangle options straight through to ld. When
973 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
974 way that has the intended effect on Windows.
975
829bdd4b
RH
9762011-07-23 Richard Henderson <rth@redhat.com>
977
978 * dwarf2cfi.c: Include basic-block.h.
979 (dw_label_info): Remove.
980 (trace_work_list, trace_index): New.
981 (remember_row, emit_cfa_remember): Remove.
982 (dw_trace_info_hash, dw_trace_info_eq): New.
983 (get_trace_index, get_trace_info): New.
984 (save_point_p): New.
985 (free_cfi_row): Remove.
986 (add_cfi): Do not emit DW_CFA_remember_state.
987 (cfa_row_equal_p): New.
988 (barrier_args_size): Remove.
989 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
990 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
991 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
992 (dwarf2out_cfi_begin_epilogue): Remove.
993 (dwarf2out_frame_debug_restore_state): Remove.
994 (connect_traces, create_pseudo_cfg): New.
995 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
996 * Makefile.in (dwarf2cfi.o): Update.
997
43215a89
RH
9982011-07-23 Richard Henderson <rth@redhat.com>
999
1000 * dwarf2cfi.c (dw_trace_info): New.
1001 (dw_label_info): New.
1002 (cie_return_save): New.
1003 (cur_trace): New.
1004 (queued_args_size): Rename from args_size. Update all users.
1005 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
1006 (def_cfa_1): Use cur_trace instead of cfa_*.
1007 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
1008 (clobbers_queued_reg_save, reg_saved_in): Likewise.
1009 (dwarf2out_frame_debug_expr): Likewise.
1010 (create_cie_data): Split out from ...
1011 (execute_dwarf2_frame): ... here. Initialize cur_trace.
1012
6ffc63e1
RH
10132011-07-23 Richard Henderson <rth@redhat.com>
1014
1015 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
1016 Update all users to match.
1017 (execute_dwarf2_frame): Free reg_saved_in_data.
1018
999646c1
RH
10192011-07-23 Richard Henderson <rth@redhat.com>
1020
1021 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
1022 (queued_reg_saves): Don't GTY. Change to a VEC.
1023 (queue_reg_save): Update to match.
1024 (dwarf2out_flush_queued_reg_saves): Likewise.
1025 (clobbers_queued_reg_save): Likewise.
1026 (reg_saved_in): Likewise.
1027 (execute_dwarf2_frame): Free queued_reg_saves.
1028
ce363ef2
RH
10292011-07-23 Richard Henderson <rth@redhat.com>
1030
1031 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
1032
57e16c96
RH
10332011-07-23 Richard Henderson <rth@redhat.com>
1034
1035 * dwarf2cfi.c (add_cfi_args_size): Split out from...
1036 (dwarf2out_args_size): ... here.
1037 (add_cfi_restore): Split out from ...
1038 (dwarf2out_frame_debug_cfa_restore): ... here.
1039 (def_cfa_0): Split out from ...
1040 (def_cfa_1): ... here.
1041 (cfi_oprnd_equal_p, cfi_equal_p): New.
1042 (change_cfi_row): New.
1043 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
1044 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
1045 (output_cfis): Remove.
1046 * dwarf2out.c (output_fde): Simplify output_cfi loop.
1047 (dwarf2out_switch_text_section): Don't call output_cfis.
1048 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
1049 * dwarf2out.h: Update decls.
1050 (enum dw_val_class): Add dw_val_class_none.
1051
f1a0e830
RH
10522011-07-23 Richard Henderson <rth@redhat.com>
1053
1054 * dwarf2cfi.c (update_row_reg_save): New.
1055 (dwarf2out_frame_debug_cfa_expression): Use it.
1056 (dwarf2out_frame_debug_cfa_restore): Likewise.
1057 (reg_save): Likewise. Do not emit DW_CFA_same_value.
1058
141618e2
RH
10592011-07-23 Richard Henderson <rth@redhat.com>
1060
1061 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
1062
f17d3401
RH
10632011-07-23 Richard Henderson <rth@redhat.com>
1064
1065 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
1066 (cie_cfi_row): New.
1067 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
1068 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
1069 (cur_row, remember_row): New.
1070 (def_cfa_1): Use cur_row instead of the old_* variables.
1071 (dwarf2out_frame_debug_restore_state): Similarly.
1072 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
1073 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
1074 (dwarf2out_frame_debug_adjust_cfa): Likewise.
1075 (dwarf2out_frame_debug_cfa_offset): Likewise.
1076 (dwarf2out_frame_debug_expr): Likewise.
1077 (execute_dwarf2_frame): Set up cur_row.
1078 * dwarf2out.h (struct cfa_loc): Mark for GTY.
1079
0be7e7a6
RH
10802011-07-23 Richard Henderson <rth@redhat.com>
1081
1082 * basic-block.h (EDGE_PRESERVE): New.
1083 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
1084 * bb-reorder.c: Include except.h.
1085 (fix_up_crossing_landing_pad): New.
536e3f49 1086 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
0be7e7a6
RH
1087 landing pads in the right partition. Duplicate as necessary.
1088 (partition_hot_cold_basic_blocks): Fix up DF info after
1089 duplicating landing pads.
1090 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
1091 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
1092 is set properly. Validate that EH edges are not CROSSING.
1093 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
1094 (dw2_build_landing_pads): ... here.
1095 (convert_to_eh_region_ranges): Remove code to fixup crossing
1096 landing pads.
1097 * except.h (expand_dw2_landing_pad_for_region): Declare.
1098 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
1099
e0170551
RE
11002011-07-23 Richard Earnshaw <rearnsha@arm.com>
1101
1102 PR target/49816
1103 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
1104
15c2ccba
JM
11052011-07-22 Jason Merrill <jason@redhat.com>
1106
1107 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
1108
295331a4
RH
11092011-07-22 Richard Henderson <rth@redhat.com>
1110
1111 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
1112
5f93b30a
RH
11132011-07-22 Richard Henderson <rth@redhat.com>
1114
1115 * jump.c (maybe_propagate_label_ref): Split out of...
1116 (mark_all_labels): ... here. Do not attempt label_ref
1117 propagation while in cfglayout mode.
1118
e967adf4
JJ
11192011-07-22 Jakub Jelinek <jakub@redhat.com>
1120
520cda8c
JJ
1121 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
1122 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
1123 (dwarf_attr_name): Handle DW_AT_GNU_macros.
1124 (dwarf2out_define): If the vector is empty and
1125 lineno is 0, emit a dummy entry first.
1126 (dwarf2out_undef): Likewise. Remove redundant semicolon.
1127 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
1128 optimize_macinfo_range): New functions.
1129 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
1130 mergeable, optimize longer strings using
1131 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
1132 optimize longer sequences of define/undef ops from headers
1133 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
1134 emit a section headers.
1135 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
1136 and macinfo_section_label to DEBUG_MACRO_SECTION
1137 resp. DEBUG_MACRO_SECTION_LABEL.
1138 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
1139 instead of DW_AT_macro_info.
1140
e967adf4
JJ
1141 PR other/32998
1142 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
1143 options.
1144 * dwarf2out.c: Include opts.h.
1145 (dchar_p): New typedef. Define heap VEC for it.
1146 (producer_string): New variable.
1147 (gen_producer_string): New function.
1148 (gen_compile_unit_die): Use it.
536e3f49 1149 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
e967adf4
JJ
1150 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
1151 * doc/invoke.texi: Document -grecord-gcc-switches and
1152 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
1153 to -frecord-gcc-switches description.
1154
3a636414
JM
11552011-07-22 Jason Merrill <jason@redhat.com>
1156
1157 PR c++/30112
1158 * c-decl.c (c_linkage_bindings): Define.
1159
8b9b2275
EB
11602011-07-22 Eric Botcazou <ebotcazou@adacore.com>
1161
1162 PR debug/49815
1163 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
1164
3de69514
L
11652011-07-22 H.J. Lu <hongjiu.lu@intel.com>
1166
1167 * config/i386/i386.c (ix86_option_override_internal): Disallow
1168 MS ABI in x32 mode.
1169 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
1170 only for TARGET_LP64.
536e3f49 1171 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
3de69514 1172
49f6f4f7 11732011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
e56fa6bb
MM
1174
1175 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
1176 avoid warnings when GCC is built with a C++ compiler.
1177
b75d1e21
MJ
11782011-07-22 Martin Jambor <mjambor@suse.cz>
1179
1180 PR lto/49796
1181 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
536e3f49 1182 if decl node is in another partition, call cgraph_get_node only once.
b75d1e21 1183
63708bf5
UB
11842011-07-22 Uros Bizjak <ubizjak@gmail.com>
1185
e3c666fd 1186 * config.gcc (x86_64-*-linux*): Set
63708bf5
UB
1187 default_gnu_indirect_function to yes.
1188
27315aa6
RG
11892011-07-22 Richard Guenther <rguenther@suse.de>
1190
1191 PR tree-optimization/45819
1192 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
1193 preserve volatile and notrap flags.
1194
5b6d595b
RO
11952011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1196 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1197
1198 PR bootstrap/49794
1199 * configure.ac: Test AM_ICONV with CXX.
1200 * configure: Regenerate.
1201 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
1202
7e2fe488
RO
12032011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1204
1205 PR bootstrap/49797
1206 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
1207 (set_cloog_options): Use it.
1208
d423df48
JJ
12092011-07-22 Jakub Jelinek <jakub@redhat.com>
1210
1211 PR c++/49756
1212 * gcc.c (main): Call stack_limit_increase (64MB).
1213 * toplev.c (toplev_main): Likewise.
1214
7fd72c6f
L
12152011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1216
1217 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
1218 instead of force_reg.
1219
96f0b772
L
12202011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1221
1222 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
1223 needed and use force_reg after convert.
1224 (ix86_expand_call): Likewise.
1225 (ix86_expand_special_args_builtin): Likewise.
1226 (ix86_expand_builtin): Likewise.
1227
ef74e2ba
SP
12282011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1229
1230 PR middle-end/47654
1231 PR middle-end/49649
1232 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
1233 in parameter. Initialize v1 and v2 based on the values returned
1234 by clast_name_to_lb_ub.
1235 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
1236 values.
1237 (type_for_clast_bin): Same.
1238 (type_for_clast_expr): Same.
1239 (type_for_clast_eq): Update calls to type_for_clast_expr.
1240 (type_for_clast_for): Same.
1241 (build_iv_mapping): Same.
1242 * graphite-ppl.h (value_min): New.
1243
84f2ffea
SP
12442011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1245
1246 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
1247 types whenever possible.
1248
3d9784cb
SP
12492011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1250
1251 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
1252 and ub fields.
1253 (new_clast_name_index): Add lb and ub parameters.
1254 (free_clast_name_index): New.
1255 (clast_name_to_lb_ub): New.
1256 (save_clast_name_index): Add lb and ub parameters.
1257 (compute_bounds_for_param): New.
1258 (type_for_level): Removed.
1259 (type_for_clast_for): Removed level parameter. Do not call
1260 type_for_level.
1261 (graphite_create_new_loop): Store the lb and ub for the clast_name
1262 of the iterator of the loop that has been generated.
1263 (graphite_create_new_loop_guard): Remove parameter level.
1264 (create_params_index): Store the lb and ub of each parameter.
1265 (gloog): Use free_clast_name_index. Pass to create_params_index
1266 the current scop.
1267
12b30e6d
SP
12682011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1269
1270 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
1271 (max_precision_type): Inline max_signed_precision_type.
1272 (type_for_clast_red): Use max_precision_type.
1273 (type_for_clast_bin): Same.
1274 (type_for_clast_for): Same.
1275
0cdd9dcf
SP
12762011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1277
1278 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
1279 type_for_interval.
1280 (gcc_type_for_value): Renamed type_for_value.
1281 (gcc_type_for_clast_term): Renamed type_for_clast_term.
1282 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
1283 (gcc_type_for_clast_red): Renamed type_for_clast_red.
1284 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
1285 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
1286 (graphite_translate_clast_equation): Update calls.
1287 (compute_type_for_level): Renamed type_for_level.
1288 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
1289 (build_iv_mapping): Update calls.
1290 (graphite_create_new_loop_guard): Same.
1291
8aab43a0
SP
12922011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1293
1294 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
1295 comment.
1296
cf7eab7d
SP
12972011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1298
1299 * graphite-clast-to-gimple.c (struct ivs_params): New.
1300 (clast_name_to_gcc): Use ivs_params to pass around parameters.
1301 (clast_to_gcc_expression): Same.
1302 (clast_to_gcc_expression_red): Same.
1303 (gcc_type_for_clast_term): Same.
1304 (gcc_type_for_clast_expr): Same.
1305 (gcc_type_for_clast_red): Same.
1306 (gcc_type_for_clast_bin): Same.
1307 (gcc_type_for_clast_eq): Same.
1308 (graphite_translate_clast_equation): Same.
1309 (graphite_create_guard_cond_expr): Same.
1310 (graphite_create_new_guard): Same.
1311 (graphite_create_new_loop): Same.
1312 (build_iv_mapping): Same.
1313 (translate_clast_user): Same.
1314 (graphite_create_new_loop_guard): Same.
1315 (translate_clast): Same.
1316 (translate_clast_for_loop): Same.
1317 (translate_clast_for): Same.
1318 (translate_clast_guard): Same.
1319 (initialize_cloog_names): Fix typo.
1320 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
1321
7b1e9596
SP
13222011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1323
1324 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
1325 (new_clast_name_index): Add level parameter.
1326 (clast_name_to_level): New.
1327 (save_clast_name_index): Add level parameter.
1328 (newivs_to_depth_to_newiv): Removed.
1329 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
1330 (graphite_create_new_loop): Add level parameter. Pass level to
1331 save_clast_name_index.
1332 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
1333 (create_params_index): Pass level to save_clast_name_index.
1334
6e6568db
SP
13352011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1336
1337 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
1338 recompute type, lb, and ub. Get them from...
1339 (graphite_create_new_loop_guard): ...here. Pass in parameter
1340 pointers to type, lb, and ub.
1341 (translate_clast_for_loop): Update function calls.
1342 (translate_clast_for): Same.
1343
dff62090
SP
13442011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1345
1346 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
1347 psct_dynamic_dim.
1348 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
1349 (gcc_type_for_iv_of_clast_loop): Update use of level.
1350 (gloog): Start counting nesting level from 0.
1351 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
1352 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
1353 psct_dynamic_dim on level.
1354
628c1ac9
L
13552011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1356
1357 * config/i386/i386.c (ix86_legitimize_address): Convert to
1358 Pmode if needed.
1359
08a8923e
L
13602011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1361
1362 * config/i386/i386.c (function_value_64): Always return pointers
1363 in Pmode.
1364 (ix86_promote_function_mode): New.
1365 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
1366
777a4e9a
BS
13672011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1368
1369 PR tree-optimization/49749
1370 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
1371 remove no-longer-used maxrank variable.
63708bf5 1372
e9514725 13732011-07-21 Georg-Johann Lay <avr@gjlay.de>
63708bf5 1374
e9514725
GJL
1375 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
1376
9ca1483b
JM
13772011-07-21 Jason Merrill <jason@redhat.com>
1378
1379 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
1380 * recog.h (struct insn_data_d): Check it instead of
1381 HAVE_DESIGNATED_INITIALIZERS.
1382 * genoutput.c (output_insn_data): Likewise.
1383
3ceaf2f5
RG
13842011-07-21 Richard Guenther <rguenther@suse.de>
1385
1386 PR tree-optimization/49770
1387 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
1388 valueized any operand. Renamed from ...
1389 (valueize_refs): ... this. New wrapper around valueize_refs_1.
1390 (valueize_shared_reference_ops_from_ref): Return whether we
1391 valueized any operand.
1392 (vn_reference_lookup): Only when we valueized any operand
1393 use the valueized reference for alias analysis. Do not preserve
1394 the original reference tree in this case.
1395
7c53a140
UB
13962011-07-21 Uros Bizjak <ubizjak@gmail.com>
1397
1398 * config/i386/i386.c (ix86_decompose_address): Reject all but
a4235495 1399 register operands and subregs of DImode hard registers in index.
7c53a140 1400
7f3ff782
KT
14012011-07-21 Kai Tietz <ktietz@redhat.com>
1402
1403 * fold-const.c (fold_unary_loc): Preserve indirect
1404 comparison cast to none-boolean type.
1405 * tree-ssa.c (useless_type_conversion_p): Preserve cast
1406 from/to boolean-type.
7c53a140
UB
1407 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
1408 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
7f3ff782
KT
1409 * tree-cfg.c (verify_gimple_comparison): Check result
1410 type of comparison expression.
7c53a140
UB
1411 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
1412 of condition result and disallow type-cast sinking into comparison.
7f3ff782 1413
91bc6112
RG
14142011-07-21 Richard Guenther <rguenther@suse.de>
1415
1416 * tree-ssa-forwprop.c (combine_conversions): Return whether
1417 we have to run cfg-cleanup. Properly remove dead stmts.
1418 (ssa_forward_propagate_and_combine): Adjust.
1419
d6f23738
RS
14202011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
1421
1422 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
1423
fec3cad3
KT
14242011-07-21 Kai Tietz <ktietz@redhat.com>
1425
1426 * tree-ssa-propagate.c (substitute_and_fold): Use
1427 do_dce flag to deside, if BB's statements are scanned
1428 in last to first, or first to last order.
1429
21f3ae2f 14302011-07-21 Georg-Johann Lay <avr@gjlay.de>
7c53a140 1431
21f3ae2f
GJL
1432 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
1433
6025b127
L
14342011-07-20 H.J. Lu <hongjiu.lu@intel.com>
1435 Uros Bizjak <ubizjak@gmail.com>
1436 Richard Henderson <rth@redhat.com>
1437
1438 * config/i386/constraints.md (w): New.
1439
1440 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
1441 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
1442
1443 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
1444 instead of TARGET_64BIT.
1445
1446 * config/i386/i386.md (indirect_jump): Replace
1447 nonimmediate_operand with indirect_branch_operand.
1448 (*indirect_jump): Likewise. Replace constraint "m" with "w".
a4235495
UB
1449 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
1450 Convert operand 0 to Pmode for x32 if not PIC.
6025b127
L
1451 (*tablejump_1): Replace nonimmediate_operand with
1452 indirect_branch_operand. Replace constraint "m" with "w".
1453 (*call_vzeroupper): Replace constraint "m" with "w".
1454 (*call): Likewise.
1455 (*call_rex64_ms_sysv_vzeroupper): Likewise.
1456 (*call_rex64_ms_sysv): Likewise.
1457 (*call_value_vzeroupper): Likewise.
1458 (*call_value): Likewise.
1459 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
1460 (*call_value_rex64_ms_sysv): Likewise.
a4235495 1461 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
6025b127
L
1462
1463 * config/i386/predicates.md (indirect_branch_operand): New.
1464 (call_insn_operand): Support x32.
1465
7f8925a1
ME
14662011-07-20 Michael Eager <eager@eagercon.com>
1467
1468 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
1469
510a442a
RH
14702011-07-20 Richard Henderson <rth@redhat.com>
1471
1472 * cfg.c (dump_bb_info): Dump basic_block->flags.
1473 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
1474
00b40d0d
UB
14752011-07-20 Uros Bizjak <ubizjak@gmail.com>
1476
1477 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1478 of DImode hard registers in index.
1479 (ix86_legitimate_address_p): Allow subregs of base and index to span
1480 more than a word. Assert that subregs of base and index satisfy
1481 register_no_elim_operand predicates. Reject addresses where
1482 base and index have different modes.
1483
87f53554
RM
14842011-07-20 Robert Millan <rmh@gnu.org>
1485
1486 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
1487
742f29ab
UW
14882011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1489
1490 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
1491 removing now-unnecessary assignment.
1492
d05f3564
UW
14932011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1494
1495 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
1496 memory address space to the type's address space.
1497
8c352fa8 14982011-07-20 Georg-Johann Lay <avr@gjlay.de>
00b40d0d 1499
8c352fa8
GJL
1500 PR target/36467
1501 PR target/49687
00b40d0d
UB
1502 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
1503 and expand appropriately if there is a CONST_INT in operand2.
8c352fa8
GJL
1504 (usmulqihi3): New insn.
1505 (*sumulqihi3): New insn.
1506 (*osmulqihi3): New insn.
1507 (*oumulqihi3): New insn.
1508 (*muluqihi3.uconst): New insn_and_split.
1509 (*muluqihi3.sconst): New insn_and_split.
1510 (*mulsqihi3.sconst): New insn_and_split.
1511 (*mulsqihi3.uconst): New insn_and_split.
1512 (*mulsqihi3.oconst): New insn_and_split.
1513 (*ashifthi3.signx.const): New insn_and_split.
1514 (*ashifthi3.signx.const7): New insn_and_split.
1515 (*ashifthi3.zerox.const): New insn_and_split.
1516 (mulsqihi3): New insn.
1517 (muluqihi3): New insn.
1518 (muloqihi3): New insn.
1519 * config/avr/predicates.md (const_2_to_7_operand): New.
1520 (const_2_to_6_operand): New.
1521 (u8_operand): New.
1522 (s8_operand): New.
1523 (o8_operand): New.
1524 (s9_operand): New.
1525 (register_or_s9_operand): New.
1526
be31603a
KT
15272011-07-20 Kai Tietz <ktietz@redhat.com>
1528
1529 * builtins.c (fold_builtin_expect): See through the cast
1530 from truthvalue_type_node to long.
1531
c36193c6
MM
15322011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
1533
1534 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
1535 where we can use them from the standard and altivec instruction
1536 sets, instead of always using the 3 operand VSX forms that require
1537 the destination to overlap one of the inputs.
1538 (vsx_fms*): Ditto.
1539 (vsx_fnma*): Ditto.
1540 (vsx_fnms*): Ditto.
1541
1542 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
1543 for DF types.
1544 (fmsdf4_fpr): Ditto.
1545 (nfmadf4_fpr): Ditto.
1546 (nfmsdf4_fpr): Ditto.
1547
02aec184
SL
15482011-07-20 Sandra Loosemore <sandra@codesourcery.com>
1549
1550 * genrecog.c (make_insn_sequence): Correct position numbering
1551 when filtering out match_scratch and match_dup.
1552
f8ecf734
RG
15532011-07-20 Richard Guenther <rguenther@suse.de>
1554
1555 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1556 against already removed statements.
1557 (forward_propagate_into_comparison): Remove dead defining stmts.
1558 (forward_propagate_into_gimple_cond): Likewise.
1559 (forward_propagate_into_cond): Simplify.
1560 (ssa_forward_propagate_and_combine): Handle changed cfg from
1561 forward_propagate_into_comparison.
1562 * tree-ssa-phiopt.c (conditional_replacement): Use proper
1563 locations for newly built statements.
1564
73451ae7
GJL
15652011-07-20 Georg-Johann Lay <avr@gjlay.de>
1566
1567 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
1568
c4100a35
AK
15692011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1570
1571 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
1572 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
1573
dca412a1
RG
15742011-07-20 Richard Guenther <rguenther@suse.de>
1575
1576 PR middle-end/18908
1577 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
1578 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
1579 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
1580
73d7e266
VM
15812011-07-20 Vladimir Makarov <vmakarov@redhat.com>
1582
1583 * config/frv/frv.c (frv_register_move_cost): Define explicitly
1584 costs for subclasses of GR_REGS.
1585
5e27a6d4
UB
15862011-07-20 Uros Bizjak <ubizjak@gmail.com>
1587
1588 PR target/49780
1589 * config/i386/predicates.md (no_seg_addres_operand): No more special.
1590 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1591 of DImode hard registers in base.
1592 (ix86_legitimate_address_p): Allow SImode and DImode base and index
1593 registers.
1594
74d8fa44
RG
15952011-07-20 Richard Guenther <rguenther@suse.de>
1596
5e27a6d4 1597 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
74d8fa44
RG
1598 (unify_nodes): Deal with that.
1599 (solve_graph): Likewise.
1600
b0e43da8
CLT
16012011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
1602
1603 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
1604 canonicalize left operand from ZERO_EXTEND to AND.
1605
a8c44c52
AS
16062011-07-20 Anatoly Sokolov <aesok@post.ru>
1607
1608 * target.def (class_max_nregs): New hook.
1609 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
1610 * doc/tm.texi: Regenerate.
1611 * targhooks.c (default_class_max_nregs): New function.
1612 * targhooks.h (default_class_max_nregs): Declare.
1613 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
1614 x_ira_reg_class_min_nregs arrays to unsigned char.
1615 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
1616 hook instead of CLASS_MAX_NREGS macro.
1617 * reginfo.c (restore_register_info): Ditto.
1618 * ira-conflicts.c (process_regs_for_copy): Use
1619 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1620 Change type rclass and aclass vars to reg_class_t.
1621 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
1622 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
1623 reg_class_t.
1624 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
1625 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1626
1627 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
1628 * config/i386/i386.c (ix86_class_max_nregs): New function.
1629 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
1630 instead of CLASS_MAX_NREGS macro.
1631 (TARGET_CLASS_MAX_NREGS): Define.
1632 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
1633 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
1634 * config/avr/avr.c (class_max_nregs): Remove function.
1635 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
1636 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
1637 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
1638 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
1639 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
1640 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
1641 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
1642 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
1643 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
1644 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
1645 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
1646 * config/score/score.h (CLASS_MAX_NREGS): Remove.
1647 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
1648 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
1649 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
1650
fd811f03
EB
16512011-07-19 Eric Botcazou <ebotcazou@adacore.com>
1652
1653 * cif-code.def (OVERWRITABLE): Fix typo and move around.
1654 (TARGET_OPTIMIZATION_MISMATCH): Delete.
1655 (EH_PERSONALITY): Fix typo.
1656 (NON_CALL_EXCEPTIONS): Fix message.
1657 (OPTIMIZATION_MISMATCH): Adjust message.
1658 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
1659
78767fd9
ILT
16602011-07-19 Ian Lance Taylor <iant@google.com>
1661
1662 * doc/install.texi (Configuration): Document
1663 --enable-build-poststage1-with-cxx.
1664
0baeec1b
RM
16652011-07-19 Robert Millan <rmh@gnu.org>
1666
1667 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
1668 (GLIBC_DYNAMIC_LINKER): Remove.
1669
1670 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
1671 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1672 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1673 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
1674 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
1675 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
1676
1677 * config/mips/linux.h: Remove everything except for ...
1678 (GLIBC_DYNAMIC_LINKER): ... this macro.
1679
1680 * config/mips/linux64.h: Remove everything except for ...
1681 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1682 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1683 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
1684 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
1685 (GNU_USER_LINK_EMULATIONN32): New macros.
1686
5e27a6d4
UB
1687 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
1688 Use the new headers.
0baeec1b 1689
754c3d5d
RS
16902011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1691
1692 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
1693 Add offset_known_p and size_known_p fields.
1694 (MEM_OFFSET_KNOWN_P): Update accordingly.
1695 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
1696 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
1697 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
1698 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
1699 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
1700 (init_emit_regs): Likewise.
1701
527210c4
RS
17022011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1703
1704 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
1705 (MEM_OFFSET): Change from returning an rtx to returning a
1706 HOST_WIDE_INT.
1707 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
1708 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
1709 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1710 (clear_mem_offset): Declare.
1711 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
1712 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
1713 MEM_OFFSET to get a HOST_WIDE_INT offset.
1714 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
1715 (adjust_offset_for_component_ref): Take a bool "known_p"
1716 parameter and a HOST_WIDE_INT "offset" parameter.
1717 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
1718 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
1719 than an rtx. Use clear_mem_offset to clear the offset.
1720 * cfgcleanup.c (merge_memattrs): Likewise.
1721 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
1722 * function.c (assign_parm_find_stack_rtl): Likewise.
1723 (assign_parm_setup_stack): Likewise.
1724 * print-rtl.c (print_rtx): Likewise.
1725 * reload.c (find_reloads_subreg_address): Likewise.
1726 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1727 * var-tracking.c (INT_MEM_OFFSET): Likewise.
1728 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
1729 (get_mem_align_offset): Likewise.
1730 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1731 (clear_mem_offset): New function.
1732 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
1733 offset rather than an rtx. Assume both the expressio and offset
1734 are available.
1735 (r10k_needs_protection_p_1): Update accordingly, checking the
1736 expression and offset availability here instead.
1737
f5541398
RS
17382011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1739
1740 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
1741 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
1742 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
1743 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
1744 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1745 (clear_mem_size): Declare.
1746 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1747 (clear_mem_size): New function.
1748 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
1749 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
1750 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
1751 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
1752 to clear the size.
1753 (nonoverlapping_memrefs_p): Likewise.
1754 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
1755 (expand_builtin_init_trampoline): Likewise.
1756 * calls.c (compute_argument_addresses): Likewise.
1757 * cfgcleanup.c (merge_memattrs): Likewise.
1758 * dce.c (find_call_stack_args): Likewise.
1759 * dse.c (record_store, scan_insn): Likewise.
1760 * dwarf2out.c (dw_sra_loc_expr): Likewise.
1761 * expr.c (emit_block_move_hints): Likewise.
1762 * function.c (assign_parm_find_stack_rtl): Likewise.
1763 * print-rtl.c (print_rtx): Likewise.
1764 * reload.c (find_reloads_subreg_address): Likewise.
1765 * rtlanal.c (may_trap_p_1): Likewise.
1766 * var-tracking.c (track_expr_p): Likewise.
1767 * varasm.c (assemble_trampoline_template): Likewise.
1768 * config/arm/arm.c (arm_print_operand): Likewise.
1769 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
1770 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
1771 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
1772 (expand_constant_setmem_prologue): Likewise.
1773 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
1774 * config/rs6000/rs6000.c (expand_block_move): Likewise.
1775 (adjacent_mem_locations): Likewise.
1776 * config/s390/s390.c (s390_expand_setmem): Likewise.
1777 (s390_expand_insv): Likewise.
1778 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
1779 (*extendqi<mode>2_short_displ): Likewise.
1780 * config/sh/sh.c (expand_block_move): Likewise.
1781 * config/sh/sh.md (extv, extzv): Likewise.
1782
f12144dd
RS
17832011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1784
1785 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
1786 (mem_attrs_htab_eq): ...here.
1787 (find_mem_attrs): Replace with...
1788 (set_mem_attrs): ...this function. Take a mem_attrs structure
1789 rather than individual fields.
1790 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1791 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1792 (set_mem_size, change_address, adjust_address_1, offset_address)
1793 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
1794 Update accordingly.
1795
1c3f523e
RS
17962011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1797
1798 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
1799 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
1800 Provide a dummy definition of MEM_ADDR_SPACE for generators.
1801 (target_rtl): Add x_mode_mem_attrs.
1802 (mode_mem_attrs): New macro.
1803 (get_mem_attrs): New function.
1804 * emit-rtl.c (get_mem_attrs): Rename to...
1805 (find_mem_attrs): ...this.
1806 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1807 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1808 (set_mem_size, change_address, adjust_address_1, offset_address)
1809 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
1810 Update accordingly.
1811 (init_emit_regs): Initialize mode_mem_attrs.
1812
3046b1a9
RG
18132011-07-19 Richard Guenther <rguenther@suse.de>
1814
1815 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
1816 TRUTH_*_EXPR handling.
1817 * tree-ssa-operands.c (get_expr_operands): Likewise.
1818 * tree-ssa-pre.c (fully_constant_expression): Likewise.
1819 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
1820 Likewise.
1821 (is_and_or_or): Likewise.
1822 (is_norm_cond_subset_of): Likewise.
1823
5d49b6a7
RG
18242011-07-19 Richard Guenther <rguenther@suse.de>
1825
1826 * tree.h (fold_build_pointer_plus_loc): New helper function.
1827 (fold_build_pointer_plus_hwi_loc): Likewise.
1828 (fold_build_pointer_plus): Define.
1829 (fold_build_pointer_plus_hwi): Likewise.
1830 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
1831 (fold_builtin_memory_op): Likewise.
1832 (fold_builtin_stpcpy): Likewise.
1833 (fold_builtin_memchr): Likewise.
1834 (fold_builtin_strstr): Likewise.
1835 (fold_builtin_strchr): Likewise.
1836 (fold_builtin_strrchr): Likewise.
1837 (fold_builtin_strpbrk): Likewise.
1838 (fold_builtin_strcat): Likewise.
1839 (expand_builtin_memory_chk): Likewise.
1840 (fold_builtin_memory_chk): Likewise.
1841 * c-typeck.c (build_unary_op): Likewise.
1842 * cgraphunit.c (thunk_adjust): Likewise.
1843 * fold-const.c (build_range_check): Likewise.
1844 (fold_binary_loc): Likewise.
1845 * omp-low.c (extract_omp_for_data): Likewise.
1846 (expand_omp_for_generic): Likewise.
1847 (expand_omp_for_static_nochunk): Likewise.
1848 (expand_omp_for_static_chunk): Likewise.
1849 * tree-affine.c (add_elt_to_tree): Likewise.
1850 * tree-data-ref.c (split_constant_offset_1): Likewise.
1851 * tree-loop-distribution.c (generate_memset_zero): Likewise.
1852 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
1853 * tree-predcom.c (ref_at_iteration): Likewise.
1854 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
1855 (add_to_parts): Likewise.
1856 (create_mem_ref): Likewise.
1857 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
1858 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
1859 (number_of_iterations_le): Likewise.
1860 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
1861 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
1862 (vect_create_addr_base_for_vector_ref): Likewise.
1863 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
1864 (vect_create_cond_for_alias_checks): Likewise.
1865 * tree-vrp.c (extract_range_from_assert): Likewise.
1866 * config/alpha/alpha.c (alpha_va_start): Likewise.
1867 (alpha_gimplify_va_arg_1): Likewise.
1868 * config/i386/i386.c (ix86_va_start): Likewise.
1869 (ix86_gimplify_va_arg): Likewise.
1870 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1871 * config/mep/mep.c (mep_expand_va_start): Likewise.
1872 (mep_gimplify_va_arg_expr): Likewise.
1873 * config/mips/mips.c (mips_va_start): Likewise.
1874 (mips_gimplify_va_arg_expr): Likewise.
1875 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1876 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
1877 (rs6000_gimplify_va_arg): Likewise.
1878 * config/s390/s390.c (s390_va_start): Likewise.
1879 (s390_gimplify_va_arg): Likewise.
1880 * config/sh/sh.c (sh_va_start): Likewise.
1881 (sh_gimplify_va_arg_expr): Likewise.
1882 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
1883 * config/spu/spu.c (spu_va_start): Likewise.
1884 (spu_gimplify_va_arg_expr): Likewise.
1885 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1886 Likewise.
1887 (xstormy16_gimplify_va_arg_expr): Likewise.
1888 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
1889 (xtensa_gimplify_va_arg_expr): Likewise.
1890
d906fd7f
RG
18912011-07-19 Richard Guenther <rguenther@suse.de>
1892
1893 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
1894 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
1895 handling.
1896
1897 PR middle-end/18908
1898 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
1899 result of BIT_*_EXPR to bitfield precision.
1900
1b14d815
RS
19012011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
1902
1903 PR tree-optimization/49742
1904 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
1905 as a potential write.
1906
d906fd7f
RG
19072011-07-19 Richard Guenther <rguenther@suse.de>
1908
1909 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
1910 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
1911 (forward_propagate_comparison): Simplify, remove obsolete code.
1912
53020648
RG
19132011-07-19 Richard Guenther <rguenther@suse.de>
1914
1915 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
1916 BIT_XOR_EXPR, same as the RTL expander does.
1917 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
1918 (verify_gimple_assign_unary): Likewise.
1919 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
1920 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
1921 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
1922
b8b2b009
JJ
19232011-07-19 Jakub Jelinek <jakub@redhat.com>
1924
1925 PR tree-optimization/49768
1926 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
1927 if offset is smaller than bitoffset, but offset+size is bigger
1928 than bitoffset.
1929
338f655d
IR
19302011-07-19 Ira Rosen <ira.rosen@linaro.org>
1931
1932 PR tree-optimization/49771
1933 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
1934 zero step, set segment length to the size of the data-ref's type.
1935
310bc633
MJ
19362011-07-18 Martin Jambor <mjambor@suse.cz>
1937
1938 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
1939 comments.
1940 (ipcp_values_pool): Declare.
1941 (ipcp_sources_pool): Likewise.
1942 (ipcp_lattice): Changed to forward declaration.
1943 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
1944 cannot_devirtualize.
1945 (ipa_node_params): New fields descriptors, lattices, known_vals,
1946 clone_for_all_contexts and node dead, removed fields params and
1947 count_scale.
1948 (ipa_set_param_count): Removed.
1949 (ipa_get_param_count): Made to work with descriptors vector.
1950 (ipa_get_param): Updated.
1951 (ipa_param_cannot_devirtualize_p): Removed.
1952 (ipa_param_types_vec_empty): Likewise.
1953 (ipa_set_param_used): New function.
1954 (ipa_get_param_used): Updated to use descriptors vector.
1955 (ipa_func_list): Removed.
1956 (ipa_init_func_list): Removed declaration.
1957 (ipa_push_func_to_list_1): Likewise.
1958 (ipa_pop_func_from_list): Likewise.
1959 (ipa_push_func_to_list): Removed.
1960 (ipa_lattice_from_jfunc): Remove declaration.
1961 (ipa_get_jf_pass_through_result): Declare.
1962 (ipa_get_jf_ancestor_result): Likewise.
1963 (ipa_value_from_jfunc): Likewise.
1964 (ipa_get_lattice): Update.
1965 (ipa_lat_is_single_const): New function.
1966 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
1967 (ipa_init_func_list): Likewise.
1968 (ipa_pop_func_from_list): Likewise.
1969 (ipa_get_param_decl_index): Fix coding style.
1970 (count_formal_params): Removed.
1971 (count_formal_params_1): Renamed to count_formal_params.
1972 (ipa_populate_param_decls): Update to use descriptors vector.
1973 (ipa_initialize_node_params): Likewise.
1974 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
1975 (ipa_analyze_params_uses): Likewise.
1976 (ipa_free_node_params_substructures): Likewise and free also lattices
1977 and known values.
1978 (duplicate_array): Removed.
1979 (ipa_edge_duplication_hook): Add the new edge to the list of edge
1980 clones.
1981 (ipa_node_duplication_hook): Update to use new lattices.
1982 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
1983 (ipa_free_all_structures_after_iinln): Likewise.
1984 (ipa_write_node_info): Update to use new lattices.
1985 (ipa_read_node_info): Likewise.
1986 (ipa_get_jf_pass_through_result): New function.
1987 (ipa_get_jf_ancestor_result): Likewise.
1988 (ipa_value_from_jfunc): Likewise.
1989 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
1990 * ipa-cp.c: Reimplemented.
1991 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
1992 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
1993 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
1994 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
1995 * doc/invoke.texi (devirt-type-list-size): Removed description.
1996 (ipa-cp-value-list-size): Added description.
1997
6774a66f
RH
19982011-07-18 Richard Henderson <rth@redhat.com>
1999
2000 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
2001 before calling create_basic_block.
2002
8b316874
JJ
20032011-07-18 Jakub Jelinek <jakub@redhat.com>
2004
2005 PR middle-end/49675
2006 * tree.c (build_common_builtin_nodes): Register
2007 __builtin_return_address, __cyg_profile_func_enter
2008 and __cyg_profile_func_exit.
2009
9f68560b
RH
20102011-07-18 Richard Henderson <rth@redhat.com>
2011
2012 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
2013 (add_labels_and_missing_jumps): ... here.
2014 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
2015
03126412
UB
20162011-07-18 Uros Bizjak <ubizjak@gmail.com>
2017
2018 PR target/47744
2019 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2020 of DImode hard registers in PLUS address chains.
2021
fbf80ef7
RO
20222011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2023
2024 PR bootstrap/49769
2025 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
2026 (alpha*-*-freebsd*): Likewise.
2027 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2028 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
2029 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
2030 crtprec80.o, crtfastmath.o to extra_parts for all targets.
2031 (ia64*-*-elf*): Remove extra_parts.
2032 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
2033 (sparc64-*-linux*): Likewise.
2034 (sparc64-*-freebsd*): Likewise.
2035
2036 Revert:
2037 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
2038 (ia64*-*-linux*): Likewise.
2039 (mips64*-*-linux*): Likewise.
2040 (mips*-*-linux*): Likewise.
2041
daf633ba
DE
20422011-07-18 David Edelsohn <dje.gcc@gmail.com>
2043
2044 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
2045
4b4455e5
RG
20462011-07-18 Richard Guenther <rguenther@suse.de>
2047
2048 * gimplify.c (gimplify_expr): Use input_location, not saved_location
2049 when building new trees.
2050
e002c7cb
RG
20512011-07-18 Richard Guenther <rguenther@suse.de>
2052
2053 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
2054 expansion result to bitfield precision if required.
2055
e44dbbe1
RO
20562011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2057
2058 * config.gcc (i[3456x]86-*-netware*): Remove.
2059
2060 * gthr-nks.h: Remove.
2061 * configure.ac (enable_threads): Remove nks.
2062 * configure: Regenerate.
2063
2064 * config/i386/i386.c (ix86_encode_section_info): Remove netware
2065 reference.
2066 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
2067 <netware.h> reference.
2068
2069 * config/i386/netware-libgcc.c,
2070 gcc/config/i386/netware-libgcc.def,
2071 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
2072 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
2073 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
2074 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
2075
2076 * doc/extend.texi (Function Attributes,
2077 callee_pop_aggregate_return): Remove i?86-netware reference.
2078 * doc/install.texi (Configuration, --enable-threads): Remove nks.
2079
fd862017
JDA
20802011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2081
2082 PR target/49746
2083 Revert:
2084 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2085
2086 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
2087 patterns.
2088
1ff24749
EB
20892011-07-17 Eric Botcazou <ebotcazou@adacore.com>
2090
2091 PR middle-end/49732
2092 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
2093
a4a2c37d
MK
20942011-07-16 Matthias Klose <doko@ubuntu.com>
2095
2096 * doc/install.texi: Document --enable-static-libjava.
2097
ea6136a2
RH
20982011-07-15 Richard Henderson <rth@redhat.com>
2099
2100 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2101 Replace all three arguments by returning a VEC of edges.
2102 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
2103 pointers and counts.
2104 (fix_edges_for_rarely_executed_code): Merge ...
2105 (rest_of_handle_partition_blocks): ... into...
2106 (partition_hot_cold_basic_blocks): ... here. Return todo items if
2107 any work was performed.
2108 (pass_partition_blocks): Clear todo_flags_finish.
2109
6545e33e
PC
21102011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
2111 Jakub Jelinek <jakub@redhat.com>
2112 Jonathan Wakely <jwakely.gcc@gmail.com>
2113
2114 PR libstdc++/49745
2115 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
2116 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
2117
6feeed06
JM
21182011-07-15 Jason Merrill <jason@redhat.com>
2119
2120 PR testsuite/49741
2121 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
2122 rather than --tool_opts.
2123
44762055
BS
21242011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
2125
2126 * doc/plugins.texi (Building GCC plugins): gengtype needs its
0fa71447 2127 corresponding gtype.state.
44762055 2128
1be0310c
JDA
21292011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2130
2131 PR target/49723
2132 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
2133
12c5ffe5
EB
21342011-07-15 Eric Botcazou <ebotcazou@adacore.com>
2135
2136 PR target/48220
2137 * doc/md.texi (Standard Names): Document window_save.
2138 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
2139 expand_debug_expr and expand_debug_source_expr. If the target has
2140 a window_save instruction, adjust the ENTRY_VALUE_EXP.
2141 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
2142 SSA_NAME_VAR is a parameter.
2143 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
2144 * var-tracking.c (parm_reg_t): New type and associated vector type.
2145 (windowed_parm_regs): New variable.
2146 (adjust_insn): If the target has a window_save instruction and this
2147 is the instruction, make its effect on parameter registers explicit.
2148 (next_non_note_insn_var_location): New function.
2149 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
2150 (vt_add_function_parameter): If the target has a window_save insn,
2151 adjust the incoming RTL and record that in windowed_parm_regs.
2152 (vt_finalize): Free windowed_parm_regs.
2153
bcead286
BS
21542011-07-15 Bernd Schmidt <bernds@codesourcery.com>
2155
2156 * doc/invoke.texi (C6X Options): New section.
2157 * doc/md.texi (TI C6X family): New section.
2158 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
2159 tic6x-*-uclinux.
2160 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
2161 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
2162 Provide C6X definitions.
2163 * config/c6x/c6x.md: New file.
2164 * config/c6x/constraints.md: New file.
2165 * config/c6x/predicates.md: New file.
2166 * config/c6x/c6x-sched.md.in: New file.
2167 * config/c6x/c6x-sched.md: New file.
2168 * config/c6x/gensched.sh: New file.
2169 * config/c6x/c6x-mult.md.in: New file.
2170 * config/c6x/genmult.sh: New file.
2171 * config/c6x/c6x-mult.md: New file.
2172 * config/c6x/sync.md: New file.
2173 * config/c6x/c6x-protos.h: New file.
2174 * config/c6x/sfp-machine.h: New file.
2175 * config/c6x/c6x.c: New file.
2176 * config/c6x/c6x.h: New file.
2177 * config/c6x/crti.s: New file.
2178 * config/c6x/crtn.s: New file.
2179 * config/c6x/lib1funcs.asm: New file.
2180 * config/c6x/c6x-modes.def: New file.
2181 * config/c6x/genopt.sh: New file.
2182 * config/c6x/c6x.opt: New file.
2183 * config/c6x/c6x-tables.opt: New file.
2184 * config/c6x/c6x-opts.h: New file.
2185 * config/c6x/c6x-isas.def: New file.
2186 * config/c6x/elf.h: New file.
2187 * config/c6x/elf-common.h: New file.
2188 * config/c6x/uclinux-elf.h: New file.
2189 * config/c6x/t-c6x: New file.
2190 * config/c6x/t-c6x-elf: New file.
2191 * config/c6x/t-c6x-uclinux: New file.
2192 * config/c6x/t-c6x-softfp: New file.
2193 * config/c6x/gtd.c: New file.
2194 * config/c6x/gtf.c: New file.
2195 * config/c6x/ltd.c: New file.
2196 * config/c6x/ltf.c: New file.
2197 * config/c6x/ged.c: New file.
2198 * config/c6x/gef.c: New file.
2199 * config/c6x/led.c: New file.
2200 * config/c6x/lef.c: New file.
2201 * config/c6x/eqd.c: New file.
2202 * config/c6x/eqf.c: New file.
2203 * config/c6x/libgcc-c6xeabi.ver: New file.
2204
aef0e7a8
BS
2205 Revert
2206 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
2207 PR rtl-optimization/11320
2208 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
2209 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
2210 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
2211 current_sched_info->compute_jump_reg_dependencies. Record which
2212 registers are used and which registers are set by the jump.
2213 Clear deps->reg_conditional_sets after a barrier.
2214 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
2215 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
2216 (init_deps): Initialize reg_conditional_sets.
2217 (free_deps): Clear reg_conditional_sets.
2218 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
2219 Mark registers live on entry of the fallthrough block and conditionally
2220 set as set by the jump. Mark registers live on entry of non-fallthrough
2221 blocks as used by the jump.
2222 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
2223 Mark new parameters as unused.
2224
9bed2f0d
AP
22252011-07-14 Andrew Pinski <pinskia@gmail.com>
2226
2227 PR tree-opt/49309
2228 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
2229 Use fold_build2_loc instead of build2.
2230 Use the correct type for the new tree.
2231
1f88caaa
BS
22322011-07-14 Bernd Schmidt <bernds@codesourcery.com>
2233
2234 PR rtl-optimization/11320
2235 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
2236 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
2237
d772f97c 22382011-07-14 Georg-Johann Lay <avr@gjlay.de>
1f88caaa 2239
d772f97c
GJL
2240 PR target/49487
2241 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
2242 of REG.
2243 (*rotw<mode>): Use const_int_operand for operand2.
2244 Use match_scatch for operand3.
2245 (*rotb<mode>): Ditto
2246 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
2247
1a5d20a4
RG
22482011-07-14 Richard Guenther <rguenther@suse.de>
2249
2250 PR tree-optimization/49651
2251 * tree-ssa-structalias.c (get_constraint_for_1): Properly
2252 handle dereferences with subvariables.
2253
5fbcc0ed
RG
22542011-07-14 Richard Guenther <rguenther@suse.de>
2255
2256 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
2257 (fold_stmt_1): Do it here directly on gimple and as a first thing.
2258
fbf3fee2
RG
22592011-07-14 Richard Guenther <rguenther@suse.de>
2260
2261 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
2262 not bool_var when folding bool_var != 1 or bool_var == 0.
2263
b953c2b8
BS
22642011-07-14 Bernd Schmidt <bernds@codesourcery.com>
2265
2266 * haifa-sched.c (schedule_insns): Remove outdated comment.
2267 (schedule_block): When computing a known value for TODO_SPEC,
2268 just set it rather than using logical operations.
2269 (try_ready): Likewise. Use a local variable rather than a
2270 pointer to TODO_SPEC. Reorder an if statement to move the
2271 easy case to the then block.
2272 * sched-deps.c (dep_spec_p): New static function.
2273 (update_dep): Use it to decide whether to call
2274 change_spec_dep_to_hard.
2275 (get_back_and_forw_lists): Use it.
2276 (sd_resolve_dep): Likewise.
2277 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
2278 (haifa_note_mem_dep): Likewise.
2279 (check_dep): Likewise.
2280 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
2281 (sched_free_deps): Free in two passes.
2282
1f098f07
RS
22832011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
2284
2285 PR middle-end/49736
2286 * expr.c (all_zeros_p): Undo bogus part of last change.
2287
73059910
MK
22882011-07-14 Matthias Klose <doko@ubuntu.com>
2289
2290 * doc/extend.texi (optimize attribute): Fix typo.
2291
bd5d002e
RG
22922011-07-14 Richard Guenther <rguenther@suse.de>
2293
2294 * gimplify.c (gimplify_expr): Only do required conversions.
2295
eb1dcdff
GJL
22962011-07-14 Georg-Johann Lay <avr@gjlay.de>
2297
2298 PR target/43746
2299 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
2300 i.e. use default_elf_select_section.
2301 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
2302 (READONLY_DATA_SECTION_ASM_OP): Remove.
2303 (TARGET_ASM_NAMED_SECTION): Move from here...
2304 * config/avr/avr.c: ...to here.
03126412 2305 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
eb1dcdff
GJL
2306 (avr_asm_named_section): Make static.
2307
d31fb329
RO
23082011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2309
2310 PR bootstrap/49739
03126412
UB
2311 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
2312 and crtfastmath.o for Linux/x86.
d31fb329 2313
26965010
BS
23142011-07-14 Bernd Schmidt <bernds@codesourcery.com>
2315
2316 * haifa-sched.c: Include "hashtab.h"
2317 (sched_no_dce): New global variable.
2318 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
2319 SHADOW_P): New macros.
2320 (last_clock_var, cycle_issued_insns): Move declarations.
2321 (must_backtrack): New static variable.
2322 (struct delay_pair): New structure.
2323 (delay_htab, delay_htab_i2): New static variables.
2324 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
2325 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
2326 functions.
2327 (dep_cost_1): If delay pairs exist, try to look up the insns and
2328 use the correct pair delay if we find them.
2329 (rank-for_schedule): Tweak priority for insns that must be scheduled
2330 soon to avoid backtracking.
2331 (queue_insn): Detect conditions which force backtracking.
2332 (ready_add): Likewise.
2333 (struct sched_block_state): Add member shadows_only_p.
2334 (struct haifa_save_data): New structure.
2335 (backtrack_queue): New static variable.
2336 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
2337 unschedule_insns_until, restore_last_backtrack_point,
2338 free_topmost_backtrack_point, free_backtrack_queue,
2339 estimate_insn_tick, estimate_shadow_tick): New functions.
2340 (prune_ready_list): New arg shadows_only_p. All callers changed.
2341 If true, remove everything that isn't SHADOW_P. Look up delay
03126412 2342 pairs and estimate ticks to avoid scheduling the first insn too early.
26965010
BS
2343 (verify_shadows): New function.
2344 (schedule_block): Add machinery to enable backtracking.
2345 (sched_init): Take sched_no_dce into account when setting
2346 DF_LR_RUN_DCE.
2347 (free_delay_pairs): New function.
2348 (init_h_i_d): Initialize INSN_EXACT_TICK.
2349 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
2350 * sched-deps.c (sd_unresolve_dep): New function.
2351 * sched-int. (struct haifa_sched_info): New fields save_state
2352 and restore_state.
2353 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
2354 feeds_backtrack_insn and shadow_p.
2355 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
2356 (sched_no_dce): Declare variable.
2357 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
2358 sd_unresolve_dep): Declare functions.
2359 * modulo-sched.c (sms_sched_info): Clear the two new fields.
2360 * sched-rgn.c (rgn_const_sched_info): Likewise.
2361 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2362 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
2363 (ebb_sched_info): Add them for the two new fields.
2364 (add_deps_for_risky_insns): Call add_delay_dependencies.
2365
1db75f6c
MM
23662011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
2367
2368 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
2369 Rename -mr11.
2370 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
2371 (rs6000_call_indirect_aix): Ditto.
2372 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
2373 (call_indirect_aix<ptrsize>_internal): Ditto.
2374 (call_indirect_aix<ptrsize>_nor11): Ditto.
2375 (call_indirect_aix<ptrsize>_internal2): Ditto.
2376 (call_value_indirect_aix<ptrsize>): Ditto.
2377 (call_value_indirect_aix<ptrsize>_internal): Ditto.
2378 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2379 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2380 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
2381
e2995714
JM
23822011-07-13 Jason Merrill <jason@redhat.com>
2383
2384 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
2385
4dfe3ad5
UW
23862011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2387
2388 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
2389 * config/spu/spu.md ("clrsb<mode>2"): New expander.
2390
dddc6762
TS
23912011-07-13 Thomas Schwinge <thomas@schwinge.name>
2392
2393 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
2394 * configure: Regenerate.
2395
b4d80e56
UW
23962011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2397
2398 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
2399 (asm_file_start): Remove.
2400 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
2401 free_bb_for_insn around code that modifies insns before
2402 restarting df analysis.
2403
9e34e53f
RO
24042011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2405
2406 PR target/49541
03126412 2407 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
9e34e53f
RO
2408 (LINK_SPEC): ... here.
2409
51564684
BS
24102011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2411
2412 * haifa-sched.c (struct sched_block_state): New.
2413 (schedule_block): Move some local variables into such a structure.
2414
b3fe1584
RO
24152011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2416
2417 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
2418 * config/i386/t-crtpc: Remove.
2419 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2420 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
2421 tmake_file.
2422 (x86_64-*-darwin*): Likewise.
2423 (i[34567]86-*-linux*): Likewise.
2424 (x86_64-*-linux*): Likewise.
2425
2426 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
2427 Handle -mpc32, -mpc64, -mpc80.
2428
35d8090d
RO
24292011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2430
2431 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
2432 * config/alpha/t-crtfm: Remove.
2433 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
2434 * config/i386/t-crtfm: Remove.
2435 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
2436 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
2437 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
2438 * config/sparc/t-crtfm: Remove.
2439
2440 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
2441 (alpha*-*-freebsd*): Likewise.
2442 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
2443 (x86_64-*-darwin*): Likewise.
2444 (i[34567]86-*-linux*): Likewise.
2445 (x86_64-*-linux*): Likewise.
2446 (x86_64-*-mingw*): Likewise.
2447 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
2448 (ia64*-*-freebsd*): Likewise.
2449 (ia64*-*-linux*): Likewise.
2450 (mips64*-*-linux*): Likewise.
2451 (mips*-*-linux*): Likewise.
2452 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
2453 (sparc64-*-linux*): Likewise.
2454 (sparc64-*-freebsd*): Likewise.
2455
e141542e
RO
24562011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2457
2458 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
2459 * config/darwin-crt3.c: Move to ../libgcc/config.
2460 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2461 ($(T)crt3$(objext)): Remove.
2462 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
2463 ($(T)crt2$(objext)): Remove.
2464 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
2465 (powerpc64-*-darwin*): Likewise.
2466
72fbc381
L
24672011-07-13 H.J. Lu <hongjiu.lu@intel.com>
2468
03126412 2469 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
72fbc381
L
2470
2471 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
2472 (addsi_1_zext): This.
2473
727a65e6
BS
24742011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2475
2476 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
2477 * doc/tm.texi: Regenerate.
73451ae7 2478 * target.def (mergeable_rodata_prefix): New defhookpod.
727a65e6
BS
2479 * varasm.c (mergeable_string_section, mergeable_constant_section):
2480 Use it. Allocate name with alloca.
2481
cb77b6cf
L
24822011-07-13 H.J. Lu <hongjiu.lu@intel.com>
2483
2484 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
2485
36fc3799
RS
24862011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
2487
2488 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
2489 overlap check.
2490
953d0c90
RS
24912011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
2492
2493 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
2494 (count_type_elements): Delete.
2495 (complete_ctor_at_level_p): Declare.
2496 * expr.c (flexible_array_member_p): New function, split out from...
2497 (count_type_elements): ...here. Make static. Replace allow_flexarr
2498 parameter with for_ctor_p. When for_ctor_p is true, return the
2499 number of elements that should appear in the top-level constructor,
2500 otherwise return an estimate of the number of scalars.
2501 (categorize_ctor_elements): Replace p_must_clear with p_complete.
2502 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
2503 (complete_ctor_at_level_p): New function, borrowing union logic
2504 from old categorize_ctor_elements_1.
2505 (mostly_zeros_p): Return true if the constructor is not complete.
2506 (all_zeros_p): Update call to categorize_ctor_elements.
2507 * gimplify.c (gimplify_init_constructor): Update call to
2508 categorize_ctor_elements. Don't call count_type_elements.
2509 Unconditionally prevent clearing for variable-sized types,
2510 otherwise rely on categorize_ctor_elements to detect
2511 incomplete initializers.
2512
9111c715
RG
25132011-07-13 Richard Guenther <rguenther@suse.de>
2514
2515 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
2516 the final type is integral.
2517
a19af9c4
BS
25182011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2519
2520 * sched-int.h (struct _dep): Add member cost.
2521 (DEP_COST, UNKNOWN_DEP_COST): New macros.
2522 * sched-deps.c (init_dep_1): Initialize DEP_COST.
2523 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
2524 (sched_change_pattern): Reset it for dependent insns.
2525
2d1efe2d
RO
25262011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2527
2528 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
2529 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
2530 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
2531 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
2532 (CRT0_S, MCRT0_S): Remove.
2533 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
2534 Remove.
2535 (s-crt0): Remove.
2536 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
2537
e84a58ff
EB
25382011-07-12 Eric Botcazou <ebotcazou@adacore.com>
2539
2540 * cse.c (insert_with_costs): Put semi-colon after empty loop body
2541 on the next line.
2542 * emit-rtl.c (push_to_sequence): Likewise.
2543 * haifa-sched.c (max_issue): Likewise.
2544 * matrix-reorg.c (add_allocation_site): Likewise.
2545 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
2546 * reload.c (alternative_allows_const_pool_ref): Likewise.
2547 * sched-rgn.c (rgn_add_block): Likewise.
2548 (rgn_fix_recovery_cfg): Likewise.
2549 * tree.c (attribute_list_contained): Likewise.
2550
3a4ffde6
UB
25512011-07-12 Uros Bizjak <ubizjak@gmail.com>
2552
2553 * config/i386/i386.c: Tidy processor feature bitmasks.
2554 (m_P4_NOCONA): New.
2555
10b75750
AP
25562011-07-12 Andrew Pinski <pinskia@gmail.com>
2557
2558 PR rtl-opt/49474
2559 * cprop.c (find_implicit_sets): Correct the condition.
2560
4f42d714
RH
25612011-07-12 Richard Henderson <rth@redhat.com>
2562
2563 PR target/49713
2564 * dwarf2out.h (dwarf_frame_regnum): Remove.
2565 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
2566 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
2567 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
2568 (execute_dwarf2_frame): Initialize them.
2569 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
2570 users of the macros with the variables.
2571 (expand_builtin_dwarf_sp_column): Revert last change.
2572 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
2573 result of DWARF_FRAME_REGNUM into a local variable.
2574
3a5e4ad6
RH
25752011-07-12 Richard Henderson <rth@redhat.com>
2576
2577 PR target/49714
2578 * config/i386/i386.c (x86_output_mi_thunk): Use
2579 machopic_indirect_call_target instead of machopic_indirection_name
2580 directly.
2581
9e9bd455
LG
25822011-07-12 Laurent GUERBY <laurent@guerby.net>
2583 Eric Botcazou <ebotcazou@adacore.com>
2584
2585 * prefix.h: Wrap up in extern "C" block.
2586
4d652a18
HJ
25872011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
2588
2589 AMD bdver2 Enablement
2590 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
2591 (case ${target}): Add bdver2.
2592 * config/i386/driver-i386.c (host_detect_local_cpu): Let
2593 -march=native recognize bdver2 processors.
2594 * config/i386/i386-c.c (ix86_target_macros_internal): Add
2595 bdver2 def_and_undef
2596 * config/i386/i386.c (struct processor_costs bdver2_cost): New
2597 bdver2 cost table.
2598 (m_BDVER2): New definition.
2599 (m_AMD_MULTIPLE): Includes m_BDVER2.
2600 (initial_ix86_tune_features): Add bdver2 tuning.
2601 (processor_target_table): Add bdver2 entry.
2602 (static const char *const cpu_names): Add bdver2 entry.
2603 (ix86_option_override_internal): Add bdver2 instruction sets.
2604 (ix86_issue_rate): Add bdver2.
2605 (ix86_adjust_cost): Add bdver2.
2606 (has_dispatch): Add bdver2.
2607 * config/i386/i386.h (TARGET_BDVER2): New definition.
2608 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
2609 (enum processor_type): Add PROCESSOR_BDVER2.
2610 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
2611 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
2612 description.
2613
5756d08c
RH
26142011-07-12 Richard Henderson <rth@redhat.com>
2615
2616 PR target/49714
2617 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
2618 destination address in memory on some paths.
2619
123148b5
BS
26202011-07-12 Bernd Schmidt <bernds@codesourcery.com>
2621
2622 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
2623 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
2624 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
2625 * function.c (locate_and_pad_parm): Take it into account.
2626 * target.def (function_arg_round_boundary): New hook.
2627 * targhooks.c (default_function_arg_round_boundary): New function.
2628 * targhooks.h (default_function_arg_round_boundary): Declare.
2629 * doc/tm.texi: Regenerate.
2630
b7a83ad8
RG
26312011-07-12 Richard Guenther <rguenther@suse.de>
2632
2633 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
2634 Do not perform no-op changes.
2635
12c4ecb1
RS
26362011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
2637
2638 * config/arm/predicates.md (neon_struct_operand): Make a normal
2639 predicate.
2640 (neon_struct_or_register_operand): New predicate.
2641 * config/arm/neon.md (movmisalign<mode>): Replace predicates
2642 with neon_struct_or_register_operand.
2643 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
2644 neon_struct_operand instead of memory_operand.
2645
ab079773
MJ
26462011-07-12 Martin Jambor <mjambor@suse.cz>
2647
2648 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
2649 * cgraph.c (cgraph_get_node_or_alias): Removed.
2650 (change_decl_assembler_name): Changed all calls to
2651 cgraph_get_node_or_alias to a call to cgraph_get_node.
2652 (cgraph_make_decl_local): Likewise.
2653 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
2654 * varasm.c (default_binds_local_p_1): Likewise.
2655 (decl_binds_to_current_def_p): Likewise.
2656
d5fed62d
JJ
26572011-07-12 Jakub Jelinek <jakub@redhat.com>
2658
2659 PR tree-optimization/49712
2660 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
2661
c0b6224a
BS
26622011-07-11 Bernd Schmidt <bernds@codesourcery.com>
2663
2664 * genautomata.c (add_arc): Return void. All callers changed.
2665 (make_automaton): Remove dead code.
2666
7263c6d7
RH
26672011-07-11 Richard Henderson <rth@redhat.com>
2668
2669 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
2670 (DW_FRAME_POINTER_REGNUM): New.
2671 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
2672 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
2673 (dwf_regno): New.
2674 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
2675 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
2676 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
2677 Use it.
2678 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
2679 * dwarf2out.h (dwarf_frame_regnum): New.
2680 (struct cfa_loc): Document the domain of the reg member.
2681
f9610d20
UB
26822011-07-11 Uros Bizjak <ubizjak@gmail.com>
2683
2684 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
2685 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
2686
96ae7458
JJ
26872011-07-11 Jakub Jelinek <jakub@redhat.com>
2688
2689 PR debug/49676
2690 * dwarf2out.c (int_shift_loc_descriptor): New function.
2691 (int_loc_descriptor): If shorter, emit i as
2692 (i >> shift), shift, DW_OP_shl for suitable shift value.
2693 Similarly, try to optimize large negative values using
2694 DW_OP_neg of a positive value if shorter.
2695 (size_of_int_shift_loc_descriptor): New function.
2696 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
2697 changes.
2698 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
2699 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
2700 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
2701 is shorter.
2702 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
2703 addend as added DW_OP_plus if it is shorter.
2704
feffaec4
RO
27052011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2706
2707 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
2708 (DTORS_SECTION_ASM_OP): Define.
2709
2d8d5935
RO
27102011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2711
2712 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
2713 * config/t-dfprules: Move to ../libgcc/config.
2714 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2715 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
2716 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
2717 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
2718 Likewise.
2719 (i[34567]86-*-cygwin*): Likewise.
2720 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
2721 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
2722 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
2723 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
2724 D64PBIT_FUNCS, D128PBIT_FUNCS.
2725
dcc95c20
RG
27262011-07-11 Richard Guenther <rguenther@suse.de>
2727
2728 * tree-vrp.c (simplify_conversion_using_ranges): Manually
2729 translate the source value-range through the conversion chain.
2730
28164eed
RS
27312011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
2732
2733 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
2734
f3054223
AL
27352011-07-11 Arthur Loiret <aloiret@debian.org>
2736
2737 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
2738 a bi-arch compiler defaulting to 31-bit. In this case:
2739 (tmake_file): Add s390/t-linux64.
2740 * doc/install.texi: Add s390-linux to the list of targets supporting
2741 --enable-targets=all.
2742
bd5ab709
AL
27432011-07-11 Arthur Loiret <aloiret@debian.org>
2744 Matthias Klose <doko@debian.org>
2745
2746 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
2747 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
2748 (tm_file): Add mips/linux64.h.
2749 (tmake_file): Add mips/t-linux64.
2750 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
2751 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
2752 instead of hardcoded mabi=n32.
2753 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
2754 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
2755 convention.
2756
d3b7e946
AK
27572011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2758
2759 * passes.c (init_optimization_passes): Add invariant motion pass
2760 after induction variable optimization.
2761
7e4ec472 27622011-07-11 Georg-Johann Lay <avr@gjlay.de>
f9610d20 2763
7e4ec472
GJL
2764 PR target/39633
2765 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
2766 offsets 1..5 set cc0 in a usable way.
2767
0e65e631
RG
27682011-07-11 Romain Geissler <romain.geissler@gmail.com>
2769
2770 * tree.h (call_expr_arg): Remove.
2771 (call_expr_argp): Likewise.
2772
18970372
EB
27732011-07-11 Eric Botcazou <ebotcazou@adacore.com>
2774
2775 * config/sparc/sparc.md (save_register_window_1): Rename to...
2776 (window_save): ...this.
2777 * config/sparc/sparc.c (emit_save_register_window): Rename to...
2778 (emit_window_save): ...this.
2779 (sparc_expand_prologue): Adjust to above renaming.
2780
9e419e38
L
27812011-07-10 H.J. Lu <hongjiu.lu@intel.com>
2782
2783 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
2784 of movabs for x32.
2785
3db72de3
RH
27862011-07-10 Richard Henderson <rth@redhat.com>
2787
2788 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
2789 run final, instead of emitting text directly.
2790
a1f91bca
L
27912011-07-10 H.J. Lu <hongjiu.lu@intel.com>
2792
2793 * config/i386/i386.c (ix86_option_override_internal): Turn on
2794 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
2795 small PIC models for TARGET_X32.
2796
a50023f9
HPN
27972011-07-10 Hans-Peter Nilsson <hp@axis.com>
2798
9a0b29f0
HPN
2799 PR target/49684
2800 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
2801 $(LIBGCC2_CFLAGS).
2802
a50023f9
HPN
2803 PR bootstrap/49680
2804 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
2805 stray notes and debug insns by using prev_nonnote_nondebug_insn
2806 instead of PREV_INSN.
2807
948d330e
RH
28082011-07-09 Richard Henderson <rth@redhat.com>
2809
2810 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
2811 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
2812 * dwarf2out.c: ... here.
2813 (output_all_cfis): Remove.
2814 (dwarf2out_switch_text_section): Use output_cfis directly.
2815 (size_of_locs): Export.
2816 (output_loc_sequence, output_loc_sequence_raw): Export.
2817 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
2818 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
2819 output_cfa_loc_raw): Move to ...
2820 * dwarfcfi.c: ... here.
2821 * dwarf2out.h: Update decls.
2822
db42e39d
RH
28232011-07-09 Richard Henderson <rth@redhat.com>
2824
2825 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
2826 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
2827 * dwarf2cfi.c: ... here.
2828 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
2829 (DWARF_ROUND, DWARF_CIE_ID): Remove.
2830 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
2831 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
2832 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
2833
a8e5c0e7
RH
28342011-07-09 Richard Henderson <rth@redhat.com>
2835
2836 * dwarf2cfi.c (cie_return_save): New.
2837 (queue_reg_save): Use compare_reg_or_pc.
2838 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
2839 (dwarf2out_frame_debug_expr): Likewise.
2840 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
2841 (initial_return_save): Likewise.
2842 (execute_dwarf2_frame): Save and restore initial return save from
2843 the cie to the fde.
2844 * config/mips/mips.c (mips_frame_set): Remove special case for
2845 DWARF_FRAME_RETURN_COLUMN.
2846
4a8ee122
RH
28472011-07-09 Richard Henderson <rth@redhat.com>
2848
2849 * dwarf2cfi.c (lookup_cfa): Remove.
2850 (execute_dwarf2_frame): Assert queues are empty on entry.
2851 Setup initial cfa directly, not via lookup_cfa.
2852 Don't clear args_size state here.
2853
3edb53aa
RH
28542011-07-09 Richard Henderson <rth@redhat.com>
2855
2856 * dwarf2cfi.c (add_cfi_vec): New.
2857 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
2858 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
2859 (execute_dwarf2_frame): Set add_cfi_vec.
2860
ded49a7f
RH
28612011-07-09 Richard Henderson <rth@redhat.com>
2862
2863 * defaults.h (ASM_COMMENT_START): Move here...
2864 * dwarf2asm.c: ... from here.
2865 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
2866 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
2867 * varasm.c: Likewise.
2868
45fba6d1
RH
28692011-07-09 Richard Henderson <rth@redhat.com>
2870
2871 PR debug/49686
2872 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
2873 (create_cfi_notes): ... do it here instead.
2874
5b696ba2
JJ
28752011-07-09 Jakub Jelinek <jakub@redhat.com>
2876
2877 PR debug/49676
2878 * dwarf2out.c (size_of_int_loc_descriptor): New function.
2879 (address_of_int_loc_descriptor): Use it.
f9610d20 2880 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
5b696ba2 2881
8662b2ba
RH
28822011-07-09 Richard Henderson <rth@redhat.com>
2883
2884 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
2885 (prologue, epilogue): New.
2886 (return, *rts): New.
2887 (blockage, setd, seti): New.
2888 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
2889 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2890 (pdp11_saved_regno): New.
2891 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
2892 generate rtl instead of text.
2893 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
2894 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
2895 * config/pdp11/pdp11-protos.h: Update.
2896
28b21ebb
RH
28972011-07-09 Richard Henderson <rth@redhat.com>
2898
2899 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
2900 try to insert an rtl prologue here.
2901 (rs6000_output_function_epilogue): Similarly.
2902 * config/rs6000/rs6000.md (prologue): Emit a barrier to
2903 satisfy !TARGET_SCHED_PROLOG.
2904 (epilogue, sibcall_epilogue): Likewise.
2905
0a222ba7
EB
29062011-07-09 Eric Botcazou <ebotcazou@adacore.com>
2907
2908 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
2909 (FP_REG_P): Delete.
2910 (IN_OR_GLOBAL_P): Likewise.
2911
2fda8e14
JM
29122011-07-08 Jason Merrill <jason@redhat.com>
2913
4063e61b
JM
2914 PR c++/45437
2915 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
2916 compound assignment.
2917
2fda8e14
JM
2918 * cgraph.c (cgraph_add_to_same_comdat_group): New.
2919 * cgraph.h: Declare it.
2920 * ipa.c (function_and_variable_visibility): Make sure thunks
2921 have the right visibility.
2922
830f11fe
RH
29232011-07-08 Richard Henderson <rth@redhat.com>
2924
2925 PR bootstrap/49680
2926 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
2927 any tablejump vector.
2928
965b2557
RH
2929 PR bootstrap/49680
2930 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
2931 end of the prologue.
2932
70db9095
JJ
29332011-07-08 Jakub Jelinek <jakub@redhat.com>
2934
2935 PR target/49621
2936 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
f9610d20 2937 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
70db9095
JJ
2938 * config/rs6000/vector.md (vector_select_<mode>,
2939 vector_select_<mode>_uns): Change second operand of NE to
2940 CONST0_RTX (<MODE>mode) instead of const0_rtx.
2941 * config/rs6000/altivec.md (*altivec_vsel<mode>,
2942 *altivec_vsel<mode>_uns): Expect second operand of NE to be
2943 zero_constant of the corresponding vector mode.
2944 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
2945 Likewise.
2946
e92c5020
SP
29472011-07-08 Sebastian Pop <sebastian.pop@amd.com>
2948
2949 * graphite-dependences.c (build_alias_set_powerset): Remove
2950 continue from loop, add one more assert.
2951
3e4f8484 29522011-07-08 Georg-Johann Lay <avr@gjlay.de>
f9610d20 2953
3e4f8484
GJL
2954 PR target/46779
2955 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
2956 In particular, allow 8-bit values in r28 and r29.
2957 (avr_hard_regno_scratch_ok): Disallow any register that might be
2958 part of the frame pointer.
2959 (avr_hard_regno_rename_ok): Same.
2960 (avr_legitimate_address_p): Don't allow SUBREGs.
2961
0094f21b
JB
29622011-07-08 Julian Brown <julian@codesourcery.com>
2963
2964 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
2965 big-endian mode.
2966 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
2967 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
2968 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
2969 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
2970 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
2971 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
2972 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
2973 registers in big-endian mode.
2974
9ae60101
BS
29752011-07-08 Bernd Schmidt <bernds@codesourcery.com>
2976
2977 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
2978 in terms of another.
2979 (write_attr_value): Write a cast if necessary.
2980
c0a6a1ef
BS
2981 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
2982 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
2983 (REG_WORDS_BIG_ENDIAN): Document.
2984 * doc/tm.texi: Regenerate.
2985 * reload.c (operands_match_p): Take it into account.
2986 (reload_adjust_reg_for_mode): Likewise.
2987 * rtlanal.c (subreg_get_info): Likewise.
2988
b862187a
RG
29892011-07-08 Richard Guenther <rguenther@suse.de>
2990
2991 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
2992 folding.
2993
e8e8c74b
KT
29942011-07-08 Kai Tietz <ktietz@redhat.com>
2995
2996 * fold-const.c (fold_truth_andor): Factored out truth_andor
2997 label from fold_binary as function.
2998 (fold_binary_loc): Replace truth_andor lable
2999 by function fold_truth_andor.
3000
6c3cb698
KY
30012011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
3002
3003 PR middle-end/49519
3004 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
3005 check if address is stored in register. If so - give up.
3006 (check_sibcall_argument_overlap_1): Do not perform check of
3007 overlapping when it is call to address.
3008
7d8d6d73 30092011-07-08 Georg-Johann Lay <avr@gjlay.de>
9ae60101 3010
7d8d6d73
GJL
3011 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
3012 of magic '31'.
3013
69660a70
BS
30142011-07-08 Bernd Schmidt <bernds@codesourcery.com>
3015
3016 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
3017 GET_MODE_BITSIZE where appropriate.
3018 (widen_leading, expand_parity, expand_ctz, expand_ffs,
3019 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
3020 expand_float, expand_fix): Likewise.
3021 * expr.c (convert_move, convert_modes, expand_expr_real_2,
3022 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
3023 * stor-layout.c (get_mode_bounds): Likewise.
3024 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
3025 Likewise.
3026 * convert.c (convert_to_integer): Likewise.
3027 * expmed.c (expand_shift_1): Likewise.
3028
86cdf393
BS
3029 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
3030 a bitsize.
3031
0d44736e
BS
3032 * optabs.c (expand_binop): Tighten conditions for doubleword
3033 expansions.
f9610d20 3034 (widen_bswap): Assert that mode bitsize and precision are the same.
0d44736e
BS
3035 * stor-layout.c (get_best_mode): Skip modes that have lower
3036 precision than bitsize.
3037 * recog.c (simplify_while_replacing): Assert that bitsize and
3038 precision are the same.
3039
2c50b2c3
RO
30402011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3041
3042 * Makefile.in (LIBGCOV): Remove.
3043 (libgcc.mvars): Remove LIBGCOV.
3044 * libgov.c: Move to ../libgcc.
3045
a039d7c2
RO
30462011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3047
3048 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
3049
e923ef41
MJ
30502011-07-08 Martin Jambor <mjambor@suse.cz>
3051
3052 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
3053 is too big for total scalarization.
3054
b709e189
RH
30552011-07-07 Richard Henderson <rth@redhat.com>
3056
3057 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
3058 (DBX_DEBUGGING_INFO): Undef.
3059
2867fa7c
RH
30602011-07-07 Richard Henderson <rth@redhat.com>
3061
3062 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
3063 Handle some opcodes specially for debugging.
3064 * print-rtl.c: Include dwarf2out.h
3065 (print_rtx): Handle NOTE_INSN_CFI.
3066 * Makefile.in (print-rtl.o): Update.
3067
7644b3c7
RH
30682011-07-07 Richard Henderson <rth@redhat.com>
3069
3070 * tree-pass.h (pass_dwarf2_frame): Declare.
3071 * passes.c (init_optimization_passes): Add it.
3072 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
3073 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
3074 make static, do not call add_cfis_to_fde.
3075 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
3076 dwarf2out_frame_init): Merge into...
3077 (execute_dwarf2_frame): ... here. New function.
3078 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
3079 saved_do_cfi_asm to a tri-state variable.
3080 (gate_dwarf2_frame, pass_dwarf2_frame): New.
3081 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
3082 if it has yet to be done. Don't call dwarf2cfi_function_init.
3083 * dwarf2out.h, debug.h: Update decls.
3084 * final.c (final_start_function): Don't call
3085 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
3086 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
3087 * toplev.c (lang_dependent_init): Likewise.
3088
a518b996
RH
30892011-07-07 Richard Henderson <rth@redhat.com>
3090
3091 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
3092 FDE_TABLE_INCREMENT): Replace with...
3093 (fde_vec): ... this, a new vector.
3094 (current_fde): Remove. Replace all users with cfun->fde.
3095 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
3096 (size_of_aranges, dwarf2out_finish): Likewise.
3097 (dwarf2out_alloc_current_fde): Break out from ...
3098 (dwarf2out_begin_prologue): ... here.
3099 (dwarf2out_frame_init): Remove.
3100 * dwarf2cfi.c: Update all users of current_fde.
3101 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
3102 * dwarf2out.h: Update decls.
3103 (dw_fde_node): Add fde_index member.
3104 * function.h (struct function): Add fde member.
3105
89e25f95
BS
31062011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3107 Richard Henderson <rth@redhat.com>
3108
3109 * dwarf2cfi.c (add_cfi): Remove.
3110 (dwarf2out_cfi_label): Remove force argument. Only generate the
3111 label name.
3112 (add_fde_cfi): Simplify the different code paths.
3113 (add_cie_cfi): New.
3114 (old_cfa, old_cfa_remember): New.
3115 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
3116 (last_reg_save_label): Remove.
3117 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
3118 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3119 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3120 dwarf2out_frame_debug_cfa_expression,
3121 dwarf2out_frame_debug_cfa_restore,
3122 dwarf2out_frame_debug_cfa_window_save,
3123 dwarf2out_frame_debug_expr): Remove label parameter.
3124 (cfi_label_required_p, add_cfis_to_fde): New.
3125 (dwarf2out_frame_debug_after_prologue): New.
3126 (dwarf2cfi_frame_init): Initialize old_cfa.
3127 (dwarf2out_frame_debug_restore_state): Likewise.
3128 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
3129 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
3130 * final.c (final_start_function): Call
3131 dwarf2out_frame_debug_after_prologue.
3132
bc5612ed
BS
31332011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3134 Richard Henderson <rth@redhat.com>
3135
3136 * dwarf2cfi.c (cfi_insn): New.
3137 (dwarf2out_cfi_label): Don't emit cfi label here.
3138 (add_fde_cfi): Create a NOTE_INSN_CFI.
3139 (dwarf2out_frame_debug): Setup cfi_insn.
3140 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
3141 (dwarf2out_cfi_begin_epilogue): Make static.
3142 (dwarf2out_frame_debug_restore_state): Make static.
3143 * dwarf2out.c (output_cfi_directive): Make static.
3144 (dwarf2out_emit_cfi): New.
3145 * dwarf2out.h: Update.
3146 * final.c (final): Remove CFI notes.
3147 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
3148 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
3149 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
3150 * insn-notes.def (NOTE_INSN_CFI): New.
3151 (NOTE_INSN_CFI_LABEL): New.
3152 * rtl.h (union rtunion_def): Add rt_cfi member.
3153 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
3154
647a1567
RH
31552011-07-07 Richard Henderson <rth@redhat.com>
3156
3157 * dwarf2cfi.c: New file.
3158 * Makefile.in (OBJS): Add it.
3159 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
3160 * gengtype.c (open_base_files): Include dwarf2out.h.
3161 * coretypes.h (enum var_init_status): Move from ...
3162 * rtl.h: ... here.
3163 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
3164 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
3165 expand_builtin_dwarf_sp_column, init_return_column_size,
3166 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
3167 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
3168 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
3169 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
3170 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
3171 compute_barrier_args_size, dwarf2out_args_size,
3172 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
3173 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
3174 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
3175 queue_reg_save, dwarf2out_flush_queued_reg_saves,
3176 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
3177 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3178 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3179 dwarf2out_frame_debug_cfa_expression,
3180 dwarf2out_frame_debug_cfa_restore,
3181 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
3182 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
3183 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
3184 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
3185 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
3186 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
3187 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
3188 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
3189 dw_loc_descr_node): Move to dwarf2out.h.
3190 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
3191 mem_loc_descriptor): Export.
3192 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
3193 (dwarf2out_frame_init): Extract CIE generation code to
3194 dwarf2cfi_frame_init.
3195
b286d9ed
EB
31962011-07-07 Eric Botcazou <ebotcazou@adacore.com>
3197
3198 PR target/49660
3199 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
3200 MASK_V8PLUS, remove commented out flag and reorder.
3201
c4603e7c
JJ
32022011-07-07 Jakub Jelinek <jakub@redhat.com>
3203
3204 PR c/49644
3205 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
3206 one non-complex and one complex argument, call c_save_expr on both
3207 operands.
3208
81361831
MJ
32092011-07-07 Martin Jambor <mjambor@suse.cz>
3210
3211 PR middle-end/49495
3212 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
3213 (verify_cgraph_node): Some functinality moved to
3214 verify_edge_corresponds_to_fndecl, call it.
3215
1e4b2746
JM
32162011-07-07 Joseph Myers <joseph@codesourcery.com>
3217
3218 * config.gcc (*local*): Remove.
3219 * doc/install-old.texi: Don't mention local configurations.
3220
d7ff1e11
JJ
32212011-07-07 Jakub Jelinek <jakub@redhat.com>
3222
3223 PR debug/49522
3224 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
3225 referencing debug insns that have been reset.
3226 (dead_debug_insert_before): Don't assert reg is non-NULL,
3227 instead return immediately if it is NULL.
3228
2492731a
JM
32292011-07-07 Joseph Myers <joseph@codesourcery.com>
3230
f9610d20 3231 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2492731a 3232
9d9c740d
BS
32332011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3234
3235 * hw-doloop.c: New file.
3236 * hw-doloop.h: New file.
3237 * Makefile.in (OBJS): Add hw-doloop.o.
3238 (hw-doloop.o): New rule.
3239 ($(obj_out_file)): Add hw-doloop.h dependency.
3240 * config/bfin/bfin.c: Include "hw-doloop.h".
3241 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
3242 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
3243 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
3244 type changed to hwloop_info. Return bool, true if the loop was
3245 successfully optimized. Remove code that was moved to
3246 hw-doloop.c, and adjust other parts.
3247 (hwloop_fail): New static function, containing parts that used
3248 to be in bfin_optimize_loop.
3249 (bfin_discover_loop, bfin_discover_loops, free_loops,
3250 bfin_reorder_loops): Remove.
3251 (hwloop_pattern_reg): New static function.
3252 (bfin_doloop_hooks): New variable.
3253 (bfin_reorg_loops): Remove most code, call reorg_loops.
3254 * config/bfin/bfin.md (doloop_end splitter): Also enable if
3255 loop counter is a memory_operand.
3256
f0ea7581
L
32572011-07-07 H.J. Lu <hongjiu.lu@intel.com>
3258
f9610d20 3259 * config.gcc: Support --with-multilib-list for x86 Linux targets.
f0ea7581
L
3260
3261 * configure.ac: Mention x86-64 for --with-multilib-list.
3262 * configure: Regenerated.
3263
3264 * config/i386/gnu-user64.h (SPEC_64): Support x32.
3265 (SPEC_32): Likewise.
3266 (ASM_SPEC): Likewise.
3267 (LINK_SPEC): Likewise.
3268 (TARGET_THREAD_SSP_OFFSET): Likewise.
3269 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
3270 (SPEC_X32): New.
3271
3272 * config/i386/i386.h (TARGET_X32): New.
3273 (TARGET_LP64): New.
3274 (LONG_TYPE_SIZE): Likewise.
3275 (POINTER_SIZE): Likewise.
3276 (POINTERS_EXTEND_UNSIGNED): Likewise.
3277 (OPT_ARCH64): Support x32.
3278 (OPT_ARCH32): Likewise.
3279
3280 * config/i386/i386.opt (mx32): New.
3281
3282 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
3283 (GLIBC_DYNAMIC_LINKERX32): Likewise.
3284 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
3285 (GLIBC_DYNAMIC_LINKERX32): Likewise.
3286
3287 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
3288 (BIONIC_DYNAMIC_LINKERX32): Likewise.
3289 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
3290
3291 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
3292
f9610d20 3293 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
f0ea7581
L
3294
3295 * doc/invoke.texi: Document -mx32.
3296
38460025
RS
32972011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
3298
3299 * doc/invoke.texi (mwords-little-endian): Deprecate.
3300 * config/arm/arm.opt (mwords-little-endian): Likewise.
3301 * config/arm/arm.c (arm_option_override): Warn about the deprecation
3302 of -mwords-little-endian.
3303
3f125532
RS
33042011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
3305
3306 * reload1.c (choose_reload_regs): Use mode sizes to check whether
3307 an old reload register completely defines the required value.
3308
bbc210ab
RG
33092011-07-07 Richard Guenther <rguenther@suse.de>
3310
3311 * fold-const.c (fold_unary_loc): Do not strip sign-changes
3312 for NEGATE_EXPR.
3313
29c5134a
RG
33142011-07-07 Richard Guenther <rguenther@suse.de>
3315
3316 * tree-vrp.c (simplify_conversion_using_ranges): New function.
3317 (simplify_stmt_using_ranges): Call it.
3318
0816a42a
KT
33192011-07-07 Kai Tietz <ktietz@redhat.com>
3320
3321 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
3322 (lookup_logical_inverted_value): Likewise.
3323 (simplify_bitwise_binary_1): Likewise.
3324 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
3325
3ce9f090
JM
33262011-07-07 Joseph Myers <joseph@codesourcery.com>
3327
3328 * gcc.c (%[Spec]): Don't document.
3329 (struct spec_list): Update comment.
3330 (do_spec_1): Don't handle %[Spec].
3331 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
3332
41dfca87
JM
33332011-07-07 Joseph Myers <joseph@codesourcery.com>
3334
3335 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
3336 default based on TARGET_ASM_NAMED_SECTION.
3337 * common/common-target.def (have_named_sections): Default to true.
3338 * common/config/default-common.c: Don't include tm.h.
3339 * common/config/picochip/picochip-common.c
3340 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
3341 * common/config/m32c/m32c-common.c: Remove.
3342 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
f9610d20
UB
3343 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3344 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3345 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 3346 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
f9610d20
UB
3347 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3348 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 3349
19c44640
JJ
33502011-07-07 Jakub Jelinek <jakub@redhat.com>
3351
3352 PR middle-end/49640
f9610d20
UB
3353 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
3354 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
19c44640 3355
891a2e42
RO
33562011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3357
3358 PR libmudflap/49550
3359 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
3360
fbdd5d87
RO
33612011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3362
3363 PR target/39150
3364 * configure.ac (gcc_cv_as_hidden): Also accept
3365 x86_64-*-solaris2.1[0-9]*.
3366 (gcc_cv_as_cfi_directive): Likewise.
3367 (gcc_cv_as_comdat_group_group): Likewise.
3368 (set_have_as_tls): Likewise.
3369 * configure: Regenerate.
3370 * config.gcc (i[34567]86-*-solaris2*): Also handle
3371 x86_64-*-solaris2.1[0-9]*.
3372 * config.host (i[34567]86-*-solaris2*): Likewise.
3373 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
3374 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
3375 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
3376 (TARGET_LD_EMULATION): Use it.
3377 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
3378 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
3379 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
3380 (ASM_CPU64_DEFAULT_SPEC): Define.
3381 (ASM_CPU_SPEC): Use %(asm_cpu_default).
3382 (ASM_SPEC): Redefine.
3383 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
3384 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
f9610d20 3385 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
fbdd5d87
RO
3386 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
3387 configuration.
3388 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
3389
fcf7471a
RO
33902011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3391
3392 * config/sol2.h (ASM_SPEC): Split into ...
3393 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
3394 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
3395 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
3396 (ASM_SPEC): Use ASM_SPEC_BASE.
3397 * config/sparc/sol2.h (ASM_SPEC): Redefine.
3398
1e6a67d1 33992011-07-07 Georg-Johann Lay <avr@gjlay.de>
f9610d20 3400
1e6a67d1
GJL
3401 * config/avr/avr.md (*reload_insi): Change predicate #1 to
3402 const_int_operand. Ditto for peep2 producing this insn.
3403 Add argument to output_reload_insisf call.
3404 (*movsi,*movsf): Add argument to output_movsisf call.
3405 (*reload_insf): New insn and new peep2 to produce it.
3406 * config/avr/avr-protos.h (output_movsisf): Change prototype.
3407 (output_reload_insisf): Change prototype.
3408 * config/avr/avr.c (avr_asm_len): New function.
3409 (output_reload_insisf): Rewrite.
3410 (output_movsisf): Change prototype. output_reload_insisf for
3411 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
3412 (adjust_insn_length): Add argument to output_movsisf and
3413 output_reload_insisf call.
3414
6a4bdc79
BS
34152011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3416
3417 * emit-rtl.c (paradoxical_subreg_p): New function.
3418 * rtl.h (paradoxical_subreg_p): Declare.
3419 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
3420 apply_distributive_law, simplify_comparison, simplify_set): Use it.
3421 * cse.c (record_jump_cond, cse_insn): Likewise.
3422 * expr.c (force_operand): Likewise.
3423 * rtlanal.c (num_sign_bit_copies1): Likewise.
3424 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
3425 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
3426 (push_reload): Use precision to check for paradoxical subregs.
3427 * expmed.c (extract_bit_field_1): Likewise.
3428
46c9550f
BS
3429 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
3430 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
3431 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
3432 simplify_set, simplify_logical, expand_compound_operation,
3433 make_extraction, force_to_mode, if_then_else_cond, extended_count,
3434 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
3435 record_value_for_reg): Likewise.
3436 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
3437 * simplify-rtx. c (simplify_unary_operation_1,
3438 simplify_binary_operation_1, simplify_const_relational_operation):
3439 Likewise.
3440
5511bc5a
BS
3441 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
3442 instead of GET_MODE_BITSIZE where appropriate.
3443 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
3444 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
3445 init_num_sign_bit_copies_in_rep): Likewise.
3446 * cse.c (fold_rtx, cse_insn): Likewise.
3447 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
3448 * simplify-rtx.c (simplify_unary_operation_1,
3449 simplify_const_unary_operation, simplify_binary_operation_1,
3450 simplify_const_binary_operation, simplify_ternary_operation,
3451 simplify_const_relational_operation, simplify_subreg): Likewise.
3452 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
3453 simplify_if_then_else, simplify_set, expand_compound_operation,
3454 expand_field_assignment, make_extraction, if_then_else_cond,
3455 make_compound_operation, force_to_mode, make_field_assignment,
3456 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
3457 extended_count, try_widen_shift_mode, simplify_shift_const_1,
3458 simplify_comparison, record_promoted_value, simplify_compare_const,
3459 record_dead_and_set_regs_1): Likewise.
3460
d58c1a38
BS
3461 Revert:
3462 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
3463 shift_truncation_mask hook instead of performing modulo by width.
3464 Compare against mode precision, not bitsize.
d58c1a38 3465 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 3466 Use shift_truncation_mask instead of constructing the value manually.
d58c1a38 3467
76594d53
MM
34682011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3469
3470 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
3471 declaration.
3472 (rs6000_save_toc_in_prologue_p): Ditto.
3473
3474 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
3475 up the static chain (r11) during indirect function calls.
3476 (-msave-toc-indirect): New undocumented debug switch.
3477
3478 * config/rs6000/rs6000.c (struct machine_function): Add
3479 save_toc_in_prologue field to note whether the prologue needs to
3480 save the TOC value in the reserved stack location.
3481 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
3482 to save the TOC in the prologue, do so.
3483 (rs6000_trampoline_init): Don't allow creating AIX style
3484 trampolines if -mno-r11 is in effect.
3485 (rs6000_call_indirect_aix): New function to create AIX style
3486 indirect calls, adding support for -mno-r11 to suppress loading
3487 the static chain, and saving the TOC in the prologue instead of
3488 the call body.
3489 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
3490 TOC in the prologue.
3491
3492 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
3493 register numbers.
3494 (TOC_REGNUM): Ditto.
3495 (STATIC_CHAIN_REGNUM): Ditto.
3496 (ARG_POINTER_REGNUM): Ditto.
3497 (SFP_REGNO): Delete, unused.
3498 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
3499 function descriptor offsets.
3500 (TOC_SAVE_OFFSET_64BIT): Ditto.
3501 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
3502 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
3503 (AIX_FUNC_DESC_SC_32BIT): Ditto.
3504 (AIX_FUNC_DESC_SC_64BIT): Ditto.
f9610d20
UB
3505 (ptrload): New mode attribute for the appropriate load of a pointer.
3506 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
76594d53
MM
3507 (call_indirect_aix64): Ditto.
3508 (call_value_indirect_aix32): Ditto.
3509 (call_value_indirect_aix64): Ditto.
3510 (call_indirect_nonlocal_aix32_internal): Ditto.
3511 (call_indirect_nonlocal_aix32): Ditto.
3512 (call_indirect_nonlocal_aix64_internal): Ditto.
3513 (call_indirect_nonlocal_aix64): Ditto.
3514 (call): Rewrite AIX indirect function calls. Add support for
3515 eliminating the static chain, and for moving the save of the TOC
3516 to the function prologue.
3517 (call_value): Ditto.
3518 (call_indirect_aix<ptrsize>): Ditto.
3519 (call_indirect_aix<ptrsize>_internal): Ditto.
3520 (call_indirect_aix<ptrsize>_internal2): Ditto.
3521 (call_indirect_aix<ptrsize>_nor11): Ditto.
3522 (call_value_indirect_aix<ptrsize>): Ditto.
3523 (call_value_indirect_aix<ptrsize>_internal): Ditto.
3524 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3525 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3526 (call_nonlocal_aix32): Relocate in the rs6000.md file.
3527 (call_nonlocal_aix64): Ditto.
3528
3529 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
3530 -mno-r11 documentation.
3531
49d6830d
JW
35322011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
3533
3534 PR other/49658
3535 * doc/extend.texi (Compound Literals): Fix typo.
3536
c884924f
JG
35372011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
3538
f9610d20 3539 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
c884924f 3540
bf588455
BS
35412011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
3542
3543 * configure.ac (plugin-version.h): Generate
3544 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
3545 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
3546 macros.
3547
3548 * configure: Regenerate.
3549
3550 * doc/plugins.texi (Building GCC plugins): Mention
3551 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
3552
d0edd768
BS
35532011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3554
3555 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
3556 * combine.c (make_extraction, gen_lowpart_or_truncate,
3557 apply_distributive_law, simplify_comparison,
3558 reg_truncated_to_mode, record_truncated_value): Use it.
3559 * cse.c (notreg_cost): Likewise.
3560 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
3561 * expr.c (convert_move, convert_modes): Likewise.
3562 * optabs.c (expand_binop, expand_unop): Likewise.
3563 * postreload.c (move2add_last_label): Likewise.
3564 * regmove.c (optimize_reg_copy_3): Likewise.
3565 * rtlhooks.c (gen_lowpart_general): Likewise.
3566 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3567
e5cabdfb
JM
35682011-07-06 Joseph Myers <joseph@codesourcery.com>
3569
3570 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
3571
2d0c270f
BS
35722011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3573
3574 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
3575 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
3576 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
3577 (simplify_const_unary_operation, simplify_binary_operation_1,
f9610d20
UB
3578 simplify_const_binary_operation, simplify_const_relational_operation):
3579 Use them. Use GET_MODE_MASK for masking and sign-extensions.
2d0c270f
BS
3580 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
3581 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
3582 simplify_shift_const_1, simplify_comparison): Likewise.
3583 * expr.c (convert_modes): Likewise.
3584 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
f9610d20 3585 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
2d0c270f
BS
3586 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
3587
f9c08345
BS
3588 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
3589
6d6c9525
RG
35902011-07-06 Richard Guenther <rguenther@suse.de>
3591
3592 PR tree-optimization/49645
3593 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
3594 register variables.
3595 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
3596 in type qualification here ...
3597 (copy_reference_ops_from_ref): ... not here.
3598 (vn_reference_lookup_3): ... or here.
3599 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
3600 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
3601
d1a6ec10
ILT
36022011-07-06 Ian Lance Taylor <iant@google.com>
3603
3604 * doc/install.texi (Configuration): It's
3605 --enable-gnu-indirect-function, not --enable-indirect-function.
3606
ff3e08af
BS
36072011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3608
3609 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
3610 shift_truncation_mask hook instead of performing modulo by width.
3611 Compare against mode precision, not bitsize.
ff3e08af 3612 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 3613 Use shift_truncation_mask instead of constructing the value manually.
ff3e08af 3614
a369b639
L
36152011-07-06 H.J. Lu <hongjiu.lu@intel.com>
3616
3617 PR middle-end/47383
3618 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
3619 address computation and convert to address_mode if needed.
3620
1a072294
RG
36212011-07-06 Richard Guenther <rguenther@suse.de>
3622
3623 * tree.c (build_common_tree_nodes_2): Merge with
3624 build_common_tree_nodes.
3625 * tree.h (build_common_tree_nodes): Adjust prototype.
3626 (build_common_tree_nodes_2): Remove.
3627 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
3628 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
3629
f2c3a8ce
JJ
36302011-07-05 Jakub Jelinek <jakub@redhat.com>
3631
3632 PR tree-optimization/49618
3633 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
3634 t recurse on the decl.
3635 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
3636 return true if expr isn't known to be defined in current
3637 TU or some other LTO partition.
3638
3aa439ed
MM
36392011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
3640
3641 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
3642 override CASE_VALUES_THRESHOLD.
3643
3644 * stmt.c (toplevel): Include params.h.
3645 (case_values_threshold): Use the --param case-values-threshold
3646 value if non-zero, otherwise use machine dependent value.
3647 (expand_case): Use case_values_threshold.
3648
3649 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
3650
3651 * doc/invoke.texi (--param case-values-threshold): Document.
3652
49956667
RH
36532011-07-05 Richard Henderson <rth@redhat.com>
3654
3655 * dwarf2out.c (dwarf2out_cfi_label): Make static.
3656 (dwarf2out_flush_queued_reg_saves): Make static.
3657 (dwarf2out_reg_save): Remove.
3658 (dwarf2out_return_save): Remove.
3659 (dwarf2out_return_reg): Remove.
3660 (dwarf2out_reg_save_reg): Remove.
3661 (dwarf2out_def_cfa): Merge into ...
3662 (dwarf2out_frame_init): ... here.
3663 * dwarf2out.h, tree.h: Remove declarations as necessary.
3664
9f2ff8e5
RH
36652011-07-05 Richard Henderson <rth@redhat.com>
3666
c2b40eba
RH
3667 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
3668 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3669 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
3670 the alloc insn.
3671
7d3c6cd8
RH
3672 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
3673 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
3674 (process_epilogue): Don't call dwarf2out_def_cfa.
3675
5f740973
RH
3676 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
3677 indicate the return address save.
3678 (process_cfa_register): Likewise.
3679
a1880147
RH
3680 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
3681 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
3682
9f2ff8e5
RH
3683 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
3684 for ar.pfs save at alloc insn.
3685
ddc6e7d6
RH
36862011-07-05 Richard Henderson <rth@redhat.com>
3687
3688 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
3689 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3690 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
3691 stack pointer save.
3692 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
3693 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
3694 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
3695 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
3696
a3515605
RH
36972011-07-05 Richard Henderson <rth@redhat.com>
3698
3699 * config/vax/vax.md (define_c_enum unspecv): New. Define the
3700 VUNSPEC_* constants here instead of via define_constants.
3701 (VUNSPEC_PEM): New constant.
3702 (procedure_entry_mask): New insn.
3703 (prologue): New expander.
3704 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
3705 (vax_expand_prologue): Rename from vax_output_function_prologue;
3706 emit rtl instead of text.
3707 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
3708 (print_operand): Add 'x' prefix.
3709
a7adbbcb
L
37102011-07-05 H.J. Lu <hongjiu.lu@intel.com>
3711
3712 PR middle-end/47715
3713 * calls.c (precompute_register_parameters): Promote the function
3714 argument before checking non-legitimate constant.
3715
cec11ec4
SP
37162011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3717
3718 PR tree-optimization/47654
3719 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
3720 (lst_do_strip_mine_loop): Return an int.
3721 (lst_do_strip_mine): Same.
3722 (scop_do_strip_mine): Same.
3723 (scop_do_block): Loop blocking should strip-mine at least two loops.
3724 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
3725 (scop_do_interchange): Same.
3726 * graphite-poly.h (scop_do_interchange): Update declaration.
3727 (scop_do_strip_mine): Same.
3728
9b0d314a
SP
37292011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3730
3731 * graphite-clast-to-gimple.c (precision_for_value): Removed.
3732 (precision_for_interval): Removed.
3733 (gcc_type_for_interval): Use mpz_sizeinbase.
3734
81d6d080
SP
37352011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3736
3737 * graphite-ppl.h (value_max): Correct computation of max.
3738
369e3430
SP
37392011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3740
3741 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
3742
fce5dddd
RG
37432011-07-05 Richard Guenther <rguenther@suse.de>
3744
3745 * c-decl.c (c_init_decl_processing): Defer building common
3746 tree nodes to c_common_nodes_and_builtins.
3747
12037899
RL
37482011-07-05 Razya Ladelsky <razya@il.ibm.com>
3749
3750 PR tree-optimization/49580
f9610d20 3751 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
12037899 3752 the loop's number of iterations.
f9610d20
UB
3753 * tree-parloops.c (transform_to_exit_first_loop): Add the
3754 handling of the loop's number of iterations before the call
12037899 3755 to gimple_duplicate_sese_tail.
28b21ebb 3756 Insert the stmt caclculating the new rhs of the loop's
12037899
RL
3757 condition stmt to the preheader instead of iters_bb.
3758
509a31f8
L
37592011-07-05 H.J. Lu <hongjiu.lu@intel.com>
3760
3761 PR rtl-optimization/47449
3762 * fwprop.c (forward_propagate_subreg): Don't propagate hard
3763 register nor zero/sign extended hard register.
3764
39becbac
RG
37652011-07-05 Richard Guenther <rguenther@suse.de>
3766
3767 PR tree-optimization/49518
3768 PR tree-optimization/49628
3769 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
3770 irrelevant and invariant data-references.
3771 (vect_analyze_data_ref_access): For invariant loads clear the
3772 group association.
3773
15923c25
JJ
37742011-07-04 Jakub Jelinek <jakub@redhat.com>
3775
af421d9c
JJ
3776 PR rtl-optimization/49619
3777 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
3778 pass VOIDmode as op0_mode to recursive call, and return temp even
3779 when different from tor, just if it is not IOR of the original
3780 PLUS arguments.
3781
707f9919
JJ
3782 PR rtl-optimization/49472
3783 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
3784 negating MULT, negate the second operand instead of first.
3785 (simplify_binary_operation_1) <case MULT>: If one operand is
f9610d20
UB
3786 a NEG and the other is MULT, don't attempt to optimize by negation
3787 of the MULT operand if it only moves the NEG operation around.
707f9919 3788
15923c25
JJ
3789 PR debug/49602
3790 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
3791 get_current_def return value if it can't be trusted to be
3792 the current value of the variable in the current bb.
3793
0d5e0c1b
UB
37942011-07-04 Uros Bizjak <ubizjak@gmail.com>
3795
3796 PR target/49600
3797 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
3798 general register to memory for !TARGET_INTER_UNIT_MOVES.
3799
db297e20
GJL
38002011-07-04 Georg-Johann Lay <avr@gjlay.de>
3801
3802 PR target/44643
3803 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
3804 instead of TREE_READONLY.
3805
f451d14d
GJL
38062011-07-04 Georg-Johann Lay <avr@gjlay.de>
3807
3808 * doc/extend.texi (AVR Built-in Functions): Update documentation
3809 of __builtin_avr_fmul*.
0d5e0c1b 3810 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
f451d14d
GJL
3811 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
3812 * config/avr/avr.md (fmul): Rename to fmul_insn.
3813 (fmuls): Rename to fmuls_insn.
3814 (fmulsu): Rename to fmulsu_insn.
3815 (fmul,fmuls,fmulsu): New expander.
3816 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
3817 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
3818 * config/avr/libgcc.S (__fmul): New function.
3819 (__fmuls): New function.
3820 (__fmulsu,__fmulsu_exit): New function.
3821
30f1e6de
RG
38222011-07-04 Richard Guenther <rguenther@suse.de>
3823
3824 PR tree-optimization/49615
3825 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
3826 basic-block index check.
3827
6dab9931
GJL
38282011-07-04 Georg-Johann Lay <avr@gjlay.de>
3829
3830 * longlong.h (count_leading_zeros, count_trailing_zeros,
3831 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
3832 resp. 64.
3833
b5066d8b
IR
38342011-07-03 Ira Rosen <ira.rosen@linaro.org>
3835
3836 PR tree-optimization/49610
3837 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
3838 a basic block.
3839
bc712852
EB
38402011-07-02 Eric Botcazou <ebotcazou@adacore.com>
3841 Olivier Hainque <hainque@adacore.com>
3842 Nicolas Setton <setton@adacore.com>
3843
3844 * tree.h (TYPE_ARTIFICIAL): New flag.
3845 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
3846 the DIE of the type if it is artificial.
3847 (gen_array_type_die): Likewise.
3848 (gen_enumeration_type_die): Likewise.
3849 (gen_struct_or_union_type_die): Likewise.
3850 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
3851 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
3852
8b1bdcc5
JJ
38532011-07-01 Jakub Jelinek <jakub@redhat.com>
3854
3855 * tree-object-size.c (pass_through_call): Handle
3856 BUILT_IN_ASSUME_ALIGNED.
3857
06e88d73
MJ
38582011-07-01 Martin Jambor <mjambor@suse.cz>
3859
3860 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
3861
6bbec3e1
L
38622011-07-01 H.J. Lu <hongjiu.lu@intel.com>
3863
3864 PR middle-end/48016
3865 * explow.c (update_nonlocal_goto_save_area): Use proper mode
3866 for stack save area.
3867 * function.c (expand_function_start): Likewise.
3868
e8fdf1cd
RG
38692011-07-01 Richard Guenther <rguenther@suse.de>
3870
3871 PR middle-end/49596
3872 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
3873 may have unknown refs.
3874
80d3dd38
KT
38752011-07-01 Kai Tietz <ktietz@redhat.com>
3876
3877 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
3878
179fc656
RO
38792011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3880
3881 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
3882 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
3883 (Specific, mips-sgi-irix6): Likewise.
3884
14a393a3
RO
38852011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3886
3887 PR libmudflap/49549
3888 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
3889
3aecd443
JJ
38902011-07-01 Jakub Jelinek <jakub@redhat.com>
3891
3892 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
3893 [idx]= and [idx1 ... idx2]= before initializers if needed for
3894 array initializers.
3895
7474f719
CL
38962011-07-01 Chen Liqin <liqin.gcc@gmail.com>
3897
3898 * config.gcc (score-*-elf): Remove score7.o.
3899 * config/score/t-score-elf: Likewise.
3900 * config/score/score.c: Merge score7 to score.c and
3901 remove forwarding functions.
3902 * config/score/score7.c: Deleted.
3903 * config/score/score7.h: Deleted.
3904
ab70d825
RG
39052011-07-01 Richard Guenther <rguenther@suse.de>
3906
3907 PR tree-optimization/49603
0d5e0c1b 3908 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
ab70d825 3909
1ac93f10
MJ
39102011-06-30 Martin Jambor <mjambor@suse.cz>
3911
3912 * tree-sra.c (struct access): Rename total_scalarization to
3913 grp_total_scalarization
3914 (completely_scalarize_var): New function.
3915 (sort_and_splice_var_accesses): Set total_scalarization in the
3916 representative access.
3917 (analyze_access_subtree): Propagate total scalarization accross the
3918 tree, no holes in totally scalarized trees, simplify coverage
3919 computation.
3920 (analyze_all_variable_accesses): Call completely_scalarize_var instead
3921 of completely_scalarize_record.
3922
97f309c3
RH
39232011-06-30 Richard Henderson <rth@redhat.com>
3924
3925 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
3926 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
3927 * config/i386/i386.c: Don't include dwarf2out.h.
3928 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
3929 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
3930 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
3931 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
3932 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
3933
ef284364
RH
39342011-06-30 Richard Henderson <rth@redhat.com>
3935
3936 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
3937 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3938 * final.c (final_scan_insn): Look for it, and invoke
3939 dwarf2out_frame_debug before the insn if found.
3940
c8412f97
RH
39412011-06-30 Richard Henderson <rth@redhat.com>
3942
3943 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
3944 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
3945
e3f903d8
RH
39462011-06-30 Richard Henderson <rth@redhat.com>
3947
3948 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
3949 Define a vector of this type.
3950 (regs_saved_in_regs): Use a VEC.
3951 (num_regs_saved_in_regs): Remove.
3952 (compare_reg_or_pc): New.
3953 (record_reg_saved_in_reg): Split out from...
3954 (dwarf2out_flush_queued_reg_saves): ... here.
3955 (clobbers_queued_reg_save): Update for VEC.
3956 (reg_saved_in): Likewise.
3957 (dwarf2out_frame_debug_init): Likewise.
3958 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
3959 (dwarf2out_frame_debug_cfa_register): Likewise.
3960
e2c9010a
EB
39612011-06-30 Eric Botcazou <ebotcazou@adacore.com>
3962
3963 PR tree-optimization/49572
3964 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
3965 type of the RHS instead of that of the LHS for the expression type.
3966
dbb07bbc
EB
39672011-06-30 Eric Botcazou <ebotcazou@adacore.com>
3968
3969 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
3970 unconditionally.
3971
1565af08
RG
39722011-06-30 Richard Guenther <rguenther@suse.de>
3973
3974 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
3975 * tree-ssa-structalias.c (create_variable_info_for): Do not
3976 add initial constraints for non-var-decls. Properly handle
3977 globals in other ltrans partitions.
3978 (intra_create_variable_infos): Manually create constraints for
3979 the fake no-alias parameter.
3980 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
3981 and assert there are no clones.
3982
42373e0b
RG
39832011-06-30 Richard Guenther <rguenther@suse.de>
3984
3985 PR tree-optimization/46787
3986 * tree-data-ref.c (dr_address_invariant_p): Remove.
3987 (find_data_references_in_stmt): Invariant accesses are ok now.
0d5e0c1b 3988 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
42373e0b
RG
3989 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
3990 invariant loads.
3991
7aa62ea1
MJ
39922011-06-30 Martin Jambor <mjambor@suse.cz>
3993
3994 PR tree-optimization/49094
3995 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
3996 (build_accesses_from_assign): Use it.
3997
f60f32b3
JJ
39982011-06-30 Jakub Jelinek <jakub@redhat.com>
3999
d9048d16
JJ
4000 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
4001 handling of BUILT_IN_ASSUME_ALIGNED.
4002
f60f32b3
JJ
4003 PR debug/49364
4004 * dwarf2out.c (output_abbrev_section): Don't return early
4005 if abbrev_die_table_in_use is 1.
4006 (dwarf2out_finish): Instead don't call output_abbrev_section
4007 nor emit abbrev_section_label in that case.
4008
7cce15d4
NC
40092011-06-30 Nick Clifton <nickc@redhat.com>
4010
4011 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
4012 for the V850E.
4013
ce7e54ff
JJ
40142011-06-30 Jakub Jelinek <jakub@redhat.com>
4015
4016 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
4017 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
4018
83197f37
IR
40192011-06-30 Ira Rosen <ira.rosen@linaro.org>
4020
4021 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
4022 both pattern and original statements if necessary.
4023 (vect_transform_loop): Likewise.
4024 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
4025 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
4026 Mark the pattern statement only if the original statement doesn't
4027 have its own uses.
4028 (process_use): Call vect_mark_relevant with additional parameter.
4029 (vect_mark_stmts_to_be_vectorized): Likewise.
4030 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
4031 (vect_analyze_stmt): Handle both pattern and original statements
4032 if necessary.
4033 (vect_transform_stmt): Don't store vectorized pattern statement
4034 in the original statement.
4035 (vect_is_simple_use_1): Use related pattern statement only if the
4036 original statement is irrelevant.
4037 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
4038
dbb07bbc 40392011-06-29 Changpeng Fang <changpeng.fang@amd.com>
5c0d88e6 4040
dbb07bbc
EB
4041 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
4042 option.
4043 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
4044 entry.
5c0d88e6
CF
4045 (TARGET_AVX128_OPTIMAL): New definition.
4046 * config/i386/i386.c (initial_ix86_tune_features): Initialize
4047 X86_TUNE_AVX128_OPTIMAL entry.
4048 (ix86_option_override_internal): Enable the generation
4049 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
4050 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
4051 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
4052
931050d0
EB
40532011-06-29 Eric Botcazou <ebotcazou@adacore.com>
4054
4055 PR tree-optimization/49539
4056 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
4057 names by means of stmt_references_abnormal_ssa_name.
4058 (associate_plusminus): Call can_propagate_from before propagating
4059 from definition statements.
4060 (ssa_forward_propagate_and_combine): Remove superfluous newline.
4061
dfedbe40
RG
40622011-06-29 Richard Guenther <rguenther@suse.de>
4063
4064 * doc/invoke.texi: Document -scev dump modifier.
4065 * tree-pass.h (TDF_SCEV): New dump flag.
4066 * tree-dump.c (dump_option_value_in): Add scev.
4067 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
4068 * tree-scalar-evolution.c: Likewise.
4069
3a86cfeb
NS
40702011-06-29 Nathan Sidwell <nathan@codesourcery.com>
4071
4072 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
4073 (cxa_type_match): Correct declaration.
0d5e0c1b
UB
4074 (__gnu_unwind_pr_common): Reconstruct additional indirection
4075 when __cxa_type_match returns succeeded_with_ptr_to_base.
3a86cfeb 4076
f3678bfb
UW
40772011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4078
4079 PR rtl-optimization/49114
4080 * reload.c (struct replacement): Remove SUBREG_LOC member.
4081 (push_reload): Do not set it.
4082 (push_replacement): Likewise.
4083 (subst_reload): Remove dead code.
4084 (copy_replacements): Remove assertion.
4085 (copy_replacements_1): Do not handle SUBREG_LOC.
4086 (move_replacements): Likewise.
4087 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
4088 Detect subregs via recursive descent instead of via SUBREG_LOC.
4089
433ba0a5 40902011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 4091
433ba0a5
GJL
4092 * config/avr/avr.c (avr_encode_section_info): Dispatch to
4093 default_encode_section_info.
4094
73f6eabc
RS
40952011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
4096
4097 PR tree-optimization/49545
4098 * builtins.c (get_object_alignment_1): Update function comment.
4099 Do not use DECL_ALIGN for functions, but test
4100 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
4101 * fold-const.c (get_pointer_modulus_and_residue): Don't check
4102 for functions here.
4103 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
4104
a0f33d3a
JJ
41052011-06-29 Jakub Jelinek <jakub@redhat.com>
4106
4107 PR debug/49567
0d5e0c1b
UB
4108 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
4109 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
a0f33d3a 4110
946c8b23 41112011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 4112
946c8b23 4113 PR target/34734
0d5e0c1b 4114 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
946c8b23
GJL
4115 about uninitialized data attributed 'progmem' from here...
4116 (avr_encode_section_info): ...to this new function.
4117 (TARGET_ENCODE_SECTION_INFO): New define.
4118 (avr_section_type_flags): For data in ".progmem.data", remove
4119 section flag SECTION_WRITE.
4120
9a63dee4 41212011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 4122
9a63dee4
GJL
4123 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
4124 _xmulhisi3_exit.
4125 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
4126 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
4127 (__umulhisi3): Ditto.
4128 * config/avr/avr.md (mulhisi3): New insn expender.
4129 (umulhisi3): New insn expender.
4130 (*mulhisi3_call): New insn.
4131 (*umulhisi3_call): New insn.
4132
4374ce45
JM
41332011-06-28 Joseph Myers <joseph@codesourcery.com>
4134
4135 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
4136
94759030
RH
41372011-06-28 Richard Henderson <rth@redhat.com>
4138
4139 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
4140 all code and arguments that handled pushes. Update all callers.
4141
d018b46e
RH
41422011-06-28 Richard Henderson <rth@redhat.com>
4143
4144 * config/arm/arm.c (arm_output_function_prologue): Don't call
4145 thumb1_output_function_prologue.
4146 (arm_expand_prologue): Avoid dead store.
4147 (number_of_first_bit_set): Use ctz_hwi.
4148 (thumb1_emit_multi_reg_push): New.
4149 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
4150 to emit the entire prologue as rtl.
4151 (thumb1_output_interwork): Split out from
4152 thumb1_output_function_prologue.
4153 (thumb1_output_function_prologue): Remove.
4154 (arm_attr_length_push_multi): Handle thumb1.
4155 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
4156 (prologue_thumb1_interwork): New.
4157 (*push_multi): Allow thumb1; use push_mult_memory_operand.
4158 * config/arm/predicates.md (push_mult_memory_operand): New.
4159
97269a23
EB
41602011-06-28 Eric Botcazou <ebotcazou@adacore.com>
4161
4162 * config/sparc/sync.md (*stbar): Delete.
4163 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
4164
4a9206ce
EB
41652011-06-28 Eric Botcazou <ebotcazou@adacore.com>
4166
4167 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
4168
6138f9bd
RO
41692011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4170
4171 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
4172 (TARGET_64BIT_DEFAULT): Define.
4173 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
4174 of tm_file.
4175 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
4176
a7d0d30f
JM
41772011-06-28 Joseph Myers <joseph@codesourcery.com>
4178
4179 * common.opt (in_lto_p): New Variable entry.
4180 * flags.h (in_lto_p): Move to common.opt.
4181 * gcc.c: Include params.h.
4182 (set_option_handlers): Also use common_handle_option and
4183 target_handle_option.
0d5e0c1b 4184 (main): Call global_init_params, finish_params and init_options_struct.
a7d0d30f
JM
4185 * opts.c (debug_type_names): Move from toplev.c.
4186 (print_filtered_help): Access quiet_flag through opts pointer.
0d5e0c1b
UB
4187 (common_handle_option): Return early in the driver for some options.
4188 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
4189 opts pointer.
a7d0d30f
JM
4190 * toplev.c (in_lto_p): Move to common.opt.
4191 (debug_type_names): Move to opts.c.
4192 * Makefile.in (OBJS): Remove opts.o.
4193 (OBJS-libcommon-target): Add opts.o.
4194 (gcc.o): Update dependencies.
4195
420863a9
KT
41962011-06-28 Kai Tietz <ktietz@redhat.com>
4197
0d5e0c1b 4198 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
420863a9 4199
0498a2be
RR
42002011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4201
4202 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
4203 with '=' constraint modifier.
4204 (*divdf3_vfp): Likewise.
4205 ("*mulsf3_vfp"): Likewise.
4206 ("*muldf3_vfp"): Likewise.
4207 ("*mulsf3negsf_vfp"): Likewise.
4208 ("*muldf3negdf_vfp"): Likewise.
4209
4a68b724
NC
42102011-06-28 Nick Clifton <nickc@redhat.com>
4211
4212 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
4213 relaxation when performing an incremental link.
4214
72a32729
KT
42152011-06-28 Kai Tietz <ktietz@redhat.com>
4216
4217 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
4218 within BB from last to first.
4219
88a00ef7
JM
42202011-06-28 Joseph Myers <joseph@codesourcery.com>
4221
4222 * genattr-common.c: New. Based on genattr.c.
4223 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
4224 (MOSTLYCLEANFILES): Add insn-attr-common.h.
4225 (opts.o): Update dependencies.
4226 (.PRECIOUS): Add insn-attr-common.h.
4227 (simple_rtl_generated_h): Add insn-attr-common.h.
4228 (build/genattr-common.o): New.
4229 (genprogrtl): Add attr-common.
4230 * genattr.c (main): Include insn-attr-common.h. Don't generate
4231 definitions of DELAY_SLOTS or INSN_SCHEDULING.
0d5e0c1b 4232 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
88a00ef7 4233
880962ac
GJL
42342011-06-28 Georg-Johann Lay <avr@gjlay.de>
4235
4a68b724 4236 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
880962ac 4237 avr-*-* and avr-*-rtems* targets.
4a68b724 4238
880962ac
GJL
4239 * config/avr/elf.h: New file.
4240 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
4241 (TARGET_ASM_SELECT_SECTION): Define.
4242 (INIT_SECTION_ASM_OP): Undefine.
4243 (FINI_SECTION_ASM_OP): Undefine.
4244 (READONLY_DATA_SECTION_ASM_OP): Undefine.
4245 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
4246 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
4247 * config/avr/avr.h:
4248 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
4249 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
4250 (MAX_OFILE_ALIGNMENT): Move to elf.h.
4251 (STRING_LIMIT): Move to elf.h.
4252 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
4253 (ASM_DECLARE_OBJECT_NAME): Remove.
4254 (ESCAPES): Remove.
4255 (ASM_OUTPUT_SKIP): Remove.
4256 (DWARF2_DEBUGGING_INFO): Remove.
4257 (OBJECT_FORMAT_ELF): Remove.
4258 (USER_LABEL_PREFIX): Remove.
4259 (ASM_OUTPUT_EXTERNAL): Remove.
4260 (ASM_OUTPUT_ASCII): Remove.
4261 (TYPE_ASM_OP): Remove.
4262 (SIZE_ASM_OP): Remove.
4263 (WEAK_ASM_OP): Remove.
4264 (STRING_ASM_OP): Remove.
4265 (SET_ASM_OP): Remove.
4266 (ASM_WEAKEN_LABEL): Remove.
4267 (TYPE_OPERAND_FMT): Remove.
4268 (ASM_DECLARE_FUNCTION_SIZE): Remove.
4269 (ASM_FINISH_DECLARE_OBJECT): Remove.
4270 (NO_DOLLAR_IN_LABEL): Remove.
4271 (ASM_GENERATE_INTERNAL_LABEL): Remove.
4272 (ASM_OUTPUT_CASE_LABEL): Remove.
4273 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
4274 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
4275 (gas_output_ascii): Remove.
4276 (gas_output_limited_string): Remove.
4277 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
4278 * config/avr/avr-protos.h
4279 (gas_output_ascii): Remove prototye.
4280 (gas_output_limited_string): Remove prototype.
4281
a1b5eb93
RE
42822011-06-27 Richard Earnshaw <rearnsha@arm.com>
4283
4284 PR target/48637
4285 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
4286 asm operands.
4287
310e71a8
JH
42882011-06-27 Jan Hubicka <jh@suse.cz>
4289
4a9206ce
EB
4290 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
4291 node instead of references in node.
310e71a8 4292
171da07a
RH
42932011-06-27 Richard Henderson <rth@redhat.com>
4294
4295 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
4296 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
4297 inside ifdef.
4298
dc2a58da
JJ
42992011-06-27 Jakub Jelinek <jakub@redhat.com>
4300
56300785
JJ
4301 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
4302
45d439ac
JJ
4303 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
4304 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
4305 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
4306 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
4307 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
4308 (evaluate_stmt, execute_fold_all_builtins): Handle
4309 BUILT_IN_ASSUME_ALIGNED.
4310 * tree-ssa-dce.c (propagate_necessity): Likewise.
4311 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4312 call_may_clobber_ref_p_1): Likewise.
4313 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
4314 (expand_builtin_assume_aligned): New function.
4315 * doc/extend.texi (__builtin_assume_aligned): Document.
4316
dc2a58da
JJ
4317 PR debug/49544
4318 * cselib.c (promote_debug_loc): If cselib_preserve_constants
4319 and l has two DEBUG_INSN owned locs instead of just one, adjust
4320 the second location's setting_insn too.
4321
0d72f628
RO
43222011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4323
4324 PR libmudflap/38738
4325 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
4326
bebd619e
NC
43272011-06-27 Nick Clifton <nickc@redhat.com>
4328
0d5e0c1b
UB
4329 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
4330 bit position of highest bit set into a count of the high zero bits.
bebd619e 4331
353b39fa
EB
43322011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4333
4334 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
4335
a7af037b
EB
43362011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4337
4338 PR lto/48492
4339 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
4340 to a NULL parent.
4341
1c86160a
RG
43422011-06-27 Richard Guenther <rguenther@suse.de>
4343
4344 PR tree-optimization/49394
4345 * passes.c (execute_one_pass): Restore current_pass after
4346 applying IPA transforms.
4347
5da49a9d
KT
43482011-06-27 Kai Tietz <ktietz@redhat.com>
4349
4350 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
4351 out of type precision after operation.
0d5e0c1b
UB
4352 (find_bswap): Take for limit value the integer auto-promotion
4353 into account.
5da49a9d 4354
9242213f
EB
43552011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4356
4357 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
4358 forward scan as well.
4359
db8b22ef
TG
43602011-06-27 Tristan Gingold <gingold@adacore.com>
4361
4362 PR target/44241
4363 * config/vms/vms-protos.h: New file.
4364 * config/vms/vms-crtlmap.map: New file.
4365 * config/vms/vms.c: New file.
4366 * config/vms/make-crtlmap.awk: New file.
4367 * config/vms/vms-crtl.h: File removed.
4368 * config/vms/vms-crtl-64.h: File removed.
4369 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
4370 * config/alpha/vms64.h: Do not include vms-crtl-64.h
4371 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
4372 clear some builtins on VMS. Calls vms_patch_builtins.
4373 (avms_asm_output_external): Remove.
4374 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
4375 (struct crtl_name_spec): Remove
4376 (DO_CTRL_NAMES): Remove.
4377 * config/ia64/vms.h (struct crtl_name_spec): Remove
4378 (DO_CTRL_NAMES): Remove.
4379 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
4380 clear some builtins on VMS. Calls vms_patch_builtins.
4381 (ia64_asm_output_external): Remove DO_CRTL_NAME.
4382 * config/ia64/vms64.h: Do not include vms-crtl-64.h
0d5e0c1b 4383 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
db8b22ef 4384
b213221d
TG
43852011-06-27 Tristan Gingold <gingold@adacore.com>
4386
4387 * config/alpha/alpha.c (alpha_end_function): Always generate .end
4388 directive on VMS.
4389
157b9300
EB
43902011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4391
4392 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
4393 the function receives nonlocal gotos.
4394
ccbf5bb4
RG
43952011-06-27 Richard Guenther <rguenther@suse.de>
4396
4397 PR tree-optimization/49536
4398 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
4399 For non-scalar inner types use a scalar type according to
4400 the scalar inner mode.
4401
fe4cd14b
RG
44022011-06-27 Richard Guenther <rguenther@suse.de>
4403
4404 PR tree-optimization/49365
4405 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
4406
afc3f22f
RS
44072011-06-27 Richard Guenther <rguenther@suse.de>
4408
4409 PR tree-optimization/49169
4410 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
4411 the alignment of function decls.
4412
92590751 44132011-06-26 Iain Sandoe <iains@gcc.gnu.org>
a45a766b
IS
4414
4415 PR target/47997
4416 * config/darwin.c (darwin_mergeable_string_section): Place string
4417 constants in '.cstring' rather than '.const' when CF/NSStrings are
4418 active.
4419
605354f3
EB
44202011-06-26 Eric Botcazou <ebotcazou@adacore.com>
4421
4422 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
4423 (emit_save_register_window): Likewise.
4424 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
4425 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
4426 Swap back %o7/%i7 in register naming.
4427
0e9197f5
IS
44282011-06-25 Iain Sandoe <iains@gcc.gnu.org>
4429
4430 PR driver/49371
4431 * config/darwin.c (darwin_override_options): Improve warning when
4432 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
4433 is given with fpie/fPIE.
4434 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
4435 * config/darwin9.h (PIE_SPEC): New.
53461199 4436
605354f3 44372011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
53461199
BS
4438
4439 * timevar.c (timevar_print): Increase width for display of timevar
4440 name.
4441
f796c438
JJ
44422011-06-24 Jakub Jelinek <jakub@redhat.com>
4443
4444 PR c++/46400
4445 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
4446 instead of TYPE_CHAIN for chain_next for types.
4447
a7289eaf
RH
44482011-06-24 Richard Henderson <rth@redhat.com>
4449
4450 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
4451 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
4452 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
4453 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
4454 (sparc_flat_expand_prologue): Emit individual instructions
4455 instead of one of the above.
4456
c4b9a87e
ER
44572011-06-24 Easwaran Raman <eraman@google.com>
4458
4459 PR rtl-optimization/49429
4460 PR target/49454
4461 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
4462 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
4463 used to copy y into x.
4464 * calls.c (initialize_argument_information): Mark
4465 an argument addressable if it is passed by invisible reference.
4466 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
4467 if it is passed by reference.
4468
5ac6c59e
L
44692011-06-24 H.J. Lu <hongjiu.lu@intel.com>
4470
4471 PR rtl-optimization/49504
4472 * rtlanal.c (nonzero_bits1): Properly handle addition or
1f134bd6
L
4473 subtraction of a pointer in Pmode if pointers extend unsigned.
4474 (num_sign_bit_copies1): Likewise.
5ac6c59e 4475
b807e627
MJ
44762011-06-24 Martin Jambor <mjambor@suse.cz>
4477
4478 PR tree-optimizations/49516
4479 * tree-sra.c (sra_modify_assign): Choose the safe path for
4480 aggregate copies if we also did scalar replacements.
4481
9a1ea4b9
RR
44822011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4483
4484 PR target/49335
4485 * config/arm/predicates.md (add_operator): New.
0d5e0c1b 4486 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
9a1ea4b9 4487
949cfd0a
AK
44882011-06-24 Andi Kleen <ak@linux.intel.com>
4489
4490 * tree-sra.c (type_internals_preclude_sra_p): Add msg
4491 parameter. Split up ifs and report reason in *msg.
4492 (reject): Add.
4493 (find_var_candiate): Add msg variable.
4494 Split up ifs and report reason to reject.
4495 (find_param_candidates): Add msg variable.
4496 Pass msg to type_internals_preclude_sra_p.
4497
49e9c661 44982011-06-23 Jeff Law <law@redhat.com>
ad3577df 4499
b0c11403
JL
4500 PR middle-end/48770
4501 * reload.h (reload): Change to return a bool.
4502 * ira.c (ira): If requested by reload, run a fast DCE pass after
4503 reload has completed. Fix comment typo.
4504 * reload1.c (need_dce): New file scoped static.
4505 (reload): Set reload_completed here. Return whether or not a DCE
4506 pass after reload is needed.
4507 (delete_dead_insn): Set need_dce as needed.
4508
ad3577df
JL
4509 PR middle-end/49465
4510 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
4511 to detect threading through joiner block. If there was already
4512 an edge to the new target, then do not change the PHI nodes.
4513
7cf64710
JJ
45142011-06-23 Jakub Jelinek <jakub@redhat.com>
4515
4516 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
4517 get_pointer_alignment to see if base isn't sufficiently aligned.
4518
febb1302
JH
45192011-06-23 Jan Hubicka <jh@suse.cz>
4520
4521 PR tree-optimize/49373
4522 * tree-pass.h (all_late_ipa_passes): Declare.
4523 * cgraphunit.c (init_lowered_empty_function): Fix properties.
4a9206ce
EB
4524 (cgraph_optimize): Execute late passes; remove unreachable funcions
4525 after materialization.
4526 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
4527 LTOing.
febb1302
JH
4528 * passes.c (all_late_ipa_passes): Declare.
4529 (dump_passes, register_pass): Handle late ipa passes.
4a9206ce
EB
4530 (init_optimization_passes): Move ipa_pta to late passes; schedule
4531 fixup_cfg at beggining of all_passes.
febb1302
JH
4532 (apply_ipa_transforms): New function.
4533 (execute_one_pass): When doing simple ipa pass, apply all transforms.
4534
4c77620d
JM
45352011-06-23 Joseph Myers <joseph@codesourcery.com>
4536
4537 * params.c: Include common/common-target.h. Don't include tm.h.
4538 (lang_independent_params): Move from toplev.c.
4539 (global_init_params): New.
4540 * params.h (global_init_params): Declare.
4541 * target.def (default_params): Move to common-target.def.
4542 * toplev.c (lang_independent_options): Remove.
4543 (lang_independent_params): Move to params.c.
4544 (general_init): Use global_init_params.
4545 * common/common-target.def (option_default_params): Move from
4546 target.def.
4547 * common/config/ia64/ia64-common.c: Include params.h.
4548 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4549 from ia64.c.
4550 * common/config/rs6000/rs6000-common.c: Include params.h.
4551 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4552 from rs6000.c.
4553 * common/config/sh/sh-common.c: Include params.h.
4554 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4555 from sh.c.
4556 * common/config/spu/spu-common.c: Include params.h.
4557 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4558 from spu.c.
4559 * config/ia64/ia64.c (ia64_option_default_params,
4560 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
4561 * config/rs6000/rs6000.c (rs6000_option_default_params,
4562 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
4563 * config/sh/sh.c (sh_option_default_params,
4564 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
4565 * config/spu/spu.c (spu_option_default_params,
4566 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
4567 * Makefile.in (OBJS): Remove params.o.
4568 (OBJS-libcommon-target): Add params.o.
4569 (params.o, $(common_out_object_file)): Update dependencies.
4570 * doc/tm.texi: Regenerate.
4571
6aad1e38
AM
45722011-06-23 Alan Modra <amodra@gmail.com>
4573
4574 PR bootstrap/49383
4575 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
4576 invocation for 2011-06-09 changes.
4577
4fb489e7
JJ
45782011-06-22 Jakub Jelinek <jakub@redhat.com>
4579
fb79f500
JJ
4580 PR libgomp/49490
4581 * omp-low.c (expand_omp_for_static_nochunk): Only
0d5e0c1b
UB
4582 use n ceil/ nthreads size for the first n % nthreads threads in the
4583 team instead of all threads except for the last few ones which
fb79f500
JJ
4584 get less work or none at all.
4585
4fb489e7
JJ
4586 PR debug/49496
4587 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
4588 uses.
4589
9c7c9f10
RG
45902011-06-22 Richard Guenther <rguenther@suse.de>
4591
4592 PR tree-optimization/49493
4593 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
4594 Refer to the alias target of variables.
4595 (associate_varinfo_to_alias_1): Remove.
4596 (ipa_pta_execute): Do not associate aliases with anything.
4597 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
4598 (cgraph_function_node): Likewise.
4599 (cgraph_function_or_thunk_node): Likewise.
4600 (varpool_variable_node): Likewise.
4601
7cf13d1f
NS
46022011-06-22 Nathan Sidwell <nathan@codesourcery.com>
4603
0d5e0c1b 4604 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
7cf13d1f
NS
4605 * config.gcc (arm*-*-linux*): Default to gnu tls.
4606 (arm*-*-*): Add --with-tls option.
4607 (all_defaults): Add 'tls'.
4608
78a8eb4e
RH
46092011-06-22 Richard Henderson <rth@redhat.com>
4610
4611 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
4612 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4613 (dwarf2out_frame_debug_cfa_window_save): Rename from
4614 dwarf2out_window_save; make static.
4615 * tree.h (dwarf2out_window_save): Don't declare.
4616
4617 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
4618 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4619 (emit_save_register_window): Rename from gen_save_register_window;
4620 emit the insn and add REG_CFA_* notes.
4621 (sparc_expand_prologue): Update to match.
4622 * config/sparc/sparc.md (save_register_window_1): Simplify from
4623 save_register_window<P:mode>.
4624
3b4c46d7
L
46252011-06-22 H.J. Lu <hongjiu.lu@intel.com>
4626
4627 PR target/49497
4628 * config/i386/i386.md (*lea_general_2): Always allow SImode.
4629 (*lea_general_2_zext): Likewise.
4630 (imul to lea peepholes): Use const359_operand and check
4631 TARGET_PARTIAL_REG_STALL.
4632
4633 * config/i386/predicates.md (const359_operand): New.
4634
4399cf59
MM
46352011-06-22 Michael Matz <matz@suse.de>
4636
4637 * cgraphunit.c (assemble_thunk): Use correct return type.
4638
31a0c825 46392011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
0d5e0c1b 4640 Dmitry Melnik <dm@ispras.ru>
31a0c825
DP
4641
4642 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
4643 (neon_output_shift_immediate): Ditto.
4644 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
4645 prototype.
4646 (neon_output_shift_immediate): Ditto.
4647 * config/arm/neon.md (vashl<mode>3): Modified constraint.
4648 (vashr<mode>3_imm): New insn pattern.
4649 (vlshr<mode>3_imm): Ditto.
4650 (vashr<mode>3): Modified constraint.
4651 (vlshr<mode>3): Ditto.
4652 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
4653 predicate.
4654 (imm_for_neon_rshift_operand): Ditto.
4655 (imm_lshift_or_reg_neon): Ditto.
4656 (imm_rshift_or_reg_neon): Ditto.
4657
4658 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
4659
ddb555ed
JJ
46602011-06-22 Jakub Jelinek <jakub@redhat.com>
4661
36dc1a88
JJ
4662 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
4663 builtin calls even if likelyvalue is not CONSTANT.
4664 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
4665 Return get_value_for_expr of first operand
4666 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
4667 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4668 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
4669 their non-checking counterparts.
4670 (call_may_clobber_ref_p_1): Likewise.
4671 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
4672 like their non-checking counterparts.
4673 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4674 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
4675 like their non-checking counterparts.
4676 (find_func_clobbers): Likewise.
4677 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
4678 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
4679
41cd4957
JJ
4680 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
4681 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
4682 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
4683 of base type reference as argument.
4684 (resolve_addr_in_expr): Likewise. Fix keep computation.
4685 (convert_descriptor_to_signed): Renamed to...
0d5e0c1b
UB
4686 (convert_descriptor_to_mode): ... this. For wider types convert to
4687 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
41cd4957
JJ
4688 (typed_binop): New function.
4689 (scompare_loc_descriptor, ucompare_loc_descriptor,
4690 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
4691 default to unsigned type instead of signed.
4692
ddb555ed
JJ
4693 PR debug/47858
4694 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
4695 (gimple_build_debug_source_bind_stat): New prototype.
4696 (gimple_build_debug_source_bind): Define.
4697 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
4698 gimple_debug_source_bind_get_value,
4699 gimple_debug_source_bind_get_value_ptr,
4700 gimple_debug_source_bind_set_var,
4701 gimple_debug_source_bind_set_value): New inlines.
4702 * gimple.c (gimple_build_debug_source_bind_stat): New function.
4703 * gimple-pretty-print.c (dump_gimple_debug): Handle
4704 GIMPLE_DEBUG_SOURCE_BIND.
4705 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
4706 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4707 * tree-parloops.c (eliminate_local_variables,
4708 separate_decls_in_region): Likewise.
4709 (separate_decls_in_region_debug): Renamed from
4710 separate_decls_in_region_debug_bind. Handle
4711 gimple_debug_source_bind_p.
4712 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
4713 prototypes.
4714 (DECL_HAS_DEBUG_ARGS_P): Define.
4715 (struct tree_function_decl): Add has_debug_args_flag field.
4716 * tree.c (debug_args_for_decl): New variable.
4717 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
4718 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
4719 (rewrite_debug_stmt_uses): New function.
4720 (rewrite_stmt): Use it to rewrite debug stmt uses.
4721 * rtl.def (DEBUG_PARAMETER_REF): New.
4722 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
4723 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
4724 DEBUG_PARAMETER_REF.
4725 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
4726 * print-rtl.c (print_rtx): Likewise.
4727 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
4728 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
4729 debug stmts in the first bb.
4730 * tree-inline.c (remap_ssa_name): If remapping default def
4731 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
4732 a source bind debug stmt.
4733 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
4734 (maybe_move_debug_stmts_to_successors): Likewise.
4735 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
4736 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
4737 debug args vector from old_decl to new_decl.
4738 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
4739 or modified parameters, add debug bind stmts before call
0d5e0c1b 4740 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
ddb555ed
JJ
4741 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
4742 on DECL_DEBUG_EXPRs from debug args vector.
4743 (expand_debug_source_expr): New function.
4744 (expand_debug_locations): Use it for source bind insns.
4745 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
4746 * var-tracking.c (prepare_call_arguments): Add debug args
4747 to call_arguments if any.
4748 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
0d5e0c1b
UB
4749 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
4750 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
ddb555ed
JJ
4751 (get_ref_die_offset, parameter_ref_descriptor): New functions.
4752 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
4753 (gen_subprogram_die): Handle parameters identified by
4754 DEBUG_PARAMETER_REF.
4755
ccdc2164
NS
47562011-06-22 Nathan Sidwell <nathan@codesourcery.com>
4757
4758 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
4759 * doc/install.texi (Configuration): Document --with-tls.
ccdc2164
NS
4760 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
4761 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
4762 (arm_tls_descseq_addr): New.
4763 (legitimize_tls_address): Add tlsdesc support.
4764 (arm_cannot_copy_insn_p): Check for tlscall.
4765 (arm_emit_tls_decoration): Likewise.
4766 * config/arm/arm.h (TARGET_GNU2_TLS): New.
4767 (OPTION_DEFAULT_SPECS): Add with-tls support.
4768 * config/arm/arm.md (R1_REGNUM): Define.
4769 (tlscall): New.
4770 * config/arm/arm.opt (tls_type): New enumeration type and values.
4771 (mtls-dialect): New switch.
4772 * config/arm/arm-opts.h (enum tls_type): New.
4773
70e41a6a
NP
47742011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
4775
4776 * attribs.c (register_attribute): Added assert to check that all
4777 attribute specs are registered with a name that is not empty and
4778 does not start with '_'.
4779 (decl_attributes): Avoid the lookup of the "naked" attribute spec
4780 if the function has no attributes.
4781 * tree.c (is_attribute_with_length_p): Removed.
4782 (is_attribute_p): Removed.
0d5e0c1b 4783 (private_is_attribute_p): New.
70e41a6a
NP
4784 (private_lookup_attribute): New.
4785 (lookup_attribute): Removed.
4786 (lookup_ident_attribute): New.
4787 (remove_attribute): Require the first argument to be in the form
4788 'text', not '__text__'. Updated asserts.
4789 (merge_attributes): Use lookup_ident_attributes instead of
4790 lookup_attribute.
4791 (merge_dllimport_decl_attributes): Use remove_attribute.
4792 (attribute_list_contained): Likewise.
4793 (attribute_list_equal): Immediately return 1 if the arguments are
4794 identical pointers.
4795 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
4796 'int'. Require the first argument to be in the form 'text', not
4797 '__text__'. Require the second argument to be an identifier.
4798 (lookup_attribute): Made inline. Require the first argument to be
4799 in the form 'text', not '__text__'.
4800 (private_is_attribute_p, private_lookup_attribute): New.
4801 Updated comments.
0d5e0c1b 4802
e0a8ecf2
AM
48032011-06-21 Andrew MacLeod <amacleod@redhat.com>
4804
4805 * builtins.c: Add sync_ or SYNC__ to builtin names.
4806 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
4807 * omp-low.c: Add sync_ or SYNC__ to builtin names.
4808
663827d3 48092011-06-21 Georg-Johann Lay <avr@gjlay.de>
637c11bd 4810
663827d3
GJL
4811 PR target/33049
4812 * config/avr/avr.md (extzv): New expander.
4813 (*extzv): New insn.
4814 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
4815 * config/avr/constraints.md (C04): New constraint.
4816 * doc/md.texi (Machine Constraints): Document it.
4817
146aef0b
JJ
48182011-06-21 Jakub Jelinek <jakub@redhat.com>
4819
4820 PR middle-end/49489
4821 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
4822 unsignedp argument instead of 1 for clrsb_optab.
4823 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
4824 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
4825 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
4826 * optabs.c (widen_leading): Call widen_operand and expand_unop
4827 with 0 as unsignedp argument instead of 1 for clrsb_optab.
637c11bd 4828 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
146aef0b 4829
c0503294
GJL
48302011-06-21 Georg-Johann Lay <avr@gjlay.de>
4831
4832 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
4833
3801c801
BS
48342011-06-21 Bernd Schmidt <bernds@codesourcery.com>
4835
0bddee8e
BS
4836 * gensupport.c (add_define_attr): New static function.
4837 (is_predicable): Allow multi-alternative lists for the "predicable"
4838 attribute.
4839 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
4840 (process_one_cond_exec): Call alter_attrs_for_insn.
4841 * doc/md.texi (Defining Attributes): Mention some standard names.
4842 (Conditional Execution): Update documentation for "predicable".
4843
3801c801
BS
4844 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
4845 __builtin_clrsbll): Document.
4846 * doc/rtl.texi (clrsb): New entry.
4847 * optabs.c (widen_leading): Renamed from widen_clz. New argument
4848 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
4849 (expand_unop): Handle clrsb_optab.
4850 (init_optabs): Initialize it.
4851 * optabs.h (enum optab_index): New entry OTI_clrsb.
4852 (clrsb_optab): Define.
4853 * genopinit.c (optabs): Add an entry for it.
4854 * builtins.c (expand_builtin): Handle clrsb builtin functions.
4855 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
4856 BUILT_IN_CLRSBLL): New.
4857 * rtl.def (CLRSB): New code.
4858 * dwarf2out.c (mem_loc_descriptor): Handle it.
4859 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
4860 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
4861 and popcount.
4862 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
4863 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
4864 (__ctzDI2): Move declaration.
4865 * config/bfin/bfin.md (clrsbsi2): New expander.
4866 (signbitssi2): Use the CLRSB rtx.
4867 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
4868 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
4869
55f01229
RG
48702011-06-21 Richard Guenther <rguenther@suse.de>
4871
637c11bd 4872 * ipa-inline-transform.c (inline_transform): Fix previous change.
55f01229 4873
5181cd6a
IR
48742011-06-21 Ira Rosen <ira.rosen@linaro.org>
4875
4876 PR tree-optimization/49478
4877 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
4878 with constant operand.
4879
e4ee3d70
RG
48802011-06-21 Richard Guenther <rguenther@suse.de>
4881
4882 * ipa-inline-transform.c (inline_transform): Fix typo.
637c11bd 4883
7b7ec6c5
RG
48842011-06-21 Richard Guenther <rguenther@suse.de>
4885
4886 PR tree-optimization/49483
4887 * tree-vect-stmts.c (vectorizable_assignment): Also handle
4888 VIEW_CONVERT_EXPR conversions.
4889
1b916ca6
JM
48902011-06-21 Joseph Myers <joseph@codesourcery.com>
4891
4892 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
4893 * config/avr/avr-tables.opt: New file (generated).
4894 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
4895 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
4896 avr-mcus.def.
4897 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
4898 (avr_option_override): Don't process -mmcu= argument here. Set
4899 avr_current_device using avr_mcu_index.
637c11bd 4900 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
1b916ca6
JM
4901 * config/avr/avr.opt (mmcu=): Use Enum.
4902 * config/avr/t-avr (avr-devices.o): Update dependencies.
4903 ($(srcdir)/config/avr/avr-tables.opt): New.
4904 * target.def (help): Remove.
4905 * doc/tm.texi.in (TARGET_HELP): Remove.
4906 * doc/tm.texi: Regenerate.
4907 * opts.c: Don't include target.h.
4908 (common_handle_option): Don't call targetm.help.
4909 * system.h (TARGET_HELP): Poison.
4910 * Makefile.in (opts.o): Update dependencies.
4911
7ecfa34f
RO
49122011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4913
4914 * config/usegld.h: New file.
4915 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
4916 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
637c11bd 4917 (LIB_SPEC): Likewise. Search /lib.
7ecfa34f
RO
4918 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
4919 (RDYNAMIC_SPEC): Handle GNU ld.
637c11bd
UB
4920 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
4921 Define.
7ecfa34f
RO
4922 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
4923 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
4924 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
4925 (STACK_CHECK_STATIC_BUILTIN): Define.
4926 * config/sol2.opt (compat-bsd): Remove.
4927 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
4928 * config/sol2-bi.h: New file.
4929 * config/sol2-gld.h: Remove.
4930 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
4931 (NO_DBX_BNSYM_ENSYM): Remove.
4932 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4933 (STACK_CHECK_STATIC_BUILTIN): Remove.
4934 Test USE_GLD instead of TARGET_GNU_LD.
4935 * config/i386/sol2-10.h: Rename to ...
4936 * config/i386/sol2-bi.h .. this.
4937 (SUBTARGET_EXTRA_SPECS): Redefine.
4938 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
4939 (MULTILIB_DEFAULTS): Remove.
4940 (DEFAULT_ARCH32_P): Define.
4941 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
4942 (ARCH64_SUBDIR): Define.
4943 Test USE_GLD instead of TARGET_GNU_LD.
4944 (I386_EMULATION): Rename to ...
4945 (ARCH32_EMULATION): ... this.
4946 (X86_64_EMULATION): Rename to ...
4947 (ARCH64_EMULATION): ... this.
4948 (TARGET_LD_EMULATION): Remove.
4949 (LINK_ARCH_SPEC): Remove.
4950 * config/i386/sol2-gas.h: Remove.
4951 * config/i386/t-sol2-10: Rename to ...
4952 * config/i386/t-sol2-64: ... this.
4953 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
4954 (AS_SPARC64_FLAG): Define.
4955 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
4956 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
4957 depending on TARGET_CPU_DEFAULT.
4958 (CPP_CPU_SPEC): Redefine.
4959 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
4960 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
4961 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
4962 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
4963 ASM_ARCH_DEFAULT_SPEC): Redefine.
4964 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
4965 LINK_ARCH_DEFAULT_SPEC.
4966 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
4967 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
4968 (ARCH64_SUBDIR): Define.
4969 (LINK_ARCH64_SPEC): Redefine.
4970 (CC1_SPEC): Redefine.
4971 (OPTION_DEFAULT_SPECS): Redefine.
4972 (MULTILIB_DEFAULTS): Define.
4973 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
4974 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
4975 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
4976 (NO_DBX_BNSYM_ENSYM): Remove.
4977 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4978 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
4979 (TARGET_ASM_NAMED_SECTION): Likewise.
4980 (STACK_CHECK_STATIC_BUILTIN): Remove.
4981 * config/sparc/sol2-bi.h: Remove.
4982 * config/sparc/sol2-gas-bi.h: Remove.
4983 * config/sparc/sol2-gas.h: Remove.
4984 * config/sparc/sol2-gld-bi.h: Remove.
4985 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
4986 common parts ...
4987 (*-*-solaris2*): ... here.
4988
4b583c43 49892011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 4990
4b583c43 4991 PR other/43564
637c11bd
UB
4992 * ipa-inline.c (can_inline_edge_p): Check
4993 !DECL_DISREGARD_INLINE_LIMITS.
4994
3bb556ad 49952011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 4996
3bb556ad
CB
4997 PR middle-end/49139
4998 * cgraphunit.c (process_function_and_variable_attributes): warn when
4999 always_inline functions that are not inline.
637c11bd
UB
5000 * ipa-inline-transform.c (inline_transform): Always call
5001 optimize_inline.
5002 * tree-inline.c (tree_inlinable_function_p): Use error instead
5003 of sorry.
3bb556ad 5004 (expand_call_inline): Likewise.
637c11bd 5005
f1ee724c
JJ
50062011-06-21 Jakub Jelinek <jakub@redhat.com>
5007
5008 * Makefile.in (dg_target_exps): Set.
5009 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
5010 instead of 7, try to divide it more evenly.
5011
50122011-06-20 Changpeng Fang <changpeng.fang@amd.com>
97ef5ae6 5013
931050d0 5014 PR target/49089
97ef5ae6
CF
5015 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
5016 (avx256_split_unaligned_store): New definition.
5017 (ix86_option_override_internal): Enable avx256 unaligned load/store
5018 splitting only when avx256_split_unaligned_load/store is set.
5019
998c75b6
BS
50202011-06-20 Bernd Schmidt <bernds@codesourcery.com>
5021
5022 * regrename.c (scan_rtx_reg): Handle the case where we write to an
5023 open chain in a smaller mode without failing the entire block.
5024
3a769784
AM
50252011-06-21 Alan Modra <amodra@gmail.com>
5026
5027 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
5028 CONST high part large-toc address.
5029 (rs6000_tls_referenced_p): Make static.
5030 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
5031
c2954af9
RR
50322011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5033
5034 PR target/49385
5035 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
5036 one of the operands is a register.
5037
a95015b6
KT
50382011-06-20 Kai Tietz <ktietz@redhat.com>
5039
637c11bd
UB
5040 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
5041 operations in combination with binary and.
a95015b6 5042
49a30d00
BS
50432011-06-20 Bernd Schmidt <bernds@codesourcery.com>
5044
5045 * regrename.c (do_replace): Don't update notes.
5046
3bae1d98
AM
50472011-06-20 Alan Modra <amodra@gmail.com>
5048
5049 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
5050 of toc-relative address in CONST.
5051 (rs6000_delegitimize_address): Recognize changed address.
5052 (rs6000_legitimize_reload_address): Likewise.
5053 (rs6000_emit_move): Don't force these constants to memory.
5054 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
5055 toc-relative address in CONST.
5056 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
5057 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
5058
10937b0c
L
50592011-06-18 H.J. Lu <hongjiu.lu@intel.com>
5060
637c11bd 5061 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
10937b0c
L
5062 (count_trailing_zeros): Likewise.
5063
0c587260
L
50642011-06-18 H.J. Lu <hongjiu.lu@intel.com>
5065
5066 PR other/49325
5067 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
5068 .init_array can be used with .ctors on targets.
5069 * configure: Regenerated.
5070
c020c92b
EB
50712011-06-18 Eric Botcazou <ebotcazou@adacore.com>
5072
5073 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
5074 if the element type is volatile.
5075
cd35bcf7
JH
50762011-06-18 Jan Hubicka <jh@suse.cz>
5077
5078 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
5079 extra name aliases.
5080 (lto_symtab_resolve_can_prevail_p): Likewise.
5081 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
5082 * cgraphbuild.c (record_reference): Remove extra body alias code.
5083 (mark_load): Likewise.
5084 (mark_store): Likewise.
5085 * cgraph.h (varpool_node): Remove extra_name filed;
5086 add alias_of and extraname_alias.
5087 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
5088 (varpool_alias_aliased_node): New inline function.
5089 (varpool_variable_node): New function.
5090 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
5091 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
5092 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
5093 (input_varpool_node): Likewise.
5094 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
5095 (varpool_externally_visible_p): Remove extra body alias code.
5096 (function_and_variable_visibility): Likewise.
5097 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
5098 (ipa_pta_execute): Use it.
5099 * varpool.c (varpool_remove_node): Remove extra name alias code.
5100 (varpool_mark_needed_node): Likewise.
5101 (varpool_analyze_pending_decls): Analyze aliases.
5102 (assemble_aliases): New functoin.
5103 (varpool_assemble_decl): Use it.
5104 (varpool_create_variable_alias): New function.
5105 (varpool_extra_name_alias): Rewrite.
5106 (varpool_for_node_and_aliases): New function.
5107
c96b4102
JJ
51082011-06-18 Jakub Jelinek <jakub@redhat.com>
5109
5110 PR target/49411
5111 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
5112 last_arg_constant and last argument doesn't match its predicate,
5113 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
5114 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
5115 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
5116 spelling of error message.
5117 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
5118 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
5119 const_0_to_255_operand instead of const_int_operand.
5120
5121 Revert:
5122 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
5123
5124 * config/i386/sse.md (blendbits): Remove mode attribute.
5125 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
5126 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
5127 Check integer value of operand 3 in insn constraint.
5128
9a2091cd
HPN
51292011-06-17 Hans-Peter Nilsson <hp@axis.com>
5130
5131 PR rtl-optimization/48542
5132 * reload.c (find_equiv_reg): Stop looking when finding a
5133 setjmp-type call.
5134 * reload1.c (reload_as_needed): Invalidate all reload
5135 registers when crossing a setjmp-type call.
5136
361b51c0
JL
51372011-06-16 Jeff Law <law@redhat.com>
5138
5139 * tree-ssa-threadupdate.c (struct redirection_data): New field
5140 intermediate_edge.
5141 (THREAD_TARGET2): Define.
637c11bd 5142 (redirection_data_eq): Also check that the intermediate edge is equal.
361b51c0
JL
5143 (lookup_redirection_data): Drop useless argument. Extract the
5144 outgoing_edge and intermediate edge from E. Callers updated.
5145 (copy_phi_args, update_destination_phis): New functions.
5146 (fix_duplicate_block_edges): Likewise.
5147 (create_edge_and_update_destination_phis): Duplicate all the edges
5148 hung off e->aux. Use copy_phi_args.
5149 (create_duplicates): Use fix_duplicate_block_edges.
5150 (fixup_template_block): Likewise.
5151 (redirect_edges): If necessary, redirect the joiner block's incoming
5152 edge to the duplicate of the joiner block.
5153 (thread_block): Don't muck up loops when threading through a joiner
5154 block.
637c11bd 5155 (thread_through_loop_header): Handle threading through a joiner block.
361b51c0
JL
5156 (mark_threaded_blocks, register_jump_thread): Likewise.
5157 * tree-flow.h (register_jump_thread): Add new argument. Callers
5158 updated.
5159 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
5160 (thread_across_edge): Handle threading through a joiner block.
637c11bd 5161
ee460e75
MJ
51622011-06-16 Martin Jambor <mjambor@suse.cz>
5163
5164 PR tree-optimization/49343
5165 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
5166 calculate offset, provide 2nd operand for the new COMPONENT_REF.
5167
a285ba2e
IS
51682011-06-16 Iain Sandoe <iains@gcc.gnu.org>
5169
5170 * config/darwin-protos.h (machopic_select_rtx_section): Move to
5171 inside RTX_CODE ifdef.
5172
0703f020
TV
51732011-06-16 Tom de Vries <tom@codesourcery.com>
5174
5175 PR target/45098
637c11bd
UB
5176 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
5177 Disallow NULL pointer for pointer arithmetic.
0703f020 5178
900c07da
RR
51792011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5180
5181 PR target/49398
5182 Revert.
5183 2011-06-10 Wei Guozhi <carrot@google.com>
5184
5185 PR target/45335
5186 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5187 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5188 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5189 related peephole2.
5190 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5191 related peephole2.
5192 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5193 (arm_legitimate_ldrd_p): New prototype.
5194 (arm_output_ldrd): New prototype.
5195 * config/arm/arm.c (arm_check_ldrd_operands): New function.
5196 (arm_legitimate_ldrd_p): New function.
5197 (arm_output_ldrd): New function.
5198
c020c92b 51992011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
5200
5201 PR middle-end/46500
5202 * doc/tm.texi.in: Update Copyright date.
5203 * doc/tm.texi: Regenerate.
5204 * targhooks.c (default_setup_incoming_varargs): Replace
5205 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5206 (default_pretend_outgoing_varargs_named): Likewise.
5207 (hook_pass_by_reference_must_pass_in_stack): Likewise.
5208 (hook_callee_copies_named): Likewise.
5209 (default_function_arg_advance): Likewise.
5210 (default_function_arg): Likewise.
5211 (default_function_incoming_arg): Likewise.
5212 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5213 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5214 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5215 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5216 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5217 * targhooks.h (default_setup_incoming_varargs): Likewise.
5218 (default_pretend_outgoing_varargs_named): Likewise.
5219 (hook_pass_by_reference_must_pass_in_stack): Likewise.
5220 (hook_callee_copies_named): Likewise.
5221 (default_function_arg_advance): Likewise.
5222 (default_function_arg): Likewise.
5223 (default_function_incoming_arg): Likewise.
5224 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5225 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5226 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5227 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5228 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5229 * target.def (pass_by_reference): Likewise.
5230 (setup_incoming_varargs, strict_argument_naming): Likewise.
5231 (pretend_outgoing_varargs_named, callee_copies): Likewise.
5232 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
5233 (function_incoming_arg): Likewise.
5234 * target.h: Don't include "tm.h" .
5235 (cumulative_args_t): New typedef.
5236 [GCC_TM_H] (get_cumulative_args): New static inline function.
5237 [GCC_TM_H] (pack_cumulative_args): Likewise.
5238 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
5239 argument type with cumulative_args_t.
5240 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
5241 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
5242 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
5243 (frv_arg_partial_bytes, frv_function_arg): Likewise.
5244 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
5245 (frv_function_arg_1): Likewise.
5246 * config/s390/s390.c (s390_pass_by_reference): Likewise.
5247 (s390_function_arg_advance, s390_function_arg): Likewise.
5248 * config/m32c/m32c.c (m32c_function_arg): Likewise.
5249 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
5250 (m32c_strict_argument_naming): Likewise.
5251 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
5252 (spu_function_arg_advance): Likewise.
5253 (spu_setup_incoming_varargs): Likewise. Make static.
5254 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
5255 Remove prototype.
5256 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
5257 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5258 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
5259 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
5260 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
5261 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
5262 (mep_pass_by_reference, mep_function_arg): Likewise.
5263 (mep_function_arg_advance): Likewise.
5264 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
5265 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
5266 (m32r_function_arg, m32r_function_arg_advance): Likewise.
5267 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
5268 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
5269 (ix86_function_arg, ix86_pass_by_reference): Likewise.
5270 (ix86_setup_incoming_varargs): Likewise.
5271 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
5272 (sh_strict_argument_naming): Likewise.
5273 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
5274 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
5275 (sh_function_arg_advance, sh_function_arg): Likewise.
5276 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
5277 (pdp11_function_arg_advance): Likewise.
5278 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
5279 Likewise.
5280 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
5281 * config/avr/avr.c (avr_function_arg): Likewise.
5282 (avr_function_arg_advance): Likewise.
5283 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
5284 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
5285 (xtensa_function_arg_1): Likewise.
637c11bd
UB
5286 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
5287 Likewise.
d5cc9181
JR
5288 (xstormy16_function_arg): Likewise.
5289 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
5290 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
5291 (fr30_function_arg_advance): Likewise.
5292 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
5293 (lm32_function_arg, lm32_function_arg_advance): Likewise.
5294 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
5295 (moxie_function_arg, moxie_function_arg_advance): Likewise.
5296 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
5297 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
5298 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
5299 (cris_function_arg, cris_function_incoming_arg): Likewise.
5300 (cris_function_arg_advance, cris_function_arg_1): Likewise.
5301 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
5302 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
5303 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
5304 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
5305 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
5306 (mn10300_arg_partial_bytes): Likewise.
5307 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
5308 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
5309 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
5310 (ia64_function_arg_1): Likewise.
5311 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
5312 (m68k_function_arg): Likewise.
5313 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
5314 (rs6000_function_arg, setup_incoming_varargs): Likewise.
5315 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
5316 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
5317 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
5318 (picochip_arg_advance): Likewise.
5319 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
5320 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
5321 (mcore_function_arg_advance): Likewise.
5322 * config/score/score.c (score_pass_by_reference): Likewise.
5323 (score_function_arg_advance): Likewise.
5324 (score_arg_partial_bytes): Likewise. Make static.
5325 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
5326 * config/arm/arm.c (arm_arg_partial_bytes): Replace
5327 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5328 (arm_function_arg, arm_function_arg_advance): Likewise.
5329 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
5330 * config/pa/pa.c (pa_pass_by_reference): Likewise.
5331 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
5332 (pa_function_arg): Likewise.
5333 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
5334 (mips_function_arg, mips_function_arg_advance): Likewise.
5335 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
5336 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
5337 * config/vax/vax.c (vax_function_arg): Likewise.
5338 (vax_function_arg_advance): Likewise.
5339 * config/h8300/h8300.c (h8300_function_arg): Likewise.
5340 (h8300_function_arg_advance): Likewise.
5341 * config/v850/v850.c (v850_pass_by_reference): Likewise.
5342 (v850_strict_argument_naming, v850_function_arg): Likewise.
5343 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
5344 (v850_setup_incoming_varargs): Likewise.
5345 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
5346 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
5347 (mmix_function_arg, mmix_pass_by_reference): Likewise.
5348 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
5349 with const void *.
5350 * config/bfin/bfin.c (setup_incoming_varargs): Replace
5351 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5352 (bfin_function_arg_advance, bfin_function_arg): Likewise.
5353 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
5354 * calls.c (emit_call_1): Change type of args_so_far to
5355 cumulative_args_t. Changed all callers.
5356 (initialize_argument_information): Likewise.
5357 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
5358 * dse.c (get_call_args): Likewise.
5359 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
5360 * function.c (pass_by_reference, reference_callee_copied): Likewise.
5361 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
5362 New member args_so_far_v. Changed all users.
5363 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
5364 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
5365 * config/mips/mips.c (mips_output_args_xfer): Likewise.
5366 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
5367 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
637c11bd
UB
5368 * config/microblaze/microblaze.c (microblaze_expand_prologue):
5369 Likewise.
d5cc9181
JR
5370 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
5371 m32r_pass_by_reference.
5372
51312233
IR
53732011-06-16 Ira Rosen <ira.rosen@linaro.org>
5374
5375 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
5376 argument to be a VEC of statements.
637c11bd
UB
5377 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
5378 assert that pattern statements have to have their vector type set.
51312233
IR
5379 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
5380 Change the first argument to be a VEC of statements. Update
5381 documentation.
5382 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
5383 (vect_handle_widen_mult_by_const): New function.
637c11bd
UB
5384 (vect_recog_widen_mult_pattern): Change the first argument to be a
5385 VEC of statements. Update documentation. Check that the constant is
5386 INTEGER_CST. Support multiplication by a constant that fits an
5387 intermediate type - call vect_handle_widen_mult_by_const.
51312233
IR
5388 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
5389 call. Handle additional pattern statements if necessary.
5390
fd4df33d
NC
53912011-06-16 Nick Clifton <nickc@redhat.com>
5392
5393 PR target/49427
5394 * config.gcc: Set cpu_type to v850 for any V850 architecture.
5395 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
5396 md_file, extra_modes, out_file and extra_options are these are all
5397 deduced from cpu_type.
5398
fbd05da0
GJL
53992011-06-16 Georg-Johann Lay <avr@gjlay.de>
5400
5401 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
5402 truncation mask to 63.
5403
0ad8bb3b
GJL
54042011-06-16 Georg-Johann Lay <avr@gjlay.de>
5405
5406 PR target/49313
5407 PR target/29524
5408 * longlong.h: Add AVR support:
5409 (count_leading_zeros): New macro.
5410 (count_trailing_zeros): New macro.
5411 (COUNT_LEADING_ZEROS_0): New macro.
637c11bd
UB
5412 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
5413 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
5414 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
5415 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
0ad8bb3b
GJL
5416 (LIB2FUNCS_EXCLUDE): Add _clz.
5417 * config/avr/libgcc.S (XCALL): Move up in file.
5418 (XJMP): New C Macro.
5419 (DEFUN): New asm macro.
5420 (ENDF): New asm macro.
5421 (__ffssi2): New function.
5422 (__ffshi2): New function.
5423 (__loop_ffsqi2): New function.
5424 (__ctzsi2): New function.
5425 (__ctzhi2): New function.
5426 (__clzdi2): New function.
5427 (__clzsi2): New function.
5428 (__clzhi2): New function.
5429 (__paritydi2): New function.
5430 (__paritysi2): New function.
5431 (__parityhi2): New function.
59c1e10b 5432 (__parityqi2): New function.
0ad8bb3b
GJL
5433 (__popcounthi2): New function.
5434 (__popcountsi2): New function.
5435 (__popcountdi2): New function.
5436 (__popcountqi2): New function.
5437 (__bswapsi2): New function.
5438 (__bswapdi2): New function.
5439 (__ashldi3): New function.
5440 (__ashrdi3): New function.
5441 (__lshrdi3): New function.
5442 Fix suspicous lines.
5443
12430896
RG
54442011-06-16 Richard Guenther <rguenther@suse.de>
5445
5446 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
5447 the same as x != 0.
637c11bd
UB
5448 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
5449 to (bool) X & 1.
12430896
RG
5450 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
5451 equality compares against zero for the lower bit.
5452
09302442
JJ
54532011-06-16 Jakub Jelinek <jakub@redhat.com>
5454
5455 PR tree-optimization/49419
5456 * tree-vrp.c (execute_vrp): Call init_range_assertions
5457 before estimate_numbers_of_iterations, call
5458 free_number_of_iterations_estimates before calling
5459 remove_range_assertions.
5460
81c41166
RE
54612011-06-16 Revital Eres <revital.eres@linaro.org>
5462
5463 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
5464 (struct partial_schedule): Add rows_length field.
5465 (verify_partial_schedule): Check rows_length.
5466 (ps_insert_empty_row): Handle rows_length.
5467 (create_partial_schedule): Likewise.
5468 (free_partial_schedule): Likewise.
5469 (reset_partial_schedule): Likewise.
5470 (create_ps_insn): Remove rest_count argument.
5471 (remove_node_from_ps): Update rows_length.
5472 (add_node_to_ps): Update rows_length and call create_ps_insn
5473 without passing row_rest_count.
5474 (rotate_partial_schedule): Update rows_length.
5475
d24dc7b3
RE
54762011-06-16 Revital Eres <revital.eres@linaro.org>
5477
5478 * ddg.c (add_intra_loop_mem_dep): New function.
5479 (build_intra_loop_deps): Call it.
5480
361b51c0 54812011-06-13 Jeff Law <law@redhat.com>
2098e438
JL
5482
5483 * df-problems.c (df_lr_local_compute): Manually CSE
5484 PIC_OFFSET_TABLE_REGNUM.
5485 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
5486 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
5487
85ce9375
JH
54882011-06-13 Jan Hubicka <jh@suse.cz>
5489
5490 * cgraphunit.c (handle_alias_pairs): New function.
5491 (cgraph_finalize_compilation_unit): Use it.
5492 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
5493 as externally visible.
5494
a577c405
RG
54952011-06-15 Richard Guenther <rguenther@suse.de>
5496
5497 * expr.c (expand_expr_real_2): Reduce all integral types to
5498 bitfield precision.
5499 (expand_expr_real_1): Likewise.
5500
93536c97
MJ
55012011-06-15 Martin Jambor <mjambor@suse.cz>
5502
5503 PR tree-optimization/48613
5504 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
5505 ipa_node_params_vector is NULL.
fd4df33d 5506
ba45cfc4
JJ
55072011-06-15 Jakub Jelinek <jakub@redhat.com>
5508
5509 PR debug/49382
5510 * dwarf2out.c (dw_loc_list_node): Add force field.
637c11bd
UB
5511 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
5512 location in the list, even if it is modified before first real insn.
ba45cfc4 5513 (output_loc_list): Emit empty ranges with force flag set.
637c11bd 5514 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
ba45cfc4 5515
6fc5966f
AM
55162011-06-15 Alexander Monakov <amonakov@ispras.ru>
5517
5518 PR target/49349
5519 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
5520 (fence_to_rewind). Use it to notice when bookkeeping will be placed
5521 above a fence. Update comments.
5522 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
5523 placed just above it. Do not allow NULL place_to_insert.
5524
9d5e7640
IR
55252011-06-15 Ira Rosen <ira.rosen@linaro.org>
5526
5527 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
5528 (slpeel_tree_peel_loop_to_edge): Don't call
5529 remove_dead_stmts_from_loop.
5530 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
5531 remove irrelevant pattern statements. For irrelevant statements
5532 check if it is the last statement of a detected pattern, use
5533 corresponding pattern statement instead.
5534 (destroy_loop_vec_info): No need to remove pattern statements,
5535 only free stmt_vec_info.
5536 (vect_transform_loop): For irrelevant statements check if it is
5537 the last statement of a detected pattern, use corresponding
5538 pattern statement instead.
5539 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
5540 pattern statements. Set basic block for the new statement.
5541 (vect_pattern_recog): Update documentation.
5542 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
5543 operands of pattern statements.
5544 (vectorizable_call): Fix printing. In case of a pattern statement
5545 use the lhs of the original statement when creating a dummy
5546 statement to replace the original call.
5547 (vect_analyze_stmt): For irrelevant statements check if it is
5548 the last statement of a detected pattern, use corresponding
5549 pattern statement instead.
5550 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
5551 statements use gsi of the original statement.
5552
677f3fa8
JM
55532011-06-14 Joseph Myers <joseph@codesourcery.com>
5554
5555 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
5556 common/common-target-def.h.
5557 * target.def (default_target_flags, handle_option,
5558 supports_split_stack, optimization_table, init_struct,
5559 except_unwind_info, unwind_tables_default, have_named_sections):
5560 Move to common/common-target.def.
5561 * target.h (enum opt_levels, struct default_options): Move to
5562 common/common-target.h.
5563 * targhooks.c (default_except_unwind_info,
5564 dwarf2_except_unwind_info, sjlj_except_unwind_info,
5565 default_target_handle_option, empty_optimization_table): Move to
5566 common/common-targhooks.c.
5567 * targhooks.h (default_except_unwind_info,
5568 dwarf2_except_unwind_info, sjlj_except_unwind_info,
5569 default_target_handle_option, empty_optimization_table): Move to
5570 common/common-targhooks.h.
5571 * common/common-target-def.h: Include common/common-targhooks.h.
5572 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
5573 defined.
5574 * common/common-target.def (handle_option, option_init_struct,
5575 option_optimization_table, default_target_flags,
5576 except_unwind_info, supports_split_stack, unwind_tables_default,
5577 have_named_sections): Move from target.def.
5578 (HOOK_PREFIX): Undefine at end of file.
5579 * common/common-target.h: Include input.h.
5580 (enum opt_levels, struct default_options): Move from target.h.
5581 * common/common-targhooks.c, common/common-targhooks.h: New.
5582 * config.gcc (target_has_targetm_common): Default to yes.
5583 (moxie*): Set target_has_targetm_common=no.
5584 (hppa*-*-*): Don't set target_has_targetm_common=yes.
5585 * doc/tm.texi: Regenerate.
5586 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
5587 (C_TARGET_DEF_H): Add common/common-targhooks.h.
5588 (GCC_OBJS): Remove vec.o.
5589 (OBJS): Remove hooks.o and vec.o.
5590 (OBJS-libcommon-target): Add vec.o, hooks.o and
5591 common/common-targhooks.o.
5592 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
5593 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
5594 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
5595 cfglayout.o, $(out_object_file), $(common_out_object_file)):
5596 Update dependencies.
5597 (common/common-targhooks.o): New.
637c11bd 5598 * common/config/default-common.c: Include tm.h. Add FIXME comment.
677f3fa8
JM
5599 * common/config/pa/pa-common.c: Include more headers. Take
5600 copyright dates from pa.c.
5601 (pa_option_optimization_table, pa_handle_option,
5602 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
5603 TARGET_HANDLE_OPTION): Move from pa.c.
5604 * common/config/alpha/alpha-common.c,
5605 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
5606 common/config/bfin/bfin-common.c,
5607 common/config/cris/cris-common.c,
5608 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
5609 common/config/h8300/h8300-common.c,
5610 common/config/i386/i386-common.c,
5611 common/config/ia64/ia64-common.c,
5612 common/config/iq2000/iq2000-common.c,
5613 common/config/lm32/lm32-common.c,
5614 common/config/m32c/m32c-common.c,
5615 common/config/m32r/m32r-common.c,
5616 common/config/m68k/m68k-common.c,
5617 common/config/mcore/mcore-common.c,
5618 common/config/mep/mep-common.c,
5619 common/config/microblaze/microblaze-common.c,
5620 common/config/mips/mips-common.c,
5621 common/config/mmix/mmix-common.c,
5622 common/config/mn10300/mn10300-common.c,
5623 common/config/pdp11/pdp11-common.c,
5624 common/config/picochip/picochip-common.c,
5625 common/config/rs6000/rs6000-common.c,
5626 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
5627 common/config/score/score-common.c, common/config/sh/sh-common.c,
5628 common/config/sparc/sparc-common.c,
5629 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
5630 common/config/vax/vax-common.c,
5631 common/config/xstormy16/xstormy16-common.c,
5632 common/config/xtensa/xtensa-common.c: New.
5633 * config/alpha/alpha.c: Include common/common-target.h.
5634 (alpha_option_optimization_table, alpha_handle_option,
5635 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5636 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
5637 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
5638 * config/arm/arm.c (arm_option_optimization_table,
5639 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5640 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
5641 arm-common.c.
5642 * config/avr/avr.c (avr_option_optimization_table,
5643 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5644 to avr-common.c.
5645 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
5646 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
5647 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
5648 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
5649 * config/cris/cris.c (cris_option_optimization_table,
5650 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5651 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
5652 cris-common.c.
5653 * config/fr30/fr30.c (fr30_option_optimization_table,
5654 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
5655 to fr30-common.c.
5656 * config/frv/frv.c (frv_option_optimization_table,
5657 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
5658 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
5659 * config/h8300/h8300.c (h8300_option_optimization_table,
5660 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5661 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
5662 * config/i386/i386-protos.h (ix86_handle_option): Declare.
5663 * config/i386/i386.c: Include common/common-target.h.
5664 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
5665 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
5666 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
5667 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
5668 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
5669 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
5670 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
5671 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
5672 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
5673 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
5674 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
5675 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
5676 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
5677 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
5678 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
5679 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
5680 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
5681 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
5682 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
5683 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
5684 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
5685 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
5686 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
5687 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
5688 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
5689 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
5690 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
5691 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
5692 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
5693 ix86_option_optimization_table, ix86_option_init_struct,
5694 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
5695 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5696 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
5697 i386-common.c.
5698 * config/i386/t-i386 (i386.o): Update dependencies.
5699 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
5700 * config/ia64/ia64.c (ia64_option_optimization_table,
5701 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5702 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5703 ia64_handle_option): Move to ia64-common.c.
5704 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
5705 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
5706 * config/lm32/lm32.c (lm32_option_optimization_table,
5707 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5708 to lm32-common.c.
5709 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
5710 m32c-common.c.
5711 * config/m32r/m32r.c (m32r_option_optimization_table,
5712 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5713 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5714 m32r_handle_option): Move to m32r-common.c.
5715 (m32r_memory_move_cost): Remove comment referring to
5716 TARGET_HANDLE_OPTION.
5717 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
5718 Move to m68k-common.c.
5719 * config/mcore/mcore.c (mcore_option_optimization_table,
5720 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5721 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
5722 * config/mep/mep.c (mep_option_optimization_table,
5723 mep_handle_option, TARGET_HANDLE_OPTION,
5724 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
5725 Move to mep-common.c.
5726 * config/microblaze/microblaze.c
5727 (microblaze_option_optimization_table,
5728 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5729 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
5730 * config/mips/mips.c (mips_handle_option,
5731 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5732 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
5733 mips-common.c.
5734 * config/mmix/mmix.c (mmix_option_optimization_table,
5735 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5736 Move to mmix-common.c.
5737 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5738 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
5739 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5740 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
5741 * config/pa/pa.c: Include common/common-target.h.
5742 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5743 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5744 pa_handle_option): Move to pa-common.c.
5745 (pa_option_override): Use targetm_common.except_unwind_info.
5746 (pa_asm_output_mi_thunk, pa_function_section): Use
5747 targetm_common.have_named_sections.
5748 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
5749 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5750 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5751 pdp11_handle_option, pdp11_option_init_struct): Move to
5752 pdp11-common.c.
5753 * config/picochip/picochip.c (picochip_option_optimization_table,
5754 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
5755 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
5756 * config/rs6000/rs6000.c: Include common/common-target.h.
5757 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
5758 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
5759 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
5760 rs6000_handle_option): Move to rs6000-common.c.
5761 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
5762 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
5763 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5764 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
5765 * config/s390/s390.c (processor_flags_table,
5766 s390_option_optimization_table, s390_option_init_struct,
5767 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
5768 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5769 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
5770 * config/s390/s390.h (processor_flags_table): Declare.
5771 * config/score/score.c (score_option_optimization_table,
5772 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5773 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
5774 score_handle_option): Move to score-common.c.
5775 * config/sh/sh.c (sh_option_optimization_table,
5776 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5777 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5778 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
5779 * config/sparc/sparc.c: Include common/common-target.h.
5780 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5781 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
5782 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
5783 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
5784 spu_option_init_struct): Move to spu-common.c.
5785 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
5786 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
5787 * config/v850/v850.c (small_memory_physical_max,
5788 v850_handle_memory_optionn v850_handle_option,
5789 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5790 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
5791 v850-common.c.
637c11bd 5792 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
677f3fa8
JM
5793 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
5794 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5795 Move to xtensa-common.c.
5796 * cfglayout.c: Include common/common-target.h.
5797 (fixup_reorder_chain): Use targetm_common.have_named_sections.
5798 * cfgrtl.c: Include common/common-target.h.
5799 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
5800 targetm_common.have_named_sections.
5801 * dbxout.c: Include common/common-target.h.
5802 (dbxout_function_end): Use targetm_common.have_named_sections.
5803 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
5804 targetm_common.except_unwind_info.
5805 * dwarf2out.c: Include common/common-target.h.
5806 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
5807 dwarf2out_begin_prologue, dwarf2out_frame_init,
5808 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
5809 targetm_common.except_unwind_info.
5810 * except.c: Include common/common-target.h.
5811 (init_eh, finish_eh_generation,
5812 output_one_function_exception_table): Use
5813 targetm_common.except_unwind_info.
637c11bd 5814 (switch_to_exception_section): Use targetm_common.have_named_sections.
677f3fa8
JM
5815 * explow.c: Include common/common-target.h.
5816 * expr.c: Include common/common-target.h.
637c11bd 5817 (build_personality_function): Use targetm_common.except_unwind_info.
677f3fa8
JM
5818 * function.c: Include common/common-target.h.
5819 (expand_function_end): Use targetm_common.except_unwind_info.
5820 * haifa-sched.c: Include common/common-target.h.
637c11bd 5821 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
677f3fa8
JM
5822 * lto-opts.c: Include common/common-target.h instead of target.h.
5823 (lto_reissue_options): Use targetm_common.handle_option.
5824 * opts.c: Include common/common-target.h.
5825 (target_handle_option): Use targetm_common.handle_option.
5826 (init_options_struct): Update comment referring to
5827 targetm.target_option.optimization. Use
5828 targetm_common.default_target_flags,
5829 targetm_common.unwind_tables_default and
5830 targetm_common.option_init_struct.
5831 (default_options_optimization): Use
5832 targetm_common.option_optimization_table.
5833 (finish_options): Use targetm_common.except_unwind_info,
5834 targetm_common.unwind_tables_default,
5835 targetm_common.have_named_sections and
5836 targetm_common.supports_split_stack.
5837 * toplev.c: Include common/common-target.h.
5838 (process_options): Use targetm_common.have_named_sections.
5839 * tree-tailcall.c: Include common/common-target.h.
637c11bd 5840 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
677f3fa8 5841 * tree.c: Include common/common-target.h.
637c11bd 5842 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
677f3fa8
JM
5843 * varasm.c: Include common/common-target.h.
5844 (resolve_unique_section, hot_function_section,
5845 default_function_section): Use targetm_common.have_named_sections.
5846
d26c7090
ER
58472011-06-14 Easwaran Raman <eraman@google.com>
5848
5849 PR rtl-optimization/44194
5850 * dse.c: Include tree-flow.h
5851 (insn_info): Add new field non_frame_wild_read.
5852 (group_info): Add new fields escaped_n and escaped_p.
5853 (kill_on_calls): New variable.
5854 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
5855 (dse_step0): Initialize kill_on_calls.
5856 (can_escape): New function.
5857 (set_usage_bits): Add additional parameter; record information
5858 about escaped locations.
637c11bd 5859 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
d26c7090
ER
5860 (dse_step2_nospill): Set kill_on_calls based on
5861 group->escaped_n and group->escaped_n.
5862 (add_wild_read): Refactor into...
5863 (reset_active_stores): ... New function, and
5864 (free_read_records): ... New function.
5865 (add_non_frame_wild_read): New function.
5866 (scan_insn): Call add_non_frame_wild_read on non-const calls.
637c11bd 5867 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
d26c7090
ER
5868 (dse_step5_nospill): Call scan_reads_nospill for instructions
5869 marked as non_frame_wild_read.
637c11bd 5870 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
d26c7090 5871
c49a6962
JM
58722011-06-14 Joseph Myers <joseph@codesourcery.com>
5873
5874 * common/common-target-def.h, common/common-target.def,
5875 common/common-target.h, common/config/default-common.c,
5876 common/config/pa/pa-common.c: New files.
5877 * Makefile.in (common_out_file, common_out_object_file,
5878 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
5879 (OBJS-libcommon-target): Include $(common_out_object_file).
5880 (prefix.o): Update dependencies.
5881 ($(common_out_object_file), common/common-target-hooks-def.h,
5882 s-common-target-hooks-def-h): New.
5883 (s-tm-texi): Also check timestamp on common-target.def.
5884 (build/genhooks.o): Update dependencies.
5885 * config.gcc (common_out_file, target_has_targetm_common): Define.
5886 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
5887 TARGET_ALWAYS_STRIP_DOTDOT.
5888 * configure.ac (common_out_object_file): Define.
5889 (common_out_file, common_out_object_file): Substitute.
5890 (common): Create directory.
5891 * configure: Regenerate.
5892 * doc/tm.texi.in (targetm_common): Document.
5893 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
5894 * doc/tm.texi: Regenerate.
5895 * genhooks.c (hook_array): Also include common/common-target.def.
5896 * prefix.c (tm.h): Don't include.
5897 (common/common-target.h): Include.
5898 (ALWAYS_STRIP_DOTDOT): Don't define.
5899 (update_path): Use targetm_common.always_strip_dotdot instead of
5900 ALWAYS_STRIP_DOTDOT.
5901 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
5902
22c5fa5f
DL
59032011-06-14 David Li <davidxl@google.com>
5904
5905 * passes.c (execute_function_todo): Remove TODO_dump_func.
5906 (execute_one_pass): Remove TODO_dump_func.
5907 (execute_function_dump): New function.
5908 * tree-vrp.c: Remove TODO_dump_func.
5909 * regrename.c: Remove TODO_dump_func.
5910 * fwprop.c: Remove TODO_dump_func.
5911 * tree-into-ssa.c: Remove TODO_dump_func.
5912 * tree-complex.c: Remove TODO_dump_func.
5913 * tracer.c: Remove TODO_dump_func.
5914 * tree-loop-distribution.c: Remove TODO_dump_func.
5915 * postreload-gcse.c: Remove TODO_dump_func.
5916 * postreload.c: Remove TODO_dump_func.
5917 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
5918 * tree-tailcall.c: Remove TODO_dump_func.
5919 * ipa-cp.c: Remove TODO_dump_func.
5920 * final.c: Remove TODO_dump_func.
5921 * tree-emutls.c: Remove TODO_dump_func.
5922 * omp-low.c: Remove TODO_dump_func.
5923 * tree-ssa-dse.c: Remove TODO_dump_func.
5924 * tree-ssa-uncprop.c: Remove TODO_dump_func.
5925 * auto-inc-dec.c: Remove TODO_dump_func.
5926 * reorg.c: Remove TODO_dump_func.
5927 * tree-ssa-copyrename.c: Remove TODO_dump_func.
5928 * tree-ssa-ccp.c: Remove TODO_dump_func.
5929 * compare-elim.c: Remove TODO_dump_func.
5930 * mode-switching.c: Remove TODO_dump_func.
5931 * modulo-sched.c: Remove TODO_dump_func.
5932 * tree-call-cdce.c: Remove TODO_dump_func.
5933 * cse.c: Remove TODO_dump_func.
5934 * web.c: Remove TODO_dump_func.
5935 * tree-stdarg.c: Remove TODO_dump_func.
5936 * lto-streamer-out.c: Remove TODO_dump_func.
5937 * tree-ssa-math-opts.c: Remove TODO_dump_func.
5938 * tree-ssa-dom.c: Remove TODO_dump_func.
5939 * tree-nrv.c: Remove TODO_dump_func.
5940 * loop-init.c: Remove TODO_dump_func.
5941 * gimple-low.c: Remove TODO_dump_func.
5942 * ipa-inline.c: Remove TODO_dump_func.
5943 * tree-ssa-sink.c: Remove TODO_dump_func.
5944 * jump.c: Remove TODO_dump_func.
5945 * ifcvt.c: Remove TODO_dump_func.
5946 * tree-ssa-loop.c: Remove TODO_dump_func.
5947 * recog.c: Remove TODO_dump_func.
5948 * dse.c: Remove TODO_dump_func.
5949 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
5950 * matrix-reorg.c: Remove TODO_dump_func.
5951 * tree-eh.c: Remove TODO_dump_func.
5952 * regmove.c: Remove TODO_dump_func.
5953 * function.c: Remove TODO_dump_func.
5954 * tree-vectorizer.c: Remove TODO_dump_func.
5955 * ipa-split.c: Remove TODO_dump_func.
5956 * gcse.c: Remove TODO_dump_func.
5957 * tree-if-conv.c: Remove TODO_dump_func.
5958 * init-regs.c: Remove TODO_dump_func.
5959 * tree-ssa-phiopt.c: Remove TODO_dump_func.
5960 * implicit-zee.c: Remove TODO_dump_func.
5961 * lower-subreg.c: Remove TODO_dump_func.
5962 * bt-load.c: Remove TODO_dump_func.
5963 * tree-dfa.c: Remove TODO_dump_func.
5964 * except.c: Remove TODO_dump_func.
5965 * emit-rtl.c: Remove TODO_dump_func.
5966 * store-motion.c: Remove TODO_dump_func.
5967 * cfgexpand.c: Remove TODO_dump_func.
5968 * tree-cfgcleanup.c: Remove TODO_dump_func.
5969 * cfgcleanup.c: Remove TODO_dump_func.
5970 * tree-ssa-pre.c: Remove TODO_dump_func.
5971 * tree-sra.c: Remove TODO_dump_func.
5972 * tree-mudflap.c: Remove TODO_dump_func.
5973 * tree-ssa-copy.c: Remove TODO_dump_func.
5974 * cfglayout.c: Remove TODO_dump_func.
5975 * tree-ssa-forwprop.c: Remove TODO_dump_func.
5976 * tree-ssa-dce.c: Remove TODO_dump_func.
5977 * ira.c: Remove TODO_dump_func.
5978 * tree-ssa.c: Remove TODO_dump_func.
5979 * integrate.c: Remove TODO_dump_func.
5980 * tree-optimize.c: Remove TODO_dump_func.
5981 * tree-ssa-phiprop.c: Remove TODO_dump_func.
5982 * tree-object-size.c: Remove TODO_dump_func.
5983 * combine.c: Remove TODO_dump_func.
5984 * bb-reorder.c: Remove TODO_dump_func.
5985 * cprop.c: Remove TODO_dump_func.
5986 * var-tracking.c: Remove TODO_dump_func.
5987 * tree-profile.c: Remove TODO_dump_func.
5988 * tree-vect-generic.c: Remove TODO_dump_func.
5989 * reg-stack.c: Remove TODO_dump_func.
5990 * sched-rgn.c: Remove TODO_dump_func.
5991 * tree-ssa-structalias.c: Remove TODO_dump_func.
5992 * tree-switch-conversion.c: Remove TODO_dump_func.
5993 * tree-cfg.c: Remove TODO_dump_func.
5994 * tree-ssa-reassoc.c: Remove TODO_dump_func.
5995 * combine-stack-adj.c: Remove TODO_dump_func.
5996 * dce.c: Remove TODO_dump_func.
5997 * tree-ssanames.c: Remove TODO_dump_func.
5998 * regcprop.c: Remove TODO_dump_func.
5999
fa465762
L
60002011-06-14 H.J. Lu <hongjiu.lu@intel.com>
6001
6002 PR middle-end/47364
6003 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
6004 and properly handle result not in Pmode.
6005
7d8d16c3
RM
60062011-06-14 Robert Millan <rmh@gnu.org>
6007
6008 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
6009 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
6010 `config/linux.h'.
6011
6012 * config/i386/kfreebsd-gnu64.h: New file.
6013 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
6014 with `i386/kfreebsd-gnu64.h'.
6015
6016 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
6017 (GNU_USER_LINK_EMULATION64): New macros.
6018 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
6019 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
6020 of hardcoding `elf_i386' and `elf_x86_64'.
6021
0ccef3d2
NC
60222011-06-14 Nick Clifton <nickc@redhat.com>
6023
6024 PR target/49403
6025 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
6026
6027 PR target/49402
6028 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
6029
8a76c4a0
JJ
60302011-06-14 Jakub Jelinek <jakub@redhat.com>
6031
1ace6185
JJ
6032 PR fortran/49103
6033 * tree.h (DECL_NONSHAREABLE): Define.
6034 (struct tree_decl_common): Change decl_common_unused to
6035 decl_nonshareable_flag.
6036 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
6037 Ignore vars with DECL_NONSHAREABLE bit set.
6038 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
6039 on stores to automatic aggregate vars.
6040
8a76c4a0
JJ
6041 PR rtl-optimization/49390
6042 Revert:
6043 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
6044
6045 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
6046 MEM_ALIAS_SET.
6047
b4a9343c
ZD
60482011-06-14 Zdenek Dvorak <ook@ucw.cz>
6049 Tom de Vries <tom@codesourcery.com>
6050
6051 PR target/45098
6052 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
6053 Document changed semantics.
6054 (max_stmt_executions, max_stmt_executions_int): Declare.
6055 * tree-data-ref.c (estimated_loop_iterations)
6056 (estimated_loop_iterations_int): Move functions...
6057 * tree-ssa-loop-niter.c (estimated_loop_iterations)
6058 (estimated_loop_iterations_int): here.
6059 (record_estimate): Change nb_iterations_upper_bound and
6060 nb_iterations_estimate semantics.
6061 (max_stmt_executions, max_stmt_executions_int): New function.
6062 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
6063 (max_stmt_executions_tree): this.
6064 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
6065 estimated_loop_iterations_tree.
6066 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
6067 max_stmt_executions_int instead of estimated_loop_iterations_int.
6068 * predict.c (predict_loops): Idem.
6069 * tree-parloops.c (parallelize_loops): Idem.
6070 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
6071 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
6072 (init_omega_for_ddr_1): Idem.
6073 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
6074 (loop_prefetch_arrays): Idem
6075 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
6076 max_stmt_executions instead of estimated_loop_iterations.
6077 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
6078 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
6079 instead of nb_iterations_upper_bound.
6080
d2640c43
JH
60812011-06-13 Jan Hubicka <jh@suse.cz>
6082
6083 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
6084
40873cdd
RH
60852011-06-14 Richard Henderson <rth@redhat.com>
6086
6087 PR debug/48459
6088 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
6089 (based_loc_descr): Assert it's true.
6090 (compute_frame_pointer_to_fb_displacement): Set it, rather than
6091 aborting immediately.
6092
73e8cb24
SL
60932011-06-14 Sanjin Liu <scliu@faraday-tech.com>
6094 Mingfeng Wu <mingfeng@faraday-tech.com>
6095
6096 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
6097
f835f0a7
JH
60982011-06-13 Jan Hubicka <jh@suse.cz>
6099
6100 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
6101
ee6f1177
JH
61022011-06-13 Jan Hubicka <jh@suse.cz>
6103
6104 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
6105 similarly to DECL_COMDAT.
6106 * cgraphunit.c (cgraph_analyze_function): Likewise.
6107 * ipa.c (function_and_variable_visibility): Likewise.
6108
618abf9a
JH
61092011-06-13 Jan Hubicka <jh@suse.cz>
6110
6111 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
6112 BINFO_VIRTUALS when streaming for ltrans unit.
6113
a45fe02f
DE
61142011-06-13 David Edelsohn <dje.gcc@gmail.com>
6115
6116 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
6117 (movdi_internal64): Same.
6118
61192011-06-13 Edmar Wienskoski <edmar@freescale.com>
6120
e641e495 6121 PR target/44618
7d8d16c3
RM
6122 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
6123 a set of similar patterns, where the MATCH_OPERAND for the function
6124 argument is replaced with individual references to hardware registers.
a45fe02f
DE
6125 (save_fpregs_<mode>): Ditto
6126 (restore_gpregs_<mode>): Ditto
6127 (return_and_restore_gpregs_<mode>): Ditto
6128 (return_and_restore_fpregs_<mode>): Ditto
6129 (return_and_restore_fpregs_aix_<mode>): Ditto
6130
8775a18b
JH
61312011-06-13 Jan Hubicka <jh@suse.cz>
6132
6133 * ipa-utils.c (postorder_stack): New structure.
6134 (ipa_reverse_postorder): Handle aliases.
6135
61362011-06-13 Jan Hubicka <jh@suse.cz>
6137
6138 * ipa-inline.c (reset_edge_caches): Walk aliases.
6139 (update_caller_keys): Do not test inlinability of aliases.
6140 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
6141 (do_estimate_growth): Fix typo.
6142
6c69a029
JH
61432011-06-13 Jan Hubicka <jh@suse.cz>
6144
6145 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
6146 (can_remove_node_now_p): ... here; handle same comdat groups.
6147 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
6148 (inline_call): Update use of can_remove_node_now_p.
6149
10c63ba4 61502011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
495f8c14 6151
10c63ba4 6152 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
495f8c14
KP
6153 condition to disallow non-identical memory locations.
6154 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
6155 preference to bit manipulation instructions.
495f8c14 6156
9aa3f5c5
JH
61572011-06-13 Jan Hubicka <jh@suse.cz>
6158
6159 * cgraph.c (cgraph_for_node_thunks_and_aliases,
6160 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
6161 (nonremovable_p): New function.
6162 (cgraph_can_remove_if_no_direct_calls_p): New function.
6163 (used_from_object_file_p): New functoin.
10c63ba4
EB
6164 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
6165 references from aliases.
9aa3f5c5
JH
6166 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
6167 * ipa-inline.c (check_caller_edge): New function.
10c63ba4
EB
6168 (want_inline_function_called_once_p): Use it; accept aliases called
6169 once, too.
9aa3f5c5
JH
6170 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
6171
30cecf17
RR
61722011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6173
6174 PR target/48454
6175 * config/arm/neon.md (vec_pack_trunc): Set the lengths
6176 correctly for the case with Quad vectors.
6177
29f85237
JJ
61782011-06-13 Jakub Jelinek <jakub@redhat.com>
6179 Ira Rosen <ira.rosen@linaro.org>
6180
6181 PR tree-optimization/49352
6182 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
6183 all, make sure loop_use_stmt after the loop is a def stmt of a used
6184 SSA_NAME that is the only one defined inside of the loop. Don't
6185 check for COND_EXPR and GIMPLE_BINARY_RHS.
6186 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
6187 check_reduction is true.
6188
c3e3f090
JH
61892011-06-11 Jan Hubicka <jh@suse.cz>
6190
6191 PR middle-end/49373
6192 * ipa.c (cgraph_externally_visible_p): Check resolution info.
6193
516e0768
JH
61942011-06-11 Jan Hubicka <jh@suse.cz>
6195
6196 PR middle-end/48836
6197 * ipa-inline-transform.c: Include tree-pass.h
6198 (inline_transform): Set TODO_update_ssa_only_virtuals.
6199 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
6200
903b0a8b
JH
62012011-06-11 Jan Hubicka <jh@suse.cz>
6202
6203 PR middle-end/49378
6204 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
6205 aliases and thunks.
6206
44542f8e
IR
62072011-06-12 Ira Rosen <ira.rosen@linaro.org>
6208
6209 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
6210 Take number of iterations to peel into account for equally frequent
6211 misalignment values.
6212
ea89702b
JH
62132011-06-11 Jan Hubicka <jh@suse.cz>
6214
637c11bd
UB
6215 * lto-streamer-out.c (produce_symtab): Stream out the newly
6216 represented aliases.
ea89702b 6217
380ed5ed
JH
62182011-06-11 Jan Hubicka <jh@suse.cz>
6219
637c11bd
UB
6220 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
6221 varying args.
380ed5ed
JH
6222 (ipa_update_after_lto_read): Likewise.
6223 (ipa_write_node_info): Do not sream call_with_var_arguments.
6224 (ipa_read_node_info): Likewise.
6225
00cfc363
JH
62262011-06-11 Jan Hubicka <jh@suse.cz>
6227
6228 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
6229
39e2db00
JH
62302011-06-11 Jan Hubicka <jh@suse.cz>
6231
6232 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
6233 (lto_symtab_resolve_can_prevail_p): Likewise.
6234 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
6235 * cgraph.c (same_body_aliases_done): New global var.
6236 (cgraph_same_body_alias_1): Rename to ...
6237 (cgraph_create_function_alias): ... this one; reorg to new
6238 representation.
6239 (cgraph_same_body_alias): Use cgraph_create_function_alias;
6240 record references when asked to.
6241 (cgraph_add_thunk): Fix formating.
6242 (cgraph_get_node): Kill same body alias code.
6243 (cgraph_node_for_asm): Likewise.
6244 (cgraph_remove_same_body_alias): Remove.
6245 (cgraph_remove_node): Kill same body alias code.
6246 (cgraph_mark_address_taken_node): Mark also the aliased function
6247 as having address taken.
6248 (dump_cgraph_node): Dump same body aliases.
6249 (cgraph_for_node_thunks_and_aliases): Update for new alias
6250 representation.
6251 (cgraph_for_node_and_aliases): Likewise.
6252 * cgraph.h (same_body): Kll pointer.
6253 (same_body_alias): Update comment.
6254 (same_body_aliases_done): Declare.
6255 (cgraph_remove_same_body_alias): Remove declaration.
6256 (cgraph_create_function_alias): Declare.
6257 (cgraph_process_same_body_aliases): Declare.
6258 (cgraph_function_with_gimple_body_p): Check for alias.
6259 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
6260 (cgraph_alias_aliased_node): New function.
6261 (cgraph_function_node): Update for new aliases.
6262 (cgraph_function_or_thunk_node): Likewise.
6263 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
6264 (inline_call): Remove dead aliases.
10c63ba4
EB
6265 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
6266 name hack for same body aliases.
39e2db00
JH
6267 (clone_of_p): Look through aliases.
6268 (verify_cgraph_node): Verify aliases.
6269 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
6270 (cgraph_process_same_body_aliases): New function.
6271 (process_function_and_variable_attributes): Disable weakref warning on
6272 alias.
6273 (cgraph_analyze_functions): Handle aliases.
6274 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
6275 (assemble_thunks): Rename to ...
6276 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
6277 (cgraph_expand_function): Remove alias output code.
6278 (cgraph_output_in_order): Skip aliases.
6279 (cgraph_preserve_function_body_p): Aliases don't need preserving.
6280 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
6281 (ipa_record_reference): Do not assert on alias references.
6282 (ipa_ref_has_aliases_p): New function.
6283 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
6284 (ipa_ref_has_aliases_p): Declare.
6285 * lto-cgraph.c (lto_output_node): Handle aliases.
6286 (input_node): Likewise.
6287 * lto-streamer-out.c (lto_output): Skip aliases.
6288 (produce_symtab): Kill same_body_alias code.
6289 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
6290 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
6291 * ipa-inline.c (update_caller_keys): Walk aliases.
6292 (inline_small_functions): Fix thinko in previous patch.
6293 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
6294 (function_and_variable_visibility): Do not walk same body aliases.
6295 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
6296 (ipa_pta_execute): Use it.
6297
9ee65b55
UB
62982011-06-11 Uros Bizjak <ubizjak@gmail.com>
6299
6300 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
6301 (*vec_dupv2df): Rename from vec_dupv2df.
6302 (vec_dupv2df): New expander.
6303
63042011-06-11 Uros Bizjak <ubizjak@gmail.com>
6305
6306 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
6307
63082011-06-11 Uros Bizjak <ubizjak@gmail.com>
6309
6310 * config/i386/i386.md: Use default value in "isa" attribute.
6311 * config/i386/sse.md: Ditto.
6312 * config/i386/mmx.md: Ditto.
6313
ba68a139
WG
63142011-06-10 Wei Guozhi <carrot@google.com>
6315
6316 PR target/45335
6317 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
6318 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
6319 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
6320 related peephole2.
6321 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
6322 related peephole2.
6323 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
6324 (arm_legitimate_ldrd_p): New prototype.
6325 (arm_output_ldrd): New prototype.
6326 * config/arm/arm.c (arm_check_ldrd_operands): New function.
6327 (arm_legitimate_ldrd_p): New function.
6328 (arm_output_ldrd): New function.
6329
deced1e2
XDL
63302011-06-10 David Li <davidxl@google.com>
6331
6332 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6333 * passes.c (passr_eq): New function.
6334 (create_pass_tab): New function.
6335 (pass_traverse): New function.
6336 (dump_one_pass): New function.
6337 (dump_pass_list): New function.
6338 (dump_passes): New function.
6339
71fb4f92
JH
63402011-06-10 Jan Hubicka <jh@suse.cz>
6341
6342 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
6343 setting the nothrow flag.
6344 * ipa-reference.c (propagate): Skip aliases.
6345 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
6346 (propagate_nothrow): Skip aliases; do not update cgraph.
6347 (local_pure_const): Do not update cgraph.
6348 * tree-profile.c (tree_profiling): Do fixup_cfg.
6349
41817394
JH
63502011-06-10 Jan Hubicka <jh@suse.cz>
6351
6352 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
6353 (cgraph_local_node_p): ... here; handle aliases.
6354 (has_addr_references_p): Break out from ...;
6355 (cgraph_remove_unreachable_nodes) ... here.
6356
fb37c1de
JH
63572011-06-10 Jan Hubicka <jh@suse.cz>
6358
6359 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9ee65b55
UB
6360 * common.opt (flag_inline_functions_called_once): Do not
6361 initialize to 1.
fb37c1de 6362
0818c24c
JH
63632011-06-10 Jan Hubicka <jh@suse.cz>
6364
6365 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9ee65b55
UB
6366 (ipcp_initialize_node_lattices): Do not deal with aliases;
6367 Do not try to propagate through thunks.
0818c24c
JH
6368 (ipcp_change_tops_to_bottom): Do not deal with aliases.
6369
c8246dbe
JH
63702011-06-10 Jan Hubicka <jh@suse.cz>
6371
9ee65b55
UB
6372 * ipa-prop.c (ipa_write_node_info): Stream jump functions
6373 for indirect calls.
c8246dbe
JH
6374 (ipa_read_node_info): Likewise.
6375
d7e2a1c1
BS
63762011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6377
6378 PR lto/49302
6379 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
6380 (build_and_insert_call): Likewise.
6381 (build_and_insert_ref): New.
6382 (gimple_expand_builtin_pow): Minor cleanup.
6383 (gimple_expand_builtin_cabs): New.
6384 (execute_cse_sincos): Add case for BUILT_IN_CABS.
9ee65b55 6385
749f25d8
JH
63862011-06-10 Jan Hubicka <jh@suse.cz>
6387
6388 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
6389 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
6390 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
6391 (ipcp_propagate_stage): Skip aliases when propagating.
6392 (ipcp_need_redirect_p): Skip aliases.
6393 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
6394 collect_callers_of_node.
6395 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
6396 for aliases.
6397 (ipa_compute_jump_functions): Look through aliases.
6398
8340fbd7
RO
63992011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6400
6401 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
6402
9aaa7e47
HPN
64032011-06-10 Hans-Peter Nilsson <hp@axis.com>
6404
6405 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
6406 Adjust comments.
6407 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
6408
f1724940
JH
64092011-06-10 Jan Hubicka <jh@suse.cz>
6410
6411 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
6412 Update call of gimple_get_virt_method_for_binfo.
6413 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
6414 refuse_thunks parameter.
6415 (gimple_fold_call): Update.
6416 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
6417
a6f834c5
JH
64182011-06-10 Jan Hubicka <jh@suse.cz>
6419
6420 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
6421 (not_all_callers_have_enough_arguments_p): ... this one; turn into
6422 worker for cgraph_for_node_and_aliases.
6423 (convert_callers_for_node): Break out from ...
6424 (convert_callers): ... here.
6425 (modify_function): Use collect_callers_of_node.
6426 (ipa_early_sra): Use cgraph_for_node_and_aliases.
6427
7871eee3
RG
64282011-06-10 Richard Guenther <rguenther@suse.de>
6429
6430 PR tree-optimization/49361
6431 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
6432 when not already in gimple form.
6433
dae957ae
RG
64342011-06-10 Richard Guenther <rguenther@suse.de>
6435
6436 PR bootstrap/49344
6437 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
6438 FOR_EACH_PHI_OR_STMT_USE.
6439
a5b1779f
JH
64402011-06-10 Jan Hubicka <jh@suse.cz>
6441
6442 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
6443 (clone_inlined_nodes): ... here.
6444 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
6445 to real destination prior inlining.
6446 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
6447 can_early_inline_edge_p, want_early_inline_function_p,
6448 want_early_inline_function_p, want_inline_small_function_p,
6449 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
6450 edge_badness, update_all_callee_keys, lookup_recursive_calls,
6451 add_new_edges_to_heap, inline_small_functions, flatten_function,
6452 inline_always_inline_functions, early_inline_small_functions): Use
6453 cgraph_function_or_thunk_node.
6454 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
6455 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
6456 (do_estimate_edge_growth_1): Break out from ...
6457 (do_estimate_growth) ... here; walk aliases.
6458 (inline_generate_summary): Skip aliases.
6459
c1ae3ca5
RG
64602011-06-10 Richard Guenther <rguenther@suse.de>
6461
9ee65b55
UB
6462 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
6463 forward when combining, visit inserted stmts when a stmt was changed.
c1ae3ca5 6464
b504a918
PC
64652011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
6466
6467 * tree.h (error_operand_p): Add.
6468 * dbxout.c (dbxout_type_fields): Use the latter.
6469 * c-decl.c (add_stmt): Likewise.
6470 * gimplify.c (omp_add_variable, omp_notice_variable,
6471 gimplify_scan_omp_clauses): Likewise.
6472
3f5ea9dc 64732011-06-10 Georg-Johann Lay <avr@gjlay.de>
b504a918 6474
3f5ea9dc
GJL
6475 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
6476 when a value is actually passed in regs.
6477
b11b0904 64782011-06-10 Eric Botcazou <ebotcazou@adacore.com>
870c3cf8 6479 Laurent Rougé <laurent.rouge@menta.fr>
b11b0904
EB
6480
6481 * doc/invoke.texi (SPARC options): Add -mflat.
6482 * config/sparc/sparc.opt: Likewise.
6483 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
6484 (sparc_flat_expand_prologue): Declare.
6485 (sparc_flat_expand_epilogue): Likewise.
6486 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
6487 (CPP_ENDIAN_SPEC): Replace with...
6488 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
6489 (CPP_SPEC): Adjust to above change.
6490 (EXTRA_SPECS): Likewise.
6491 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
6492 (INCOMING_REGNO): Likewise.
6493 (OUTGOING_REGNO): Likewise.
6494 (LOCAL_REGNO): Likewise.
6495 (SETUP_FRAME_ADDRESSES): Likewise.
6496 (FIXED_REGISTERS): Set 0 for %fp.
6497 (CALL_USED_REGISTERS): Likewise.
6498 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
6499 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
6500 (RETURN_ADDR_REGNUM): Define.
6501 (RETURN_ADDR_RTX): Use it.
6502 (INCOMING_RETURN_ADDR_REGNUM): Define.
6503 (INCOMING_RETURN_ADDR_RTX): Use it.
6504 (DWARF_FRAME_RETURN_COLUMN): Likewise.
6505 (EH_RETURN_REGNUM): Define.
6506 (EH_RETURN_STACKADJ_RTX): Use it.
6507 (EH_RETURN_HANDLER_RTX): Delete.
6508 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
6509 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
6510 Delete.
6511 (struct machine_function): Add frame_size, apparent_frame_size,
6512 frame_base_reg, frame_base_offset, n_global_fp_regs and
6513 save_local_in_regs_p fields.
6514 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
6515 sparc_frame_base_offset, sparc_n_global_fp_regs,
6516 sparc_save_local_in_regs_p): New macros.
6517 (sparc_option_override): Error out if -fcall-saved-REG is specified
6518 for Out registers.
6519 (eligible_for_restore_insn): Fix formatting.
6520 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
6521 (eligible_for_sibcall_delay): Likewise.
6522 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
6523 (sparc_legitimate_address_p): Adjust to above change.
6524 (save_global_or_fp_reg_p): New predicate.
6525 (return_addr_reg_needed_p): Likewise.
6526 (save_local_or_in_reg_p): Likewise.
6527 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
6528 (SORR_SAVE, SORR_RESTORE): Delete.
6529 (sorr_pred_t): New typedef.
6530 (sorr_act_t): New enum.
6531 (save_or_restore_regs): Rename to...
6532 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
6533 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
6534 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
6535 mechanism. Add CFI information for double-word saves in 32-bit mode.
6536 (emit_adjust_base_to_offset): New function extracted from...
6537 (emit_save_or_restore_regs): ...this. Rename the rest to...
6538 (emit_save_or_restore_regs_global_fp_regs): ...this.
6539 (emit_save_or_restore_regs_local_in_regs): New function.
6540 (gen_create_flat_frame_[123]): New functions.
6541 (sparc_expand_prologue): Use SIZE local variable. Adjust.
6542 (sparc_flat_expand_prologue): New function.
6543 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
6544 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
6545 (sparc_flat_expand_epilogue): New function.
6546 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
6547 (output_return): Likewise.
6548 (output_sibcall): Likewise.
6549 (sparc_output_mi_thunk): Likewise.
6550 (sparc_frame_pointer_required): Likewise.
6551 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
6552 function optimization.
6553 * config/sparc/sparc.md (flat): New attribute.
6554 (prologue): Add TARGET_FLAT handling.
6555 (save_register_window): Disable if TARGET_FLAT.
6556 (create_flat_frame_[123]): New patterns.
6557 (epilogue): Add TARGET_FLAT handling.
6558 (sibcall_epilogue): Likewise.
6559 (eh_return): New expander.
6560 (eh_return_internal): New insn and splitter.
6561 (return_internal): Add TARGET_FLAT handling.
6562 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
6563 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
6564 (nonlocal_goto): Add TARGET_FLAT handling.
6565 * config/sparc/t-elf: Add -mflat multilib.
6566 * config/sparc/t-leon: Likewise.
6567
fede8efa
JH
65682011-06-10 Jan Hubicka <jh@suse.cz>
6569
6570 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
6571 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
6572 (self_recursive_p): Use cgraph_function_node.
6573 (propagate_pure_const): Likewise.
6574 (propagate_nothrow): Likewise.
6575 * ipa-reference.c (ipa_reference_get_not_read_global): Use
6576 cgraph_function_node.
6577 (propagate_bits): Likewise.
6578 (propagate): Likewise.
6579
0127c76f
RR
65802011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6581 Richard Earnshaw <rearnsha@arm.com>
6582
9ee65b55 6583 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
0127c76f
RR
6584 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
6585 (*thumb2_movdi_vfp): Delete.
6586 (*arm_movdi_vfp_cortexa8): Delete.
6587 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
6588 (*movdi_vfp_cortexa8): Likewise.
6589
f93fe5a0
RG
65902011-06-10 Richard Guenther <rguenther@suse.de>
6591
6592 * stor-layout.c (initialize_sizetypes): Give names to all
6593 sizetype kinds.
6594
f2164f87
IR
65952011-06-10 Ira Rosen <ira.rosen@linaro.org>
6596
6597 PR tree-optimization/49318
6598 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
6599 irrelevant pattern statements.
6600
3f91c962
HPN
66012011-06-10 Hans-Peter Nilsson <hp@axis.com>
6602
3d223145
HPN
6603 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
6604
3f91c962
HPN
6605 PR bootstrap/49354
6606 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
6607 to last assignment.
6608
b125ad45
JH
66092011-06-09 Jan Hubicka <jh@suse.cz>
6610
6611 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
6612 do not recompute reachable flag.
6613 (cgraph_finalize_function, cgraph_analyze_functions): Set
6614 redefined_extern_inline here.
6615
be330ed4
JH
66162011-06-09 Jan Hubicka <jh@suse.cz>
6617
6618 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
6619 (cgraph_only_called_directly_p): ... this one; bring offline.
6620 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
6621 varpool_used_from_object_file_p): Drop names from the declaratoin.
6622 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
6623 collect_callers_of_node): New.
6624 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
6625 (cgraph_edge_recursive_p): Use cgraph_function_node.
6626 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
6627 (cgraph_node_cannot_be_local_p_1): Break out from ...
6628 (cgraph_node_can_be_local_p): ... here; walk aliases.
6629 (cgraph_for_node_thunks_and_aliases): New function.
6630 (cgraph_for_node_and_aliases): New function.
6631 (cgraph_make_node_local_1): Break out from ...
9ee65b55
UB
6632 (cgraph_make_node_local) ... here; use
6633 cgraph_for_node_thunks_and_aliases.
be330ed4 6634 (cgraph_set_nothrow_flag_1): Break out from ...
9ee65b55
UB
6635 (cgraph_set_nothrow_flag) ... here;
6636 use cgraph_for_node_thunks_and_aliases.
be330ed4 6637 (cgraph_set_const_flag_1): Break out from ...
9ee65b55
UB
6638 (cgraph_set_const_flag) ... here;
6639 use cgraph_for_node_thunks_and_aliases.
be330ed4 6640 (cgraph_set_pure_flag_1): Break out from ...
9ee65b55
UB
6641 (cgraph_set_pure_flag) ... here;
6642 use cgraph_for_node_thunks_and_aliases.
be330ed4 6643 (cgraph_propagate_frequency_1): Break out from ...
9ee65b55
UB
6644 (cgraph_propagate_frequency) ... here; use
6645 cgraph_for_node_thunks_and_aliases.
be330ed4 6646 (cgraph_used_from_object_file_p): Do not care about aliases.
9ee65b55
UB
6647 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
6648 New functions.
be330ed4
JH
6649 (collect_callers_of_node_1, collect_callers_of_node): New functions.
6650
2ea91d6b
HPN
66512011-06-10 Hans-Peter Nilsson <hp@axis.com>
6652
6653 PR rtl-optimization/49154
6654 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
6655 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
6656 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
6657 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
6658 * config/cris/cris.h (cris_register_move_cost): Remove
6659 !TARGET_V32 code. Tweak comments.
6660
9cf4fb5a
JH
66612011-06-09 Jan Hubicka <jh@suse.cz>
6662
6663 * cgraphbuild.c (record_eh_tables): Mark personality function as having
6664 address taken.
6665
6049a4c8
HPN
66662011-06-10 Hans-Peter Nilsson <hp@axis.com>
6667
c577822e 6668 PR rtl-optimization/49154
9ee65b55
UB
6669 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
6670 is a matching slot in the hashtable, assign it to classes_ptr.
c577822e 6671
54e1e4f7 6672 PR rtl-optimization/49154
6049a4c8
HPN
6673 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
6674 register classes.
6675 * doc/tm.texi: Regenerate.
6676
3be68b64
KK
66772011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
6678
6679 PR target/49307
6680 * config/sh/sh.md (UNSPEC_CHKADD): New.
6681 (chk_guard_add): New define_insn_and_split.
6682 (symGOT_load): Use chk_guard_add instead of blockage.
6683
bf806a90
KT
66842011-06-09 Kai Tietz <ktietz@redhat.com>
6685
6686 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
6687
d5a9738b
EB
66882011-06-09 Eric Botcazou <ebotcazou@adacore.com>
6689
6690 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
6691
527e82c2
WG
66922011-06-09 Wei Guozhi <carrot@google.com>
6693
6694 PR target/46975
6695 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
6696 (peephole2 for conditional move): Generate 16 bit instructions.
6697
b8bc3a43
UB
66982011-06-09 Uros Bizjak <ubizjak@gmail.com>
6699
6700 * config/i386/i386.md (*movdi_internal_rex64): Merge
6701 alternatives 6 and 8.
6702
4745da6e
DL
67032011-06-09 David Li <davidxl@google.com>
6704
6705 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6706 * passes.c (passr_eq): New function.
6707 (create_pass_tab): New function.
6708 (pass_traverse): New function.
6709 (dump_one_pass): New function.
6710 (dump_pass_list): New function.
6711 (dump_passes): New function.
6712
bdf67bcb
DL
67132011-06-09 David Li <davidxl@google.com>
6714
6715 * tree-complex.c (tree_lower_complex): Gate cleanup.
6716 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
6717 (execute_optimize_stdarg): Ditto.
6718 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
6719 (execute_cleanup_eh_1): Ditto.
6720 (execute_cleanup_eh): Ditto.
6721 * gcse.c (gate_rtl_pre): Ditto.
6722 (execute_rtl_pre): Ditto.
6723 * except.c (finish_eh_generation): Ditto.
6724 (convert_to_eh_region_ranges): Ditto.
6725 * cprop.c (one_cprop_pass): Ditto.
6726
547fdef8
BS
67272011-06-09 Bernd Schmidt <bernds@codesourcery.com>
6728
6729 PR target/48673
6730 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
6731 in all basic blocks.
6732
10e48e39
RO
67332011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6734
6735 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
6736 (HAVE_ENABLE_EXECUTE_STACK): Define.
6737 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
6738 (HAVE_ENABLE_EXECUTE_STACK): Define.
6739 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
6740 (HAVE_ENABLE_EXECUTE_STACK): Define.
6741 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
6742 (ENABLE_EXECUTE_STACK): Remove.
6743 (HAVE_ENABLE_EXECUTE_STACK): Define.
6744 [IN_LIBGCC2]: Don't include <windows.h>.
6745 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6746 (HAVE_ENABLE_EXECUTE_STACK): Define.
6747 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
6748 (HAVE_ENABLE_EXECUTE_STACK): Define.
6749 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
6750 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
6751 (HAVE_ENABLE_EXECUTE_STACK): Define.
6752 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
6753 (HAVE_ENABLE_EXECUTE_STACK): Define.
6754 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
6755 (HAVE_ENABLE_EXECUTE_STACK): Define.
6756 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6757 (HAVE_ENABLE_EXECUTE_STACK): Define.
6758 * config/alpha/alpha.c (alpha_trampoline_init): Test
6759 HAVE_ENABLE_EXECUTE_STACK.
6760 * config/i386/i386.c (ix86_trampoline_init): Likewise.
6761 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
6762 (sparc64_initialize_trampoline): Likewise.
6763 * libgcc2.c [L_enable_execute_stack]: Remove.
6764 * system.h (ENABLE_EXECUTE_STACK): Poison.
6765 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
6766 * doc/tm.texi: Regenerate.
6767 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
6768
8ced31fe
JJ
67692011-06-09 Jakub Jelinek <jakub@redhat.com>
6770
6771 PR middle-end/49308
6772 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
6773 variable. After resetting and rescanning insn continue with previous
6774 statement.
6775
ee610fcd
RO
67762011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6777
6778 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
6779 (gcc_cv_ld_hidden): Likewise.
6780 * configure: Regenerate.
6781 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
6782 (ix86_stack_protect_fail): Mark unused.
6783 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
6784 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
6785 [TARGET_MACHO]: Don't define.
6786 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
6787 (TARGET_STACK_PROTECT_FAIL): Likewise.
6788 (rs6000_stack_protect_fail): Mark unused.
6789 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
b8bc3a43 6790 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
ee610fcd 6791
8f2e22ff
AK
67922011-06-08 Andi Kleen <ak@linux.intel.com>
6793
6794 * varasm.c (get_section): Print location of other conflict
6795 for section conflicts.
6796
815cecbe
AK
67972011-06-08 Andi Kleen <ak@linux.intel.com>
6798
6799 * config/i386/driver-i386.c (host_detect_local_cpu):
6800 Add model 0x2d Intel CPU.
6801
1460ec5c
AK
68022011-06-08 Andi Kleen <ak@linux.intel.com>
6803
6804 * reginfo.c (global_regs_decl): Add.
b8bc3a43
UB
6805 (globalize_reg): Add decl parameter. Compute location. Pass location
6806 to warnings and add inform. Store decl in global_regs_decl.
1460ec5c
AK
6807 * rtl.h (globalize_reg): Update prototype.
6808 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
6809
df17530a
MX
68102011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
6811
6812 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
6813
409fed48
KK
68142011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
6815
6816 PR target/49305
6817 * config/sh/predicates.md (general_movsrc_operand): Check
6818 mode for memory with indexed address for QI and HImode.
6819 (general_movdst_operand): Likewise.
6820
87c16a45
NP
68212011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
6822
b8bc3a43 6823 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
87c16a45 6824
49931fcb
AO
68252011-06-08 Alexandre Oliva <aoliva@redhat.com>
6826
6827 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
6828 (num_ssa_operands): Likewise.
6829 (op_iter_init_phiuse): Forward-declare.
6830 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
6831
29494d1f
NC
68322011-06-08 Nick Clifton <nickc@redhat.com>
6833
6834 * doc/invoke.texi (ARM Options): Update description of
6835 -mthumb-interwork.
6836
4ffae7ff
L
68372011-06-08 H.J. Lu <hongjiu.lu@intel.com>
6838
6839 * config/i386/driver-i386.c (host_detect_local_cpu): Support
6840 unknown Intel family 0x6 CPUs.
6841
d9c77712
MJ
68422011-06-08 Martin Jambor <mjambor@suse.cz>
6843
6844 * tree-sra.c (mark_rw_status): Removed.
6845 (analyze_access_subtree): New parameter parent instead of
6846 mark_read and mark_write, propagate from that.
6847
b1def36c
JB
68482011-06-08 Julian Brown <julian@codesourcery.com>
6849
6850 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
6851 for double-precision helper functions in hard-float mode if only
6852 single-precision arithmetic is supported in hardware.
6853
6c8e9fc9
AM
68542011-06-08 Alexander Monakov <amonakov@ispras.ru>
6855
6856 PR rtl-optimization/49303
6857 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
6858 code_motion_path_driver returned 0 or 1.
6859 (sel_region_finish): Clear h_d_i_d.
6860
c2bbcb0d
KK
68612011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
6862
6863 * config/sh/sh.c (prepare_move_operands): Set pic register
6864 appropriately for global and local dynamic tls models even
6865 if flag_pic is unset.
6866
6976ae51
JM
68672011-06-07 Jason Merrill <jason@redhat.com>
6868
6869 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
6870
bb5b1f5e
XDL
68712011-06-07 Xinliang David Li <davidxl@google.com>
6872 * passes.c (enable_disable_pass): Handle assembler name.
6873 (is_pass_explicitly_enabled_or_disabled): Ditto.
6874
91ffe356
RO
68752011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6876
6877 PR tree-optimization/48497
6878 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
6879
06bc3ec7
BS
68802011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6881
6882 PR tree-optimization/46728
6883 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
6884 to use gimple_val_nonnegative_real_p.
6885 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
6886 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
29494d1f 6887
c074d740
L
68882011-06-07 H.J. Lu <hongjiu.lu@intel.com>
6889
6890 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
6891
8973b112
SG
68922011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
6893
6894 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
6895 constant vectors.
6896
67b88453
RG
68972011-06-07 Richard Guenther <rguenther@suse.de>
6898
6899 * stor-layout.c (initialize_sizetypes): Initialize all
6900 sizetypes based on target definitions.
6901 (set_sizetype): Remove.
6902 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
6903 * tree.h (set_sizetype): Remove.
6904
1dcad079
NC
69052011-06-07 Nick Clifton <nickc@redhat.com>
6906
6907 * config.gcc: Unify V850 architecture options and add support for
6908 newer V850 architectures.
6909 * config/v850/t-v850e: Delete.
6910
009db074
RG
69112011-06-07 Richard Guenther <rguenther@suse.de>
6912
6913 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
6914 Call set_sizetype from here.
6915
f373314f
AS
69162011-06-07 Andrew Stubbs <ams@codesourcery.com>
6917
6918 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
6919 (*maddhisi4tb, *maddhisi4tt): New define_insns.
6920
c536876e
AS
69212011-06-07 Bernd Schmidt <bernds@codesourcery.com>
6922 Andrew Stubbs <ams@codesourcery.com>
6923
6924 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
6925 multiplies.
6926 * doc/md.texi (Canonicalization of Instructions): Document widening
6927 multiply canonicalization.
6928
308dc890
JJ
69292011-06-07 Jakub Jelinek <jakub@redhat.com>
6930
6931 PR gcov-profile/49299
b8bc3a43 6932 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
308dc890 6933
383d9c83
IR
69342011-06-07 Ira Rosen <ira.rosen@linaro.org>
6935
6936 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
6937 a pointer.
6938 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
6939 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
6940 vect_recog_pow_pattern): Likewise.
6941 (vect_pattern_recog_1): Remove declaration.
6942 (widened_name_p): Remove declaration. Add new argument to specify
6943 whether to check that both types are either signed or unsigned.
6944 (vect_recog_widen_mult_pattern): Update documentation. Handle
6945 unsigned patterns and multiplication by constants.
6946 (vect_pattern_recog_1): Update vect_recog_func references. Use
6947 statement information from the statement returned from pattern
6948 detection functions.
6949 (vect_pattern_recog): Update vect_recog_func reference.
6950 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
6951 multiplication by a constant use the type of the other operand.
6952
4de4b0f2
RS
69532011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
6954
6955 PR rtl-optimization/49145
6956 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
6957
a9d24544
JJ
69582011-06-06 Jakub Jelinek <jakub@redhat.com>
6959
99a5e049
JJ
6960 PR debug/49262
6961 * dwarf2out.c (native_encode_initializer): Decrement count in each
6962 iteration.
6963
04902d4c
JJ
6964 PR debug/49294
6965 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
6966 non-MODE_INT modes.
6967
a9d24544
JJ
6968 PR c++/49264
6969 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
6970 if stmt folded into nothing.
b8bc3a43
UB
6971 * tree-inline.c (fold_marked_statements): If a builtin at the end of
6972 a bb folded into nothing, just update cgraph edges and move to next bb.
a9d24544
JJ
6973 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
6974 to be NULL. Don't compute count and frequency if new_call is NULL.
6975
47c79d56
DN
69762011-06-04 Diego Novillo <dnovillo@google.com>
6977
6978 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
6979 (cgraph.o): Likewise.
6980 (cgraphunit.o): Likewise.
6981 * cgraphunit.c: Include lto-streamer.h
6982 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
6983 if LTO is enabled.
6984 * lto-streamer-in.c (unpack_value_fields): Call
6985 streamer_hooks.unpack_value_fields if set.
6986 (lto_materialize_tree): For unhandled nodes, first try to
6987 call lto_streamer_hooks.alloc_tree, if it exists.
6988 (lto_input_ts_decl_common_tree_pointers): Move reading of
6989 DECL_INITIAL to lto_streamer_read_tree.
6990 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
6991 (lto_streamer_read_tree): New.
6992 (lto_reader_init): Rename from lto_init_reader.
6993 Move initialization code to lto/lto.c.
6994 * lto-streamer-out.c (pack_value_fields): Call
6995 streamer_hooks.pack_value_fields if set.
b8bc3a43
UB
6996 (lto_output_tree_ref): For tree nodes that are not normally indexable,
6997 call streamer_hooks.indexable_with_decls_p before giving up.
47c79d56 6998 (lto_output_ts_decl_common_tree_pointers): Move handling
b8bc3a43
UB
6999 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
7000 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
7001 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
7002 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
47c79d56
DN
7003 (lto_streamer_write_tree): New.
7004 (lto_output): Call lto_streamer_init directly.
7005 (lto_writer_init): Remove.
7006 * lto-streamer.c (streamer_hooks): New.
7007 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
7008 instead of lto_preload_common_nodes.
7009 (lto_is_streamable): Move from lto-streamer.h
7010 (lto_streamer_hooks_init): New.
7011 (streamer_hooks): New.
7012 (streamer_hooks_init): New.
7013 * lto-streamer.h (struct output_block): Forward declare.
7014 (struct lto_input_block): Likewise.
7015 (struct data_in): Likewise.
7016 (struct bitpack_d): Likewise.
7017 (struct streamer_hooks): Declare.
7018 (streamer_hooks): Declare.
7019 (lto_streamer_hooks_init): Declare.
7020 (lto_streamer_write_tree): Declare.
7021 (lto_streamer_read_tree): Declare.
7022 (streamer_hooks_init): Declare.
7023 (lto_is_streamable): Move to lto-streamer.c
7024
22afe143
AK
70252011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7026
7027 * longlong.h (smul_ppmm): The resulting register pair contains the
7028 higher order word first.
7029
3906ea1b
BS
70302011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7031
7032 PR tree-optimization/46728
7033 * builtins.c (powi_table): Remove.
7034 (powi_lookup_cost): Remove.
7035 (powi_cost): Remove.
7036 (expand_powi_1): Remove.
7037 (expand_powi): Remove.
7038 (expand_builtin_pow_root): Remove.
7039 (expand_builtin_pow): Remove.
7040 (expand_builtin_powi): Eliminate handling of constant exponent.
7041 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
b8bc3a43 7042
3598cabd
AO
70432011-06-06 Alexandre Oliva <aoliva@redhat.com>
7044
7045 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
7046
a7a110bb
AO
70472011-06-06 Alexandre Oliva <aoliva@redhat.com>
7048
7049 * dce.c (reset_unmarked_insns_debug_uses): New.
7050 (delete_unmarked_insns): Skip debug insns.
7051 (prescan_insns_for_dce): Likewise.
7052 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
7053 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
7054 active reg can be found.
7055 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
7056 (convert_regs_1): Use it.
7057
6d8402ac
AO
70582011-06-06 Alexandre Oliva <aoliva@redhat.com>
7059
7060 * tree-pretty-print.c (dump_function_header): Add flags.
7061 Don't dump decl_uid with nouid.
7062 * tree-pretty-print.h (dump_function_header): Adjust.
7063 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
7064 * passes.c (pass_init_dump_file): Pass dump_flags on.
7065 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
7066
f75e1f1e
AO
70672011-06-06 Alexandre Oliva <aoliva@redhat.com>
7068
7069 PR bootstrap/49270
7070 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
7071
275311c4
MP
70722011-06-06 Mikael Pettersson <mikpe@it.uu.se>
7073
7074 PR tree-optimization/49243
7075 * calls.c (setjmp_call_p): Also check if fndecl has the
7076 returns_twice attribute.
7077
aa4203e7
RO
70782011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7079
7080 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
7081 -ffast-math etc.
7082
48f9d59a
RH
70832011-06-06 Richard Henderson <rth@redhat.com>
7084 Georg-Johann Lay <avr@gjlay.de>
7085
7086 PR target/42210
7087 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
7088 New predicates.
7089 * config/avr/avr.md ("insv"): New insn expander.
7090 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
7091 "*insv.not.io", "*insv.reg"): New insns.
7092
11494830
HPN
70932011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
7094
7095 PR target/49285
b8bc3a43
UB
7096 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
7097 to nonimmediate_operand from memory_operand for the operand that is to
7098 be forced to memory by the expander. Lose the constraints.
11494830 7099
679e70df
EB
71002011-06-05 Eric Botcazou <ebotcazou@adacore.com>
7101
7102 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
7103 EH return when delayed branches are disabled.
7104
4d3d7f15
UB
71052011-06-05 Uros Bizjak <ubizjak@gmail.com>
7106
7107 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
7108 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
7109 calculation.
7110 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
7111 Simplify MODE_V1DF and MODE_V2SF handling.
7112 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
7113 Simplify MODE_SF handling.
7114
a45c0557
JH
71152011-06-04 Jan Hubicka <jh@suse.cz>
7116
7117 PR tree-optimization/48893
7118 PR tree-optimization/49091
7119 PR tree-optimization/49179
7120 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
7121 Bounds check.
7122
26740835
JH
71232011-06-04 Jan Hubicka <jh@suse.cz>
7124
7125 PR lto/48954
b8bc3a43
UB
7126 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
7127 bitmaps.
26740835 7128
014ab419
JW
71292011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
7130
7131 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
7132
407bcba7
JJ
71332011-06-04 Jakub Jelinek <jakub@redhat.com>
7134
7135 PR target/49281
7136 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
7137 to be strictly smaller than 1 << shiftcount.
7138
e3195c52
JH
71392011-06-04 Jan Hubicka <jh@suse.cz>
7140
7141 PR tree-optimize/48929
7142 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
7143 of empty predicate.
7144
047d33a0
AO
71452011-06-04 Alexandre Oliva <aoliva@redhat.com>
7146
7147 PR debug/48333
7148 * calls.c (emit_call_1): Prefer the __builtin declaration of
7149 builtin functions.
7150
dc587809
DN
71512011-06-03 Diego Novillo <dnovillo@google.com>
7152
7153 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
7154 (lto_input_tree_pointers): Likewise.
7155 * lto-streamer-out.c (pack_value_fields): Likewise.
7156 (lto_output_tree_pointers): Likewise.
7157 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
7158 and OPTIMIZATION_NODE.
7159
58cd1d70
RO
71602011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7161
7162 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
7163 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
7164 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
7165 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
7166 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
7167 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
7168 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
7169 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
7170 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
7171 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
7172 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
7173 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
7174 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
7175 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
7176 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
7177 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
7178 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
7179 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
7180 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
7181 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
7182 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
7183 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
7184 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
7185 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
7186 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
7187 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
7188 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
7189 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
7190 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
7191 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
7192 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
7193 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
7194 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
7195 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
7196 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
7197 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
7198 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
7199 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
7200 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
7201 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
7202 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
7203 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
7204 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
7205 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
7206 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
7207 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
7208 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
7209 * system.h (MD_UNWIND_SUPPORT): Poison.
7210 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
7211 * doc/tm.texi: Regenerate.
7212 * unwind-dw2.c: Include md-unwind-support.h instead of
7213 MD_UNWIND_SUPPORT.
7214 * config/ia64/unwind-ia64.c: Likewise.
7215 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7216
10c63ba4 72172011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
34e0c8d5
JH
7218
7219 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
7220
1b7a0148
RH
72212011-06-03 Richard Henderson <rth@redhat.com>
7222 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7223
7224 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
7225 (sigill_hdlr): Correct insn, insn size.
7226 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
7227
737346fa
RO
72282011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7229
7230 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
7231 t-slibgcc-dummy.
7232 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
7233 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
7234 * config/mips/t-iris: Remove.
7235 * config/mips/t-irix6: New file.
7236 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
7237
c192cee6
RO
72382011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7239
7240 * Makefile.in (LIB2ADDEHDEP): Remove.
7241 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
7242 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
7243 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
7244 * config/t-darwin (LIB2ADDEHDEP): Remove.
7245 * config/t-freebsd (LIB2ADDEHDEP): Remove.
7246 * config/t-linux (LIB2ADDEHDEP): Remove.
7247
d5828cc7
DN
72482011-06-03 Diego Novillo <dnovillo@google.com>
7249
7250 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
7251 (lto_register_var_decl_in_symtab): Likewise.
7252 (lto_register_function_decl_in_symtab): Likewise.
7253 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8929d9ea 7254 logic to uniquify_nodes.
d5828cc7 7255
ee33b5f0
RO
72562011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7257
7258 * config/alpha/t-osf5: Remove.
7259 * config/alpha/t-osf-pthread: Remove.
7260 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
7261 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
7262
16868d84
JB
72632011-06-03 Julian Brown <julian@codesourcery.com>
7264
7265 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
7266 (strongarm1110): Use strongarm tuning.
4d3d7f15 7267 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
16868d84
JB
7268 * config/arm/arm.c (arm_strongarm_tune): New.
7269 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7270 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
7271 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
7272 setting, using previous defaults or 1 for Cortex-A5.
7273 (arm_option_override): Set max_insns_skipped from current tuning.
7274
1cec1285
NS
72752011-06-03 Nathan Sidwell <nathan@codesourcery.com>
7276
7277 * doc/install.texi (Options specification): Document --with-specs.
7278
eed55426
RR
72792011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7280
7281 * config/arm/neon.md (orndi3_neon): Actually split it.
7282
d5b6cc25
AO
72832011-06-02 Alexandre Oliva <aoliva@redhat.com>
7284
7285 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
7286 * var-tracking.c (reverse_op): Limite recurse depth to 5.
7287
2ba42841
AO
72882011-06-02 Alexandre Oliva <aoliva@redhat.com>
7289
7290 PR debug/47590
7291 * target.def (delay_sched2, delay_vartrack): New.
7292 * doc/tm.texi.in: Update.
7293 * doc/tm.texi: Rebuild.
7294 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
7295 * var-tracking.c (gate_handle_var_tracking): Likewise.
7296 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
7297 (bfin_flag_var_tracking): Drop.
7298 (output_file_start): Don't save and override flag_var_tracking.
7299 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
7300 (bfin_reorg): Test original variables.
7301 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7302 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
7303 (ia64_flag_var_tracking): Drop.
7304 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7305 (ia64_file_start): Don't save and override flag_var_tracking.
7306 (ia64_override_options_after_change): Ditto
7307 flag_schedule_insns_after_reload.
7308 (ia64_reorg): Test original variables.
7309 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
7310 (picochip_flag_var_tracking): Drop.
7311 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7312 (picochip_option_override): Don't save and override
7313 flag_schedule_insns_after_reload.
7314 (picochip_asm_file_start): Ditto flag_var_tracking.
7315 (picochip_reorg): Test original variables.
7316 * config/spu/spu.c (spu_flag_var_tracking): Drop.
7317 (TARGET_DELAY_VARTRACK): Define.
7318 (spu_var_tracking): New.
7319 (spu_machine_dependent_reorg): Call it.
7320 (asm_file_start): Don't save and override flag_var_tracking.
7321
a700b5f0
KK
73222011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
7323
7324 PR target/49163
7325 * config/sh/predicates.md (general_movsrc_operand): Return 0
7326 for memory and memory subreg of which address is an invalid
7327 indexed address for QI and HImode.
7328 (general_movdst_operand): Likewise.
7329
76015c34
EB
73302011-06-02 Eric Botcazou <ebotcazou@adacore.com>
7331
7332 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
7333 edges only, when there is a non-local label in the function.
7334 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
7335
4e76acd2
UB
73362011-06-02 Uros Bizjak <ubizjak@gmail.com>
7337
7338 * config/i386/constraints.md (Y3): New register constraint.
7339 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
7340 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
7341 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
7342 *sse2_interleave_lowv2df.
7343
288f605f
JB
73442011-06-02 Julian Brown <julian@codesourcery.com>
7345
7346 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
7347 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
7348 (arm_cortex_a5_tune): New.
7349
7ec70105
JB
73502011-06-02 Julian Brown <julian@codesourcery.com>
7351
153668ec
JB
7352 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
7353 * config/arm/arm.c (arm_default_branch_cost): New.
7354 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7355 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
7356 (arm_fa726_tune): Set branch_cost field using
7357 arm_default_branch_cost.
7358 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
7359 current_tune structure.
7360 * dojump.c (tm_p.h): Include file.
7361
73622011-06-02 Julian Brown <julian@codesourcery.com>
7363
7364 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
7365 tuning.
7ec70105
JB
7366 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
7367 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
7368 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
7369 field.
7370 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
7371 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
7372 (arm_fa726te_tune): Add prefer_constant_pool setting.
7373 (arm_v6t2_tune, arm_cortex_tune): New.
7374 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
7375 prefer_constant_pool setting.
7376
aad61732
UB
73772011-06-02 Uros Bizjak <ubizjak@gmail.com>
7378
4e76acd2
UB
7379 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
7380 switch statement.
aad61732
UB
7381 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
7382 (*movdf_internal) <case 6,7,8>: Ditto.
7383
4e76acd2 7384 * config/i386/constraints.md (Y4): New register constraint.
aad61732
UB
7385 * config/i386/sse.md (vec_set<mode>_0): Merge with
7386 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
7387 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
7388 *vec_extractv2di_1_sse.
7389 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
7390 and *vec_concatv2di_rex64_sse.
7391
6e588138
SH
73922011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
7393
7394 PR target/48807
7395 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
7396 of cgraph_local_info for null before attempting to use it.
7397
bc6d3f91
EB
73982011-06-02 Eric Botcazou <ebotcazou@adacore.com>
7399
7400 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
7401 (current_function_dynamic_alloc_count): Delete.
7402 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
7403 (expand_builtin_nonlocal_goto): Remove obsolete comment.
7404 (expand_builtin_update_setjmp_buf): Remove dead code.
7405 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
7406 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
7407 support.
7408 * function.c (instantiate_virtual_regs): Likewise.
7409 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
7410 for a block with a single abnormal incoming edge.
7411 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
a21ede65 7412 (SETJMP_VIA_SAVE_AREA): Delete.
bc6d3f91
EB
7413 * config/sparc/sparc-protos.h (load_got_register): Declare.
7414 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7415 (load_got_register): Make global.
7416 (sparc_frame_pointer_required): Add 'static'.
7417 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
7418 (sparc_builtin_setjmp_frame_value): New function.
7419 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
7420 (save_stack_nonlocal): New expander.
7421 (restore_stack_nonlocal): Likewise.
7422 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
7423 (nonlocal_goto_internal): New insn.
7424 (goto_handler_and_restore): Delete.
7425 (builtin_setjmp_setup): Likewise.
7426 (do_builtin_setjmp_setup): Likewise.
7427 (setjmp): Likewise.
7428 (builtin_setjmp_receiver): New expander.
7429
69282fee
DL
74302011-06-01 David Li <davidxl@google.com>
7431
7432 PR middle-end/49261
7433 * tree-pretty-print.c (dump_function_header): Format cleanup.
7434
e95873dd
KK
74352011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
7436
7437 PR target/49238
7438 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
7439 needed when original operands are used for msw_skip comparison.
7440
88c15821
JJ
74412011-06-01 Jakub Jelinek <jakub@redhat.com>
7442
7443 PR debug/49250
7444 * var-tracking.c (add_uses, add_stores): Don't call
7445 cselib_subst_to_values on ENTRY_VALUE.
7446
07233947
DN
74472011-06-01 Diego Novillo <dnovillo@google.com>
7448
7449 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
7450 output_record_start with LTO_null instead of output_zero.
7451 (lto_output_ts_binfo_tree_pointers): Likewise.
7452 (lto_output_tree): Likewise.
7453 (output_eh_try_list): Likewise.
7454 (output_eh_region): Likewise.
7455 (output_eh_lp): Likewise.
7456 (output_eh_regions): Likewise.
7457 (output_bb): Likewise.
7458 (output_function): Likewise.
7459 (output_unreferenced_globals): Likewise.
7460 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
7461 instead of NUM_TREE_CODES.
7462 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
7463 (lto_output_int_in_range): Change << to >> when shifting VAL.
7464
4ee3537a
DN
74652011-06-01 Diego Novillo <dnovillo@google.com>
7466
7467 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
7468 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
7469
02972eaf
RS
74702011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7471
7472 PR target/45074
7473 * optabs.h (valid_multiword_target_p): Declare.
7474 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
7475 doing multi-word operations.
7476 * optabs.c (expand_binop): Likewise.
7477 (expand_doubleword_bswap): Likewise.
7478 (expand_absneg_bit): Likewise.
7479 (expand_unop): Likewise.
7480 (expand_copysign_bit): Likewise.
7481 (multiword_target_p): New function.
7482
4d41c2d1
RS
74832011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7484
7485 PR rtl-optimization/48830
7486 PR rtl-optimization/48808
7487 PR rtl-optimization/48792
7488 * reload.c (push_reload): Check contains_reg_of_mode.
7489 * reload1.c (strip_paradoxical_subreg): New function.
7490 (gen_reload_chain_without_interm_reg_p): Use it to handle
7491 paradoxical subregs.
7492 (emit_output_reload_insns, gen_reload): Likewise.
7493
5f57dccb
DL
74942011-06-01 David Li <davidxl@google.com>
7495
7496 * predict.c : Change pass name
7497 * ipa.c: Ditto.
7498 * dce.c: Ditto.
7499 * tree-profile.c: Ditto.
7500 * except.c: Ditto.
7501
ea6cf778
DL
75022011-06-01 David Li <davidxl@google.com>
7503
7504 * tree-pretty-print.c (dump_function_header): New function.
7505 * final.c (rest_of_clean_state): Use header dumper.
7506 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
7507 * passes.c (pass_init_dump_file): Use header dumper.
7508
ebdc0d4b
JJ
75092011-06-01 Jakub Jelinek <jakub@redhat.com>
7510
eeeb9b49
JJ
7511 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
7512 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
7513 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
7514 New functions.
7515 (mem_loc_descriptor): Use them.
7516
ebdc0d4b
JJ
7517 * var-tracking.c (create_entry_value): New function.
7518 (vt_add_function_parameter): Use it.
7519
0699e415
RO
75202011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7521
7522 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
7523 Include <signal.h>, <ucontext.h>.
7524 (sigill_caught): Define.
7525 (sigill_hdlr): New function.
7526 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
7527 insns can be executed.
aad61732 7528 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
0699e415
RO
7529 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
7530
ca24c5ad
RO
75312011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7532
7533 * config/t-slibgcc-darwin: Move to ...
aad61732 7534 * config/t-slibgcc-dummy: ... this. Clarify comments.
ca24c5ad
RO
7535 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
7536 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
7537 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
aad61732 7538 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
ca24c5ad
RO
7539 Remove i386/t-crtstuff from tmake_file.
7540 (i[34567]86-*-solaris2*): Remove t-svr4,
7541 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
7542 t-slibgcc-dummy.
7543 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
7544 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
7545 sparc/t-crtfm from tmake_file.
7546 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
7547 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
7548 Remove extra_parts.
7549 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
7550 * config/i386/t-nwld (SHLIB_LINK): Remove.
7551 * config/i386/t-rtems-i386: Rename to ...
7552 * config/i386/t-rtems: ... this.
7553 ($(T)crti.o, $(T)crtn.o): Remove.
7554 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
7555 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
7556 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
7557 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
7558 EXTRA_MULTILIB_PARTS): Remove.
7559 * config/sparc/t-sol2-64: Likewise.
7560 * config/sparc/t-sol2: Remove.
7561 * config/sparc/t-crtin: Remove.
7562 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
7563 * config/i386/gmon-sol2.c: Remove.
7564 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
7565 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
7566 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
7567 * config/i386/sol2-gc1.asm: Remove.
7568 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
7569 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
7570 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
7571 * config/t-slibgcc-sld: Remove.
7572
a78d13c3
JJ
75732011-06-01 Jakub Jelinek <jakub@redhat.com>
7574
7575 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
7576 base_type_for_mode with op_mode instead of mode.
7577
572070ef
PB
75782011-06-01 Paul Brook <paul@cpodesourcery.com>
7579
7580 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
7581 Cortex-A15.
7582 * config/arm/arm-tune.md: Regenerate.
7583 * config/arm/arm-tables.opt: Regenerate.
7584 * config/arm/arm.c (FL_DIV): Rename...
7585 (FL_THUMB_DIV): ... to this.
7586 (FL_ARM_DIV): Define.
7587 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
7588 (arm_arch_hwdiv): Remove.
7589 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
7590 (arm_issue_rate): Add cortexr5.
7591 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
7592 __ARM_ARCH_EXT_IDIV__.
7593 (TARGET_IDIV): Define.
7594 (arm_arch_hwdiv): Remove.
7595 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
7596 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
7597 (divsi3, udivsi3): New patterns.
7598 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
7599 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
7600
11026b51
MJ
76012011-06-01 Martin Jambor <mjambor@suse.cz>
7602
7603 * ipa-utils.c (ipa_dfs_info): New field scc_no.
7604 * ipa-utils.c (searchc): Set scc_no.
7605
b6156cf2
MJ
76062011-06-01 Martin Jambor <mjambor@suse.cz>
7607
7608 * ipa-utils.c (searchc_env): New field allow_overwritable.
7609 (searchc): do not ignore edges to overwritable nodes if indicated
7610 by env->allow_overwritable.
7611 (ipa_reduced_postorder): Set env.allow_overwritable.
7612
6807da97
RG
76132011-06-01 Richard Guenther <rguenther@suse.de>
7614
7615 * tree.c (free_lang_data): Do not reset boolean_type_node nor
7616 char_type_node.
7617 * lto-streamer.c (lto_record_common_node): Take node pointer,
7618 do not register types.
7619 (lto_preload_common_nodes): Explicitly skip preloading nodes
7620 that differ between frontends.
7621
66bd20e7 76222011-05-31 Pat Haugen <pthaugen@us.ibm.com>
ddaf42bc
PH
7623
7624 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
7625 NON_FLOAT_REGS.
7626
66bd20e7 76272011-05-31 Pat Haugen <pthaugen@us.ibm.com>
abdd692e
PH
7628
7629 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
7630 parameter value for dump. Dump cost on outermost call only.
7631 (rs6000_memory_move_cost): Dump cost on outermost call only.
7632
7351d8da
JJ
76332011-05-31 Jakub Jelinek <jakub@redhat.com>
7634
ead7c399
JJ
7635 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
7636 DW_OP_GNU_convert ops.
7637
509f4495
JJ
7638 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
7639 cselib_preserve_constants.
7640 (cselib_lookup_1): If cselib_preserve_constants,
7641 a new VALUE is being created for REG and there is a VALUE for the
7642 same register in wider mode, add another loc with lowpart SUBREG of
7643 the wider VALUE.
7644 (cselib_subst_to_values): Handle ENTRY_VALUE.
7645 * var-tracking.c (replace_expr_with_values): Return NULL for
7646 ENTRY_VALUE too.
7647 * dwarf2out.c (convert_descriptor_to_signed): New function.
7648 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
7649 instead of two shifts.
7650 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
7651 the right mode if needed.
7652 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
7653 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
7654 convert_descriptor_to_signed.
7655 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
7656 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
7657
7351d8da
JJ
7658 PR target/48688
7659 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
7660
5cc93ee0
UB
76612011-05-31 Uros Bizjak <ubizjak@gmail.com>
7662
7663 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
7664 of X87MODEI12 and SWI48x instead of SSEMODEI24.
7665 (SWI248x): New mode iterator, rename from X87MODEI.
7666 (X87MODEI): Remove mode iterator.
7667 (X87MODEI12): Ditto.
7668 (SSEMODEI24): Ditto.
7669
f0686e78
AO
76702011-05-31 Alexandre Oliva <aoliva@redhat.com>
7671
7672 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
7673 * doc/invoke.texi: Document max-vartrack-expr-depth.
7674 * var-tracking.c (EXPR_DEPTH): New.
7675 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
7676
f3308413
AO
76772011-05-31 Alexandre Oliva <aoliva@redhat.com>
7678
7679 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
7680 * config/i386/sse.md: Add n to negated FMA pattern names.
7681
28c14a04
AO
76822011-05-31 Alexandre Oliva <aoliva@redhat.com>
7683
7684 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
7685
70efc82d
AO
76862011-05-31 Alexandre Oliva <aoliva@redhat.com>
7687
5cc93ee0 7688 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 7689
6ba5d856
UB
76902011-05-31 Uros Bizjak <ubizjak@gmail.com>
7691
7692 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
7693 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
7694
76952011-05-31 Uros Bizjak <ubizjak@gmail.com>
7696
7697 * config/i386/i386.md (*movtf_internal): Avoid allocating general
7698 registers. Penalize F*r->o alternative to prevent partial memory
7699 stalls. Slightly penalize *roF->*r alternative. Generate SSE
7700 CONST_DOUBLE immediates when optimizing function for size. Do not move
7701 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
7702 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
7703 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
7704 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
7705 alternatives.
7706 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
7707
7708 (fp_register_operand splitters): Use fp_register_operand
7709 constraint. Do not use FP_REG_P in insn condition.
7710 (any_fp_register_operand splitters): Use any_fp_register_operand
7711 constraint. Do not use ANY_FP_REG_P in insn condition.
7712
533c07c5
JH
77132011-05-31 Jan Hubicka <jh@suse.cz>
7714
7715 * cgraph.h (cgraph_inline_failed_t): Give enum a name
7716 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
7717 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
7718 (lto_output_edge): Use output_enum and var_len_unsigned.
7719 (lto_output_varpool_node): Likewise.
7720 (input_overwrite_node): Do not take resolution parameter;
7721 extract it from a bitpack.
7722 (input_node): Do not read resolution; use input_enum and
7723 var_len_unsigned.
7724 (input_varpool_node): Likewise.
7725 (input_edge): Likewise.
7726 (input_cgraph_1): Likewise.
7727
2611db71
RG
77282011-05-31 Richard Guenther <rguenther@suse.de>
7729
7730 * gimple.c (gimple_register_canonical_type): Do not register
7731 any types via gimple_register_type.
7732
b9e57365
JH
77332011-05-31 Jan Hubicka <jh@suse.cz>
7734
7735 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
7736 of thunks.
7737
35979cc2
JJ
77382011-05-31 Jakub Jelinek <jakub@redhat.com>
7739
7740 PR rtl-optimization/49235
7741 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
7742 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
7743
8f7de592
IR
77442011-05-31 Ira Rosen <ira.rosen@linaro.org>
7745
7746 PR tree-optimization/49093
7747 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
7748 data references.
7749
8d8a3bda
DS
77502011-05-31 Dodji Seketeli <dodji@redhat.com>
7751
7752 PR debug/49047
7753 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 7754 for concrete functions containing the code of cloned functions.
8d8a3bda 7755
2e87621c
RG
77562011-05-31 Richard Guenther <rguenther@suse.de>
7757
7758 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
7759 to ...
7760 (forward_propagate_into_comparison_1): ... this.
7761 (forward_propagate_comparison): Rename to ...
7762 (forward_propagate_into_comparison): ... this. Split out
7763 real forward propagation code to ...
7764 (forward_propagate_comparison): ... this.
7765 (forward_propagate_into_gimple_cond): Remove looping.
7766 (forward_propagate_into_cond): Likewise.
7767 (simplify_not_neg_expr): Return whether we have done something.
7768 (simplify_gimple_switch): Likewise.
7769 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
7770 (ssa_forward_propagate_and_combine): ... this. Re-structure
7771 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 7772 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
7773 (pass_forwprop): Adjust.
7774
5a880d5d
ILT
77752011-05-30 Ian Lance Taylor <iant@google.com>
7776
7777 * godump.c (go_format_type): Correct length of name added to
7778 obstack for anonymous field.
7779
5f133038
KK
77802011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
7781
7782 PR target/49186
7783 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
7784 part of the second operand is 0.
7785
b17d5426
UB
77862011-05-30 Uros Bizjak <ubizjak@gmail.com>
7787
7788 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
7789 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
7790 to memory for !TARGET_MEMORY_MISMATCH_STALL.
7791 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 7792 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
7793 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
7794 when optimizing function for size. Do not move CONST_DOUBLEs
7795 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
7796 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
7797 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
7798 check for ANY_FP_REGNO_P instead.
7799 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
7800 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
7801 function for speed.
7802 * config/i386/i386.c (ix86_option_override_internal): Do not
7803 set TARGET_INTEGER_DFMODE_MOVES here.
7804
a0cd843f
L
78052011-05-30 H.J. Lu <hongjiu.lu@intel.com>
7806
7807 PR target/49168
aad61732 7808 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
a0cd843f 7809
006a5f38
JJ
78102011-05-30 Jakub Jelinek <jakub@redhat.com>
7811
7812 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
7813 DW_TAG_rvalue_reference_type even for
7814 -gdwarf-4 -fno-debug-types-section.
7815
6e96f98a
BS
78162011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7817
7818 PR tree-optimization/46728
7819 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
7820 (build_and_insert_binop): New.
7821 (gimple_expand_builtin_pow): Reorder args for
7822 build_and_insert_call; use build_and_insert_binop; add more
7823 optimizations for fractional exponents.
b17d5426 7824
4f60111f
NF
78252011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
7826
7827 PR bootstrap/49190
7828
7829 Revert:
7830 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
7831
7832 * tree.h (struct tree_identifier): Inherit from tree_typed, not
7833 tree_common.
7834 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
7835 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
7836 TS_BASE instead of TS_COMMON.
7837 * varasm.c (assemble_name): Remove assert.
7838
3fd7879d
RS
78392011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
7840
7841 * config.gcc: Keep obselete list sorted.
7842
80060f7a
JJ
78432011-05-30 Jakub Jelinek <jakub@redhat.com>
7844 Eric Botcazou <ebotcazou@adacore.com>
7845
7846 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
7847 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
7848 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
7849 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
7850 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
7851
17e99cdb
RG
78522011-05-30 Richard Guenther <rguenther@suse.de>
7853
7854 * gimple.c (gimple_types_compatible_p_1): Compare record
7855 and union type members properly.
7856
42b05b6e
RG
78572011-05-30 Richard Guenther <rguenther@suse.de>
7858
7859 PR tree-optimization/49210
6ba5d856
UB
7860 * ipa-split.c (split_function): Care for the case where the call
7861 result is not trivially convertible to the result holding variable.
42b05b6e 7862
f3321158
RG
78632011-05-30 Richard Guenther <rguenther@suse.de>
7864
7865 PR tree-optimization/49218
7866 * tree-vrp.c (adjust_range_with_scev): Properly check whether
7867 overflow occured.
7868
d12d8efe
RG
78692011-05-30 Richard Guenther <rguenther@suse.de>
7870
7871 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
7872 New function split out from ...
7873 (forward_propagate_into_gimple_cond): ... here. Adjust.
7874 (forward_propagate_into_cond): Likewise.
7875 (forward_propagate_comparison): Also propagate into
7876 comparisons on assignment RHS. Change return value to
7877 behave similar to forward_propagate_into_cond.
7878 (tree_ssa_forward_propagate_single_use_vars): Handle
7879 strict-overflow warnings properly for forward_propagate_comparison.
7880
df33b41f
RO
78812011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7882
7883 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
7884 from plugin linker.
7885 * configure: Regenerate.
7886
69940d4d
IR
78872011-05-30 Ira Rosen <ira.rosen@linaro.org>
7888
7889 PR tree-optimization/49199
7890 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 7891 non-reduction operands are either defined in the loop or by induction.
69940d4d 7892
226c52aa
XDL
78932011-05-29 Xinliang David Li <davidxl@google.com>
7894
7895 * opts-global.c (handle_common_deferred_options): Handle new options.
7896 * passes.c (register_one_dump_file): Call register_pass_name.
7897 (execute_one_pass): Check explicit enable/disable flag.
7898 (passr_hash): New function.
7899 (passr_eq): Ditto.
7900 (register_pass_name): Ditto.
7901 (get_pass_by_name): Ditto.
7902 (pass_hash): Ditto.
7903 (pass_eq): Ditto.
7904 (enable_pass): Ditto.
7905 (disable_pass): Ditto.
7906 (is_pass_explicitly_enabled_or_disabled): Ditto.
7907
491d8eed
UB
79082011-05-29 Uros Bizjak <ubizjak@gmail.com>
7909
7910 * config/i386/i386.md (*movoi_internal_avx): Use
7911 standard_sse_constant_opcode for alternative 0.
7912 (*movti_internal_sse): Ditto.
7913 (*movti_internal_rex64): Use standard_sse_constant_opcode for
7914 alternative 2.
7915 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
7916 sselog1 type moves.
7917 (*movsi_internal): Ditto.
7918 (*movdi_internal): Ditto. Add ssecvt type moves.
7919
eb93b31f
EB
79202011-05-29 Eric Botcazou <ebotcazou@adacore.com>
7921
7922 PR target/48830
7923 * rtlanal.c (simplify_subreg_regno): Adjust comment.
7924
3f831b7d
JJ
79252011-05-29 Jakub Jelinek <jakub@redhat.com>
7926
7927 PR rtl-optimization/49095
7928 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
7929 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
7930
ee3ee488
RS
79312011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
7932
7933 PR target/43995
7934 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
7935 recurse_p argument. Only follow register copies if it is set,
7936 and prevent mips_find_pic_call_symbol from recursing.
7937 (mips_find_pic_call_symbol): Add a recurse_p argument.
7938 Pass it to mips_pic_call_symbol_from_set.
7939 (mips_annotate_pic_calls): Update accordingly.
7940
65f3dedb
RS
79412011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
7942
7943 * emit-rtl.c (try_split): Use a loop to search for
7944 NOTE_INSN_CALL_ARG_LOCATIONs.
7945
61e374ab
RG
79462011-05-29 Richard Guenther <rguenther@suse.de>
7947
7948 PR tree-optimization/49217
7949 * ipa-pure-const.c (propagate_pure_const): Fix typos.
7950
fac009a8
JH
79512011-05-28 Jan Hubicka <jh@suse.cz>
7952
7953 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
7954 length.
7955 (string_slot_free): Remove
7956 (create_output_block): Initialize obstack.
7957 (destroy_output_block): Free obstack.
7958 (lto_string_index): Add PERSISTENT parameter; do not duplicate
7959 the string unless it needs to be added into the hash.
7960 (lto_output_string_with_length): Add persistent attribute;
7961 handle NULL strings.
7962 (lto_output_string): Add PERSISTENT parameter.
7963 (output_string_cst, output_identifier): Simplify.
7964 (lto_output_location_bitpack): Update.
7965 (lto_output_builtin_tree): Update.
7966 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
7967 (lto_output_string, lto_output_string_with_length): Remove
7968 declarations; functions are static now.
fac009a8 7969
fa766006
JH
79702011-05-28 Jan Hubicka <jh@suse.cz>
7971
7972 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
7973 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
7974 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
7975 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
7976 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
7977 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
7978 unpack_ts_decl_with_vis_value_fields,
7979 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
7980 lto_get_builtin_tree): Use enum and variable length i/o.
7981 * basic-block.h (profile_status_d): Add PROFILE_LAST.
7982 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
7983 New functions.
7984 (bp_pack_enum, bp_unpack_enum): New macros.
7985
e092158b
RS
79862011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7987
7988 * genrecog.c: Remove redundant forward declarations.
7989
7ca2afa0
RS
79902011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7991
7992 * config.gcc: Deprecate mips*-*-openbsd*.
7993
a601a53a
RS
79942011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7995
7996 PR bootstrap/49195
7997 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
7998 for match_op_dup.
7999
fc64b448
AP
80002011-05-27 Andrew Pinski <pinskia@gmail.com>
8001
8002 PR middle-end/48981
8003 * gengtype.c (vec_prefix_type): New function.
8004 (note_def_vec): Use vec_prefix_type and change the length
8005 attribute to be based on the prefix.
8006 * vec.c: Include coretypes.h before vec.h.
8007 (struct vec_prefix): Remove.
8008 (vec_gc_p_reserve): Change the offsetof to sizeof.
8009 (vec_gc_p_reserve_exact): Likewise.
8010 (vec_heap_p_reserve): Likewise.
8011 (vec_heap_p_reserve_exact): Likewise.
8012 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
8013 (vec_stack_p_reserve): Change the offsetof to sizeof.
8014 (vec_stack_p_reserve_exact): Likewise.
8015 * vec.h (struct vec_prefix): New struct definition.
8016 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
8017 (VEC_T_GTY(T,B)): Likewise.
8018 (DEF_VEC_FUNC_P(T)): Use prefix field.
8019 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
8020 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
8021
ba869341
BS
80222011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8023
8024 PR tree-optimization/46728
8025 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
8026 (powi_as_mults): Add gimple_set_location.
8027 (build_and_insert_call): New.
8028 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
8029 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 8030
d296760d
AM
80312011-05-27 Alexander Monakov <amonakov@ispras.ru>
8032
8033 * doc/contrib.texi: Update copyright years.
8034 (Contributors): Add Zdenek Sojka.
8035
38e01f9e
NF
80362011-05-27 Nathan Froyd <froydnj@codesourcery.com>
8037
8038 * c-decl.c (c_push_function_context): Copy the current statement
8039 list stack.
8040 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
8041 (finish_struct): Call building_stmt_list_p instead of checking
8042 cur_stmt_list.
8043 * c-parser.c (c_parser_postfix_expression): Likewise.
8044 * c-typeck.c (c_end_compound_stmt): Likewise.
8045 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
8046 * tree-iterator.c (stmt_list_cache): Change to a VEC.
8047 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
8048 (free_stmt_list): Likewise.
8049 * tree.h (struct tree_statement_list): Include typed_tree instead
8050 of tree_common.
8051 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
8052 as TS_TYPED instead of TS_COMMON.
8053
8950516e 80542011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
66bd20e7 8055 Uros Bizjak <ubizjak@gmail.com>
8950516e
RO
8056
8057 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
8058 (HAVE_AS_IX86_TLSGDPTL): Define.
8059 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
8060 (HAVE_AS_IX86_TLSLDMPLT): Define.
8061 * configure: Regenerate.
8062 * config.in: Regenerate.
8063 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
8064 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
8065 TARGET_SUN_TLS, use @tlsgdplt or @plt.
8066 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
8067 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
8068 @tlsldmplt or @plt.
8069 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
8070
b0bd15f7
BS
80712011-05-27 Bernd Schmidt <bernds@codesourcery.com>
8072
8073 * sched-int.h (struct _haifa_deps_insn_data): New members cond
8074 and reverse_cond.
8075 (INSN_COND, INSN_REVERSE_COND): New macros.
8076 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
8077 once.
8078 (sched_get_condition_with_rev): Cache the results, and look them up
8079 if possible.
8080 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
8081 are clobbered by the current insn.
8082 * target.def (exposed_pipline): New sched data hook.
8083 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
8084 * doc/tm.texi: Regenerate.
8085
fa65a9cf
BS
80862011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8087
8088 PR tree-optimization/49170
8089 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
8090 sincos or cexp.
b0bd15f7 8091
c2299dfe
RG
80922011-05-27 Richard Guenther <rguenther@suse.de>
8093
8094 PR middle-end/49189
8095 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
8096 of comparisons.
8097
a95b23b4
BS
80982011-05-27 Bernd Schmidt <bernds@codesourcery.com>
8099
8100 * haifa-sched.c (sched_scan_info): Remove.
8101 (schedule_block): Call sched_extend_luids rather than sched_init_luids
8102 with NULL args.
8103 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
8104 Remove functions.
8105 (sched_scan): Remove.
8106 (sched_extend_luids): Renamed from luids_extend_insn and no longer
8107 static. All callers changed.
8108 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
8109 static. All callers changed.
8110 (sched_init_luids): Remove all arguments except the first. All
8111 callers changed. Don't use sched_scan.
8112 (haifa_init_h_i_d): Likewise.
8113 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
8114 manually rather than using sched_init_luids. Likewise with
8115 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
8116 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
8117 rather than sched_init_luids with NULL args.
8118 * sel-sched-ir.c (new_insns): Remove variable.
8119 (sched_scan): New static function, previously in haifa-sched.c. Remove
8120 all arguments but the first two; all callers changed.
8121 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
8122 rather than sched_init_luids.
8123 (sel_init_bbs): Remove second argument. All callers changed.
8124 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
8125 with NULL arguments.
8126 (create_insn_rtx_from_pattern): Likewise.
8127 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
8128 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
8129 (sched_init_insn_luid, sched_extend_luids): Declare.
8130 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
8131 declarations.
8132
f8f972fc
RB
81332011-05-27 Richard Guenther <rguenther@suse.de>
8134
8135 PR middle-end/49177
8136 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
8137 A CMP B ? (T) true : (T) false for non-integral types T again.
8138
51a9ed47
JH
81392011-05-27 Jan Hubicka <jh@suse.cz>
8140
8141 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
8142 so 0 means NULL string.
8143 (lto_output_string_with_length): ... here.
f8f972fc
RB
8144 (lto_output_string, output_string_cst, output_identifier): Update
8145 handling of NULL strings.
51a9ed47
JH
8146 (lto_output_location_bitpack): New function.
8147 (lto_output_location): Use it.
8148 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
8149 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
8150 len values.
8151 * lto-streamer-in.c (string_for_index): Break out from ...; offset
8152 values by 1.
491d8eed 8153 (input_string_internal): ... here;
f8f972fc
RB
8154 (input_string_cst, input_identifier, lto_input_string): Update handling
8155 of NULL strings.
51a9ed47
JH
8156 (lto_input_location_bitpack): New function
8157 (lto_input_location): Use it.
f8f972fc
RB
8158 (unpack_ts_type_common_value_fields): Pack align & alias in var len
8159 values.
51a9ed47
JH
8160 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
8161 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
8162 (bp_pack_value): Sanity check the value range.
8163 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
8164 New functions.
8165 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
8166 New functions.
8167
66bd20e7 81682011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
dc38fc2e
HS
8169
8170 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
8171 call_arg_location instructions down the floor.
8172
574e418a
VM
81732011-05-26 Vladimir Makarov <vmakarov@redhat.com>
8174
8175 PR rtl-optimization/49154
8176 * ira.c (setup_pressure_classes): Process class without sublcasses
8177 as a candidate for pressure classes.
8178
6a1a787e
RS
81792011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
8180
8181 PR rtl-optimization/48575
8182 * genrecog.c (position_type): New enum.
8183 (position): New structure.
8184 (decision): Use position structure instead of a string.
8185 (root_pos, peep2_insn_pos_list): New variables.
8186 (next_position, compare_positions): New functions.
8187 (new_decision): Use position structures instead of strings.
8188 (maybe_both_true): Likewise.
8189 (change_state): Likewise.
8190 (write_tree): Likewise.
8191 (make_insn_sequence): Likewise.
8192
92e948a8
NF
81932011-05-26 Nathan Froyd <froydnj@codesourcery.com>
8194
8195 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
8196 TS_BASE instead of TS_COMMON.
8197 (find_decls_types_r): Check for TS_TYPED structure before looking at
8198 TREE_TYPE.
8199 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
8200 Add chain field.
8201 (BLOCK_CHAIN): Use new chain field.
8202
66bd20e7 82032011-05-26 Pat Haugen <pthaugen@us.ibm.com>
c61e40d3
PH
8204
8205 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
8206 moves expensive on Power7 also.
8207
1f498652
RG
82082011-05-26 Richard Guenther <rguenther@suse.de>
8209
8210 * fold-const.c (fold_unary_loc): Remove bogus code.
8211
a2fc3e63
NF
82122011-05-26 Nathan Froyd <froydnj@codesourcery.com>
8213
8214 * tree.h (struct tree_identifier): Inherit from tree_typed, not
8215 tree_common.
8216 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
8217 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
8218 TS_BASE instead of TS_COMMON.
8219 * varasm.c (assemble_name): Remove assert.
8220
d11bf18f
BS
82212011-05-26 Bernd Schmidt <bernds@codesourcery.com>
8222
8223 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
8224 substituted first.
8225 * libgcc-std.ver: Delete file.
8226
ac8e1875
RG
82272011-05-26 Richard Guenther <rguenther@suse.de>
8228
8229 PR tree-optimization/48702
8230 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
8231 only when we know the base address is within bounds.
8232 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
8233 assume the base address of TARGET_MEM_REFs is in bounds.
8234
7e32e652
RO
82352011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8236
8237 PR target/49099
8238 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
8239 declaration in TARGET_SOLARIS.
8240
66bd20e7 82412011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
43660e0b
HS
8242
8243 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 8244 The instruction is then expanded explicitly.
43660e0b
HS
8245 (supported_compare): Callable instruction.
8246 (compare): Likewise.
8247
1537737f
JJ
82482011-05-26 Jakub Jelinek <jakub@redhat.com>
8249
8250 PR c++/49165
8251 * gimplify.c (shortcut_cond_r): Don't special case
8252 COND_EXPRs if they have void type on one of their arms.
8253
7b1ac803
BS
82542011-05-26 Bernd Schmidt <bernds@codesourcery.com>
8255
8256 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
8257 to reduce duplication, and to achieve a slightly more logical order
8258 of operations.
8259
1aa9438f
JJ
82602011-05-26 Jakub Jelinek <jakub@redhat.com>
8261
8262 PR tree-optimization/49161
8263 * tree-vrp.c (struct case_info): New type.
8264 (compare_case_labels): Sort case_info structs instead of
8265 trees, and not primarily by CASE_LABEL uids but by
8266 label_for_block indexes.
8267 (find_switch_asserts): Put case labels into struct case_info
8268 array instead of TREE_VEC, adjust sorting, compare label_for_block
8269 values instead of CASE_LABELs.
8270
50fed7bf
RR
82712011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8272
8273 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
8274 ("orndi3_neon"): Likewise.
8275 ("bic<mode>3_neon"): Likewise.
8276
48df3fa6
IR
82772011-05-26 Ira Rosen <ira.rosen@linaro.org>
8278
8279 PR tree-optimization/49038
8280 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
8281 Ensure at least one epilogue iteration if required by data
8282 accesses with gaps.
8283 * tree-vectorizer.h (struct _loop_vec_info): Add new field
8284 to mark loops that require peeling for gaps.
8285 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
8286 (vect_get_known_peeling_cost): Take peeling for gaps into
8287 account.
8288 (vect_transform_loop): Generate epilogue if required by data
8289 access with gaps.
8290 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
8291 loop as requiring an epilogue if there are gaps in the end of
8292 the strided group.
8293
53febcba
ILT
82942011-05-25 Ian Lance Taylor <iant@google.com>
8295
8296 * godump.c (go_format_type): Output the first field with a usable
8297 Go type, if any.
8298
dbbc4d4c
ILT
82992011-05-25 Ian Lance Taylor <iant@google.com>
8300
8301 * godump.c (go_format_type): Check for invalid type names, pointer
8302 target types, and struct field types.
8303
f03a5402
JM
83042011-05-25 Jason Merrill <jason@redhat.com>
8305
8306 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
8307
c497c412
UB
83082011-05-25 Uros Bizjak <ubizjak@gmail.com>
8309
8310 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
8311
e470affe
L
83122011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8313
8314 * config/i386/i386.md (*movqi_extv_1)): Put back
8315 "register_operand" check in "type" calculation.
8316 (*movqi_extzv_2): Likewise.
8317
6c81b2bc
L
83182011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8319
c497c412 8320 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 8321
0c007eb2
BS
83222011-05-25 Bernd Schmidt <bernds@codesourcery.com>
8323
8324 PR bootstrap/49160
8325 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
8326 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
8327 __divxc3, __divtc3): Wrap definitions in #ifndef.
8328
521ca78e
L
83292011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8330
8331 PR target/49142
8332 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
8333 "register_operand" check and replace q_regs_operand with
8334 QIreg_operand in "type" calculation.
8335 (*movqi_extv_1): Likewise.
8336 (*movqi_extzv_2_rex64): Likewise.
8337 (*movqi_extzv_2): Likewise.
8338
8339 * config/i386/predicates.md (QIreg_operand): New.
8340
29f8b844
RG
83412011-05-25 Richard Guenther <rguenther@suse.de>
8342
8343 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
8344 type-based offset disambiguation, streamline MEM_REF and
8345 TARGET_MEM_REF handling.
8346
74838de3
L
83472011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8348
8349 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
8350 (bdesc_special_args): Add pause intrinsic.
8351
8352 * config/i386/i386.md (UNSPEC_PAUSE): New.
8353 (pause): Likewise.
8354 (*pause): Likewise.
8355 * config/i386/ia32intrin.h (__pause): Likewise.
8356
8357 * doc/extend.texi (X86 Built-in Functions): Add documentation for
8358 pause intrinsic.
8359
d24ad7d6
BS
83602011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8361
8362 PR tree-optimization/46728
8363 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
8364 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 8365
d9f8303f
NF
83662011-05-25 Nathan Froyd <froydnj@codesourcery.com>
8367
8368 * tree.h (struct tree_exp): Inherit from struct tree_typed.
8369 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
8370 instead of TS_COMMON.
8371
cdbf4541
BS
83722011-05-25 Bernd Schmidt <bernds@codesourcery.com>
8373
8374 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
8375 LIBGCC2_GNU_PREFIX is defined.
8376 (__N): New macro.
8377 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
8378 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
8379 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
8380 __clz_tab): Define using __N.
8381 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
8382 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
8383 * target.def (libfunc_gnu_prefix): New hook.
8384 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
8385 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
8386 * doc/tm.texi: Regenerate.
8387 * system.h (LIBGCC2_GNU_PREFIX): Poison.
8388 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
8389 account.
8390 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
8391 (init_optabs): Likewise for the bswap libfuncs.
8392 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
8393 and divide.
8394 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
8395 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
8396 * libgcc-std.ver: Remove.
8397 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
8398 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
8399 libgcc-std.ver.
8400 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8401 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
8402 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
8403 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
8404 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
8405 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8406 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8407 * config/fixed-bit.h (FIXED_OP): Define differently depending on
8408 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
8409 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
8410
f242c0a5
JH
84112011-05-25 Jan Hubicka <jh@suse.cz>
8412
8413 * lto-streamer-out.c (output_record_start): Use lto_output_enum
8414 (lto_output_tree): Use output_record_start.
8415 * lto-streamer-in.c (input_record_start): Use lto_input_enum
8416 (lto_get_pickled_tree): Use input_record_start.
8417 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
8418 (lto_value_range_error): New function.
8419 * lto-streamer.h (lto_value_range_error): Declare.
8420 (lto_output_int_in_range, lto_input_int_in_range): New functions.
8421 (lto_output_enum, lto_input_enum): New macros.
8422
a11e0df4
EB
84232011-05-25 Eric Botcazou <ebotcazou@adacore.com>
8424
8425 * common.opt (flag_stack_usage_info): New variable.
8426 (-Wstack-usage): New option.
8427 * doc/invoke.texi (Warning options): Document -Wstack-usage.
8428 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
8429 <OPT_fstack_usage>: Likewise.
8430 * toplev.c (output_stack_usage): Handle -Wstack-usage.
8431 * calls.c (expand_call): Test flag_stack_usage_info variable instead
8432 of flag_stack_usage.
8433 (emit_library_call_value_1): Likewise.
8434 * explow.c (allocate_dynamic_stack_space): Likewise.
8435 * function.c (instantiate_virtual_regs ): Likewise.
8436 (prepare_function_start): Likewise.
8437 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
8438 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
8439 * config/arm/arm.c (arm_expand_prologue): Likewise.
8440 (thumb1_expand_prologue): Likewise.
8441 * config/avr/avr.c (expand_prologue): Likewise.
8442 * config/i386/i386.c (ix86_expand_prologue): Likewise.
8443 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8444 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
8445 * config/mips/mips.c (mips_expand_prologue): Likewise.
8446 * config/pa/pa.c (hppa_expand_prologue): Likewise.
8447 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8448 * config/s390/s390.c (s390_emit_prologue): Likewise.
8449 * config/sh/sh.c (sh_expand_prologue): Likewise.
8450 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
8451 * config/spu/spu.c (spu_expand_prologue): Likewise.
8452
e7cfe241
RG
84532011-05-25 Richard Guenther <rguenther@suse.de>
8454
8455 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
8456 (gimple_canonical_types_compatible_p): Likewise.
8457
c5235f4c
JH
84582011-05-25 Jan Hubicka <jh@suse.cz>
8459
8460 PR middle-end/49062
8461 * ipa.c (function_and_variable_visibility): Only add to same
8462 comdat group list if DECL_ONE_ONLY.
8463
8242a0f6
AB
84642011-05-25 Andrey Belevantsev <abel@ispras.ru>
8465
8466 PR rtl-optimization/49014
8467 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
8468
642a011d
JJ
84692011-05-25 Jakub Jelinek <jakub@redhat.com>
8470
8471 PR target/49128
8472 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
8473
30a435d8
VM
84742011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8475
8476 PR rtl-optimization/48757
8477 * ira-build.c (loop_with_eh_edge_p): Rename to
8478 loop_with_complex_edge_p, check edges on complexity, make function
8479 conditional.
8480 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
8481 conditional.
8482
24d1bbc7
EB
84832011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8484
8485 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
8486 force flag_ira_share_save_slots to 0.
8487
65773087
EB
84882011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8489
8490 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
8491 (vt_initialize): Set PROLOGUE_BB unconditionally.
8492 Add block comment about CFA_BASE_RTX machinery.
8493 Reset FP_CFA_OFFSET to -1 on all invalid paths.
8494 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
8495
4e26ba90
NP
84962011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
8497
8498 PR objc/48187
8499 * c-parser.c (c_parser_objc_class_instance_variables): More robust
8500 parsing of syntax error in ObjC instance variable lists. In
8501 particular, avoid an infinite loop if there is a stray ']'.
8502 Updated error message.
8503
936fd13c
ILT
85042011-05-24 Ian Lance Taylor <iant@google.com>
8505
8506 * godump.c (go_define): Don't accept a string immediately after
8507 another operand.
8508
f17333e3
ILT
85092011-05-24 Ian Lance Taylor <iant@google.com>
8510
8511 * godump.c (struct godump_container): Add invalid_hash field.
8512 (go_format_type): Return false if type is found in invalid_hash.
8513 (go_output_typedef): Add invalid type to invalid_hash.
8514 (go_finish): Create and delete invalid_hash.
8515
d24ad7d6 85162011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 8517
78be79d5
BS
8518 PR tree-optimization/46728
8519 * tree-ssa-math-opts.c (powi_table): New.
8520 (powi_lookup_cost): New.
8521 (powi_cost): New.
8522 (powi_as_mults_1): New.
8523 (powi_as_mults): New.
8524 (gimple_expand_builtin_powi): New.
8525 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
8526 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 8527
caee412b
RO
85282011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8529
8530 PR target/3746
8531 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
8532 mips-tdump native.
8533 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
8534 * mips-tdump.c: Likewise.
8535
5eed4f27
L
85362011-05-24 H.J. Lu <hongjiu.lu@intel.com>
8537
8538 PR target/49128
8539 * config/i386/driver-i386.c (host_detect_local_cpu): Always
8540 add -mno-XXX. Handle FMA.
8541
8c5fdaae
VM
85422011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8543
8544 PR rtl-optimization/48633
8545 * ira-build.c (loop_with_eh_edge_p): New function.
8546 (mark_loops_for_removal): Use it.
8547
85482011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
8549
8550 PR rtl-optimization/48971
8551 * ira.c (setup_pressure_classes): Don't check register move cost
8552 for classes with one registers. Don't add pressure class if there
8553 is a pressure class with the same available hard registers.
8554 Check contains_reg_of_mode. Fix a typo in collecting
8555 temp_hard_regset. Ignore hard registers not belonging to a class.
8556
df1f7315
UB
85572011-05-24 Uros Bizjak <ubizjak@gmail.com>
8558
8559 PR target/49133
8560 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
8561
ee0cb37c
EB
85622011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8563 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8564
8565 PR gcov-profile/48845
8566 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
8567
6a20ce76
RG
85682011-05-24 Richard Guenther <rguenther@suse.de>
8569
8570 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
8571 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
8572 (gimple_types_compatible_p_1): Adjust.
8573 (iterative_hash_canonical_type): Do not bother about complete vs.
8574 incomplete types.
8575 (gimple_canonical_types_compatible_p): Likewise.
8576
2fcb858c
RO
85772011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8578
8579 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
8580
96d91dcf
RG
85812011-05-24 Richard Guenther <rguenther@suse.de>
8582
8583 PR bootstrap/49078
8584 * gimple.c (gimple_register_canonical_type): Revert
8585 previous change.
8586 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
8587 does not for a tree for the case where it matters. Cache
8588 pointer-type alias-sets.
8589
1ed1641d
JM
85902011-05-24 Joseph Myers <joseph@codesourcery.com>
8591
8592 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
8593 (OBJS): Remove options.o, opts-common.o and prefix.o.
8594 (OBJS-libcommon-target): New.
8595 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
8596 (BACKEND): Include libcommon-target.a.
8597 (MOSTLYCLEANFILES): Include libcommon-target.a.
8598 (libcommon-target.a): New.
8599 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
8600 prefix.o.
8601
57dfdff0
JM
86022011-05-23 Joseph Myers <joseph@codesourcery.com>
8603
8604 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
8605 parts of output shared with the driver.
8606 * optc-gen.awk: Don't generate parts of output not shared with the
8607 driver.
8608 * opth-gen.awk: Remove GCC_DRIVER conditionals.
8609 * doc/options.texi (SourcerInclude): Mention options-save.c.
8610 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
8611 (OBJS): Add options-save.o.
8612 (options-save.c, options-save.o): New.
8613 (options.o): Update dependencies.
8614 (gcc-options.o): Remove.
8615 (mostlyclean): Remove options-save.c.
8616
0e0d82a7
JJ
86172011-05-23 Jakub Jelinek <jakub@redhat.com>
8618
9166988f
JJ
8619 PR debug/49032
8620 * dbxout.c: Include cgraph.h.
8621 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
8622 and without value expr, return NULL if no varpool node exists for
8623 it or if it is not needed.
8624 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
8625
0e0d82a7
JJ
8626 PR c/49120
8627 * c-decl.c (start_decl): Convert expr to void_type_node.
8628
65712d5c
RS
86292011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
8630
8631 PR rtl-optimization/48826
8632 * emit-rtl.c (try_split): When splitting a call that is followed
8633 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
8634
9025085e
JJ
86352011-05-23 Jakub Jelinek <jakub@redhat.com>
8636
8637 * cfgexpand.c (expand_debug_expr): For unused non-addressable
8638 parameters passed in memory prefer using DECL_INCOMING_RTL over
8639 the pseudos it will be copied into.
8640
34a061be
L
86412011-05-23 H.J. Lu <hongjiu.lu@intel.com>
8642
8643 PR target/47315
8644 * config/i386/i386.c (ix86_option_override_internal): Save the
8645 initial options after checking vzeroupper.
8646
c375a3a4
DL
86472011-05-23 David Li <davidxl@google.com>
8648
8649 PR tree-optimization/48988
8650 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
8651 Initialize has_valid_pred for each pred chain.
8652
e1caba18
RG
86532011-05-23 Richard Guenther <rguenther@suse.de>
8654
8655 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
8656 (iterative_hash_gimple_type): Always hash type names.
8657
dde05067
NF
86582011-05-23 Nathan Froyd <froydnj@codesourcery.com>
8659
8660 * c-typeck.c (build_function_call_vec): Tweak call to
8661 check_function_arguments.
8662
094f6ab3
RG
86632011-05-23 Richard Guenther <rguenther@suse.de>
8664
8665 PR tree-optimization/49115
8666 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
8667 is not necessarily carried out, do not claim it kills the ref.
8668 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
8669
9a9822e1
RG
86702011-05-23 Richard Guenther <rguenther@suse.de>
8671
8672 PR middle-end/15419
8673 * builtins.c (fold_builtin_memory_op): Be less restrictive about
8674 what pointer types we accept for folding.
8675
c8028650
RO
86762011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8677
8678 * gthr-gnat.c: Remove.
8679 * gthr-gnat.h: Remove.
8680 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
8681 * config/t-freebsd (LIB2ADDEH): Likewise.
8682 * config/t-linux (LIB2ADDEH): Likewise.
8683 * config/t-sol2 (LIB2ADDEH): Likewise.
8684 * config/ia64/t-vms (LIB2ADDEH): Likewise.
8685 * configure.ac (target_thread_file): Remove gnat handling.
8686 * configure: Regenerate.
8687 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
8688
15882fe9
TG
86892011-05-23 Tristan Gingold <gingold@adacore.com>
8690 Eric Botcazou <ebotcazou@adacore.com>
8691
8692 * gcov.c (create_file_names): If no object directory is specified,
8693 keep the directory of the file.
8694
da90c957
RO
86952011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8696
8697 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
8698 * configure: Regenerate.
8699
7bba408b
JJ
87002011-05-23 Jakub Jelinek <jakub@redhat.com>
8701
8702 PR middle-end/48973
8703 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
8704 failed and the comparison has a single bit signed type, use
8705 constm1_rtx instead of const1_rtx for true value.
8706 (do_store_flag): If ops->type is single bit signed type, disable
8707 signel bit test optimization and pass -1 instead of 1 as last
8708 parameter to emit_store_flag_force.
8709
bc69f7ff
TV
87102011-05-23 Tom de Vries <tom@codesourcery.com>
8711
8712 PR target/45098
8713 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
8714 function.
8715 (infer_loop_bounds_from_undefined): Use new function.
8716
29cedf8e
RS
87172011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
8718
8719 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
8720 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
8721 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
8722 and -O0 otherwise.
8723 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
8724
afe8b6ec
EB
87252011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8726
8727 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
8728 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
8729 returns true.
8730
872dab53
RS
87312011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
8732
8733 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
8734
145f6c5b
EB
87352011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8736
8737 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
8738 UNSPEC_MOVE_PIC pattern.
8739
8ac79835
EB
87402011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8741
8742 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
8743 (sparc-*-rtems*): Likewise.
8744 (sparc64-*-elf*): Likewise.
8745 (sparc64-*-rtems*): Likewise.
8746 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
8747 * config/sparc/t-crtin: New file.
8748 * config/sparc/t-sol2 (crti.o): Delete rule.
8749 (crtn.o): Likewise.
8750 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
8751 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
8752 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
8753 (ENDFILE_SPEC): Add crtn.o.
8754
5fb43dd8
TV
87552011-05-22 Tom de Vries <tom@codesourcery.com>
8756
8757 PR middle-end/48689
8758 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
8759 CODE_CONTAINS_STRUCT (TS_COMMON).
8760
ccb1b17b
JJ
87612011-05-22 Jakub Jelinek <jakub@redhat.com>
8762
8763 PR middle-end/49029
8764 * expmed.c (extract_fixed_bit_field): Test whether target can be used
8765 only after deciding which mode to use.
8766
50ad7db2
TV
87672011-05-22 Tom de Vries <tom@codesourcery.com>
8768
8769 PR target/45098
dc0a3366 8770 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
8771 for call to get_shiftadd_cost.
8772
ef230b38
UB
87732011-05-22 Uros Bizjak <ubizjak@gmail.com>
8774
8775 PR target/49104
8776 * config/i386/cpuid.h (bit_MMXEXT): New define.
8777
15f072f9
NC
87782011-05-22 Nick Clifton <nickc@redhat.com>
8779
8780 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
8781 initialisation of non-existant args[2] element. Use args[] array
8782 not arg[] array to pass arguments to build_function_type_list.
8783
e38fdc94
IR
87842011-05-22 Ira Rosen <ira.rosen@linaro.org>
8785
8786 PR tree-optimization/49087
ef230b38 8787 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 8788
5b018c65
JM
87892011-05-21 Jason Merrill <jason@redhat.com>
8790
8791 PR c++/49092
8792 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
8793 static storage duration.
8794
abd9a770
EB
87952011-05-21 Eric Botcazou <ebotcazou@adacore.com>
8796
8797 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
8798 frame pointer.
8799
bd9a3248
EB
88002011-05-21 Eric Botcazou <ebotcazou@adacore.com>
8801
8802 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
8803 false if there are call-saved registers here...
8804 (sparc_can_use_return_insn_p): ...but here instead.
8805 (save_or_restore_regs): Fix thinko.
8806 (sparc_expand_prologue): Use current_function_is_leaf.
8807 (sparc_frame_pointer_required): Likewise.
8808
a5dfec9a
NC
88092011-05-21 Nick Clifton <nickc@redhat.com>
8810
8811 PR target/49098
8812 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
8813
555c3771
NP
88142011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
8815
8816 * gengtype.c (walk_type): Implemented "atomic" GTY option.
8817 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
8818
86fa5de4
JM
88192011-05-21 Joseph Myers <joseph@codesourcery.com>
8820
8821 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
8822 * optc-gen.awk: Move common code to opt-read.awk.
8823 * opth-gen.awk: Likewise.
ef230b38 8824 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 8825
bce33ab2
NF
88262011-05-20 Nathan Froyd <froydnj@codesourcery.com>
8827
8828 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
8829
e6450c11
TV
88302011-05-20 Tom de Vries <tom@codesourcery.com>
8831
8832 PR target/45098
8833 * tree-ssa-loop-ivopts.c: Include expmed.h.
8834 (get_shiftadd_cost): New function.
8835 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
8836
0e8b84ec
JJ
88372011-05-20 Jakub Jelinek <jakub@redhat.com>
8838
8839 PR bootstrap/49086
8840 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
8841 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
8842
946bdf67
JM
88432011-05-20 Joseph Myers <joseph@codesourcery.com>
8844
8845 * Makefile.in: Update comment referring to $(OBJS-common).
8846
c53aafdf
ILT
88472011-05-20 Ian Lance Taylor <iant@google.com>
8848
8849 * godump.c (go_output_typedef): Put enum constants in the macro
8850 hash table to avoid duplicate Go const definitions.
8851
2691e6d7
JM
88522011-05-20 Joseph Myers <joseph@codesourcery.com>
8853
8854 * Makefile.in (LIBDEPS): Add libcommon.a.
8855 (LIBS): Likewise.
8856 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
8857 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
8858 pretty-print.o and version.o.
8859 (OBJS-libcommon): New.
8860 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
8861 (BACKEND): Add libcommon.a.
8862 (MOSTLYCLEANFILES): Likewise.
8863 (libcommon.a): New.
8864 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
8865 (cpp$(exeext)): Likewise.
8866 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
8867 pretty-print.o and input.o.
8868 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
8869 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
8870 (errors.o): Remove.
8871 (mips-tfile): Don't explicitly use version.o.
8872 (mips-tdump): Likewise.
8873 (gcov.o): Depend on $(DIAGNOSTIC_H).
8874 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
8875 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
8876 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
8877 * gcov-dump.c: Include intl.h and diagnostic.h.
8878 (main): Initialize diagnostics.
8879 * gcov.c: Include diagnostic.h.
8880 (fnotice): Remove.
8881 (main): Initialize diagnostics.
8882 * lto-wrapper.c: Include diagnostic.h.
8883 (main): Initialize diagnostics.
8884
252b3e8c
MM
88852011-05-20 Michael Matz <matz@suse.de>
8886
8887 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
8888
2ee36ba6
MM
88892011-05-20 Michael Matz <matz@suse.de>
8890 Richard Guenther <rguenther@suse.de>
8891
8892 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
8893 use lto_streamer_cache_append directly instead of returning a VEC.
8894 (preload_common_node): Remove.
8895 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
8896 track seen nodes.
8897 (lto_streamer_cache_create): Call lto_preload_common_nodes.
8898
90ff582f
RG
88992011-05-20 Richard Guenther <rguenther@suse.de>
8900
8901 PR tree-optimization/49079
8902 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
8903 MEM_REFs correctly for the trailing array access detection.
8904 Special case constants the same way as decls for overall size
8905 constraining.
8906
3cda91d8
UB
89072011-05-20 Uros Bizjak <ubizjak@gmail.com>
8908
8909 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
8910 argument expansion.
8911
6c66f733
JJ
89122011-05-20 Jakub Jelinek <jakub@redhat.com>
8913
8914 PR tree-optimization/49073
3cda91d8
UB
8915 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
8916 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
8917 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
8918
0ea80a16
RG
89192011-05-20 Richard Guenther <rguenther@suse.de>
8920
8921 PR middle-end/48849
8922 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
8923 of pointer types the same way the middle-end does.
8924
fb291a1e
RG
89252011-05-20 Richard Guenther <rguenther@suse.de>
8926
3cda91d8
UB
8927 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
8928 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 8929
37cb25ed
QN
89302011-05-19 Quentin Neill <quentin.neill@amd.com>
8931
8932 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
8933 (fma4_fmaddsub): Likewise
8934
a30726a4
JH
89352011-05-19 Jan Hubicka <jh@suse.cz>
8936
8937 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
8938 (GIMPLE_TYPE_PAIR_SIZE): New macro.
8939 (type_pair_cache): New static var.
8940 (lookup_type_pair): Use fixed sized custom hash; make inline.
8941 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
8942 calls of lookup_type_pair.
8943 (print_gimple_types_stats): Remove cache stats.
8944 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
8945 and gtc_ob.
8946
0955cf61
UB
89472011-05-19 Uros Bizjak <ubizjak@gmail.com>
8948
8949 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
8950 when TARGET_RDRND is active.
8951 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
8952 Generate dummy SImode target register when target is NULL.
8953
12d844c8
JM
89542011-05-19 Joseph Myers <joseph@codesourcery.com>
8955
8956 * config/arm/arm-fpus.def: New.
8957 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
8958 arm-fpus.def.
8959 * config/arm/arm-tables.opt: Regenerate.
8960 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
8961 (arm_option_override): Don't decode FPU name to string here.
8962 * config/arm/arm.opt (mfpu=): Use Enum.
8963 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
8964 Update dependencies.
8965
9e350e99
JM
89662011-05-19 Joseph Myers <joseph@codesourcery.com>
8967
8968 * collect2.c: Include diagnostic.h.
8969 (fatal_perror, fatal, error, fancy_abort): Remove.
8970 (main): Set progname. Call xmalloc_set_program_name and
8971 diagnostic_initialize.
8972 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
8973 scan_libraries, resolve_lib_name): Call fatal_error instead of
8974 fatal and fatal_perror.
8975 * collect2.h (error, fatal, fatal_perror): Don't declare.
8976 * tlink.c: Include diagnostic-core.h.
8977 (recompile_files): Call fatal_error instead of fatal_perror.
8978 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
8979 pretty-print.o and input.o.
8980 (collect2.o, tlink.o): Update dependencies.
8981
86ff4081
RO
89822011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8983
8984 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
8985
2ca48caa
RO
89862011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8987
8988 PR target/40483
8989 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
8990 COMDAT group syntax, both SPARC and x86 variants.
8991 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
8992 * configure: Regenerate.
8993 * config/sol2.h (TARGET_SOLARIS): Define.
8994 (PUSHSECTION_FORMAT): Remove.
8995 (SECTION_NAME_FORMAT): Define.
8996 * config/sol2.c: Include hashtab.h.
8997 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
8998 expansion, using SECTION_NAME_FORMAT.
8999 (solaris_comdat_htab): New variable.
9000 (struct comdat_entry): Define.
9001 (comdat_hash): New function.
9002 (comdat_eq): New function.
9003 (solaris_elf_asm_comdat_section): New function.
9004 (solaris_define_comdat_signature): New function.
9005 (solaris_code_end): New function.
9006 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
9007 (solaris_code_end): Declare.
9008 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
9009 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
9010 solaris_code_end.
9011 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
9012 Remove ATTRIBUTE_UNUSED.
9013 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
9014 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 9015 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
9016 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
9017 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
9018 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
9019 (PUSHSECTION_FORMAT): Remove.
9020 (SECTION_NAME_FORMAT): Redefine.
9021
da5fb469
KT
90222011-05-19 Kai Tietz <ktietz@redhat.com>
9023
9024 * tree-cfg.c (verify_gimple_assign_binary): Barf on
9025 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
9026 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
9027
1651e703 90282011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
9029 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9030
9031 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
9032
e497b9bd
RG
90332011-05-19 Richard Guenther <rguenther@suse.de>
9034
9035 PR middle-end/48985
9036 * tree-object-size.c (addr_object_size): If the pointed-to
9037 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
9038
31b3ca64
RG
90392011-05-19 Richard Guenther <rguenther@suse.de>
9040
9041 * gimple.c (gimple_types_compatible_p_1): Compare names of
9042 the types themselves.
9043 (iterative_hash_gimple_type): And hash them that way.
9044 (gimple_register_type_1): If we register a main variant properly
9045 initialize the leader to ourselves.
9046
bb8d292d
TV
90472011-05-19 Tom de Vries <tom@codesourcery.com>
9048
9049 PR target/45098
9050 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
9051 get_loop_invariant_expr_id.
9052 (get_loop_invariant_expr_id): Use get_expr_id.
9053 (parm_decl_cost): New function.
9054 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
9055 Improve bound cost estimation. Use different inv_expr_id for elim and
9056 express cases.
9057
a53c5024
TV
90582011-05-19 Tom de Vries <tom@codesourcery.com>
9059
9060 PR target/45098
9061 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
9062 cost_base.cost == 0.
9063
31f9eb59
L
90642011-05-18 H.J. Lu <hongjiu.lu@intel.com>
9065
9066 PR target/49002
66bd20e7
EB
9067 * config/i386/sse.md
9068 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
9069 load cast.
31f9eb59 9070
681056ae
JJ
90712011-05-18 Jakub Jelinek <jakub@redhat.com>
9072
9073 PR tree-optimization/49039
9074 * tree-vrp.c (extract_range_from_binary_expr): For
9075 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
9076 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
9077
b5ee6752
TV
90782011-05-18 Tom de Vries <tom@codesourcery.com>
9079
9080 PR target/45098
9081 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
9082
0bda47a3
UB
90832011-05-18 Uros Bizjak <ubizjak@gmail.com>
9084
9085 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
9086 (*tls_global_dynamic_64): Ditto.
9087 (*tls_local_dynamic_base_32_gnu): Ditto.
9088 (*tls_local_dynamic_base_64): Ditto.
9089 (tls_initial_exec_64_sun): Ditto.
9090
033b0805
SH
90912011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
9092
9093 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
9094 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
9095 bf592-none.
9096 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
9097 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
9098 * config/bfin/bfin.c (bfin_cpus): Add bf592.
9099 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 9100 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
9101 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
9102 * config/bfin/elf.h (LIB_SPEC): Add bf592.
9103
ba163417
JM
91042011-05-18 Joseph Myers <joseph@codesourcery.com>
9105
9106 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 9107 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
9108 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
9109 target_thread_pointer, arm_structure_size_boundary, struct
9110 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
9111 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
9112 (arm_option_override) Don't process most enumerated option values here.
9113 Don't process target_fpe_name here. Work with integer not string for
9114 structure size boundary; use separate diagnostics for each case.
ba163417
JM
9115 * config/arm/arm.h (enum float_abi_type, enum
9116 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
9117 to arm-opts.h.
9118 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
9119 arm_structure_size_boundary): Remove.
9120 * config/arm/arm.opt (mabi=): Use Enum and Init.
9121 (arm_abi_type): New Enum and EnumValue entries.
9122 (mfloat-abi=): Use Enum and Init.
9123 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 9124 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
9125 (mfp16-format=): Use Enum and Init.
9126 (arm_fp16_format_type): New Enum and EnumValue entries.
9127 (mstructure-size-boundary=): Use UInteger and Init.
9128 (mtp=): Use Enum and Init.
9129 (arm_tp_type): New Enum and EnumValue entries.
9130
179184e3
RG
91312011-05-18 Richard Guenther <rguenther@suse.de>
9132
9133 PR tree-optimization/49018
9134 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
9135 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
9136 gimple_has_side_effects.
9137
93b2a207
RG
91382011-05-18 Richard Guenther <rguenther@suse.de>
9139
9140 * gimple.c (gimple_register_type_1): New function, split out from ...
9141 (gimple_register_type): ... here. Avoid infinite recursion.
9142
b010117a
IR
91432011-05-18 Ira Rosen <ira.rosen@linaro.org>
9144
9145 PR tree-optimization/41881
9146 * tree-vectorizer.h (struct _loop_vec_info): Add new field
9147 reduction_chains along with a macro for its access.
9148 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
9149 (destroy_loop_vec_info): Free reduction chains.
9150 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
9151 (vect_is_slp_reduction): New function.
9152 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
9153 (vect_create_epilog_for_reduction): Support SLP reduction chains.
9154 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
9155 definition types for reduction chains.
9156 (vect_supported_load_permutation_p): Don't allow permutations for
9157 reduction chains.
9158 (vect_analyze_slp_instance): Support reduction chains.
9159 (vect_analyze_slp): Try to build SLP instance from reduction chains.
9160 (vect_get_constant_vectors): Handle reduction chains.
9161 (vect_schedule_slp_instance): Mark the first statement of the
9162 reduction chain as reduction.
9163
e14c1050
IR
91642011-05-18 Ira Rosen <ira.rosen@linaro.org>
9165
9166 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
9167 names for group elements access.
9168 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
9169 reduction chains as well. Remove data reference and interleaving
9170 related words from the fields names.
9171 * tree-vect-loop.c (vect_transform_loop): Use new names for group
9172 elements access.
9173 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
9174 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
9175 vect_update_interleaving_chain, vect_same_range_drs,
9176 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
9177 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
9178 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
9179 vect_analyze_group_access, vect_analyze_data_ref_access,
9180 vect_create_data_ref_ptr, vect_transform_strided_load,
9181 vect_record_strided_load_vectors): Likewise.
9182 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
9183 vect_model_load_cost, vectorizable_store, vectorizable_load,
9184 vect_remove_stores, new_stmt_vec_info): Likewise.
9185 * tree-vect-slp.c (vect_build_slp_tree,
9186 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
9187
51c213f7
RG
91882011-05-18 Richard Guenther <rguenther@suse.de>
9189
9190 PR middle-end/48989
9191 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
9192 operand verification.
9193 (verify_gimple_assign_binary): Likewise.
9194 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
9195 to non-1-precision BOOLEAN_TYPEs.
9196
8f5e5434
TV
91972011-05-18 Tom de Vries <tom@codesourcery.com>
9198
9199 PR target/45098
9200 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
9201
116bc3a4
JJ
92022011-05-18 Jakub Jelinek <jakub@redhat.com>
9203
9204 PR tree-optimization/49000
9205 * tree-ssa.c (execute_update_addresses_taken): Call
9206 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
9207 be rewritten and decl has been marked for renaming, reset
9208 the debug stmt.
9209
26a8964c
JM
92102011-05-17 Joseph Myers <joseph@codesourcery.com>
9211
9212 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
9213 enum_opts_set when testing if attributes have set -mfpmath=.
9214
82bd45d7
RS
92152011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
9216
9217 * config/mips/mips.c (mips_handle_option): Remove unused variable.
9218
267ffce3
UB
92192011-05-17 Uros Bizjak <ubizjak@gmail.com>
9220
9221 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
9222 info->entry with 0
9223 * tree-inline.c (maybe_inline_call_in_expr): Initialize
9224 id.transform_lang_insert_block with NULL.
9225
92262011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
9227
9228 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
9229 (output_fp_compare): Change args 3 and 4 to bool.
9230 (ix86_expand_call): Change arg 6 to bool.
9231 (ix86_attr_length_immediate_default): Change arg 2 to bool.
9232 (ix86_attr_length_vex_default): Change arg 3 to bool.
9233 * config/i386/i386.md: Update all uses.
9234 * config/i386/i386.c: Ditto.
9235 (ix86_flags_dependent): Change return type to bool.
9236
5beaf664
RG
92372011-05-17 Richard Guenther <rguenther@suse.de>
9238
9239 * gimple.c (type_hash_pair_compare): Fix comparison.
9240
008bad7a
RG
92412011-05-17 Richard Guenther <rguenther@suse.de>
9242
9243 * gimple.c (iterative_hash_gimple_type): Simplify singleton
9244 case some more, fix final hash value of the non-singleton case.
9245
36461340
RG
92462011-05-17 Richard Guenther <rguenther@suse.de>
9247
9248 PR bootstrap/49013
9249 Revert
9250 2011-05-16 Richard Guenther <rguenther@suse.de>
9251
9252 * gimple.c (gimple_types_compatible_p_1): Use names of the
9253 type itself, not its main variant.
9254 (iterative_hash_gimple_type): Likewise.
9255
6b6a59f3
RG
92562011-05-17 Richard Guenther <rguenther@suse.de>
9257
9258 * gimple.c (gimple_register_canonical_type): Use the main-variant
9259 leader for computing the canonical type.
9260
4ffc4134
NC
92612011-05-17 Nick Clifton <nickc@redhat.com>
9262
a1d8754e
NC
9263 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
9264 moves.
9265
4ffc4134
NC
9266 * config/rx/rx.md: Add peephole to remove redundant extensions
9267 after loads.
39960f7a
NC
9268 (bitset_in_memory): Use rx_restricted_mem_operand.
9269 (bitinvert_in_memory): Likewise.
9270 (bitclr_in_memory): Likewise.
4ffc4134 9271
b3db92ac
KI
92722011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
9273 Nick Clifton <nickc@redhat.com>
9274
9275 * config/rx/rx.md: Add peepholes to match a register move followed
9276 by a comparison of the moved register. Replace these with an
9277 addition of zero that does both actions in one instruction.
9278
8637e32a
JJ
92792011-05-17 Jakub Jelinek <jakub@redhat.com>
9280
9281 PR target/48986
9282 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
9283 predicate to allow CONST_INT.
9284 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
9285
8023568e
JM
92862011-05-16 Joseph Myers <joseph@codesourcery.com>
9287
9288 * opts-common.c (opt_enum_arg_to_value): New.
9289 * opts.h (opt_enum_arg_to_value): Declare.
9290 * config/i386/i386.opt (fpmath): Remove.
9291 (mfpmath=): Use Enum, Init and Save.
9292 (fpmath_unit): New Enum and EnumValue entries.
9293 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
9294 name for function fpmath state.
9295 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
9296 * config/i386/i386.c: Include diagnostic.h.
9297 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 9298 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 9299 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 9300 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
9301 (x86_function_specific_save, ix86_function_specific_restore):
9302 Don't handle fpmath state specially.
9303 (ix86_function_specific_print): Pass fpmath state to
9304 ix86_target_string instead of printing in this function.
9305 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
9306 Handle enum attributes.
9307 (IX86_ATTR_ENUM, ix86_opt_enum): New.
9308 (ix86_valid_target_attribute_tree): Update option_strings
9309 handling. Handle fpmath as enum option.
9310 (ix86_can_inline_p): Update field names for function fpmath state.
9311 (ix86_expand_builtin): Update call to ix86_target_string.
9312 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
9313 (ix86_fpmath): Remove.
9314 * config/i386/t-i386 (i386.o): Update dependencies.
9315
9e8d926e
JM
93162011-05-16 Joseph Myers <joseph@codesourcery.com>
9317
9318 PR preprocessor/48677
9319 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
9320 from decoded_options[0], not from itself.
9321
f6449011
UB
93222011-05-16 Uros Bizjak <ubizjak@gmail.com>
9323
9324 * config/i386/constraints.md (z): New constraint.
9325 * config/i386/i386.c (c): New mode attribute.
9326 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
9327 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
9328 constraint for operand 0.
9329 (*call_vzeroupper): Ditto.
9330 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
9331 (*call_rex64_ms_sysv_vzeroupper): Ditto.
9332 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
9333 Use "lzm" constraint for operand 0.
9334 (*call_pop_vzeroupper): Ditto.
9335 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
9336 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
9337 constraint for operand 0.
9338 (*sibcall_vzeroupper): Ditto.
9339 (*sibcall_rex64_ms_sysv): Ditto.
9340 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
9341 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
9342 *sibcall_pop_1. Use "Uz" constraint for operand 0.
9343 (*sibcall_pop_vzeroupper): Ditto.
9344 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
9345 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
9346 mode iterator. Use "<c>zm" constraint for operand 1.
9347 (*call_value_vzeroupper): Ditto.
9348 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 9349 for operand 1.
f6449011
UB
9350 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
9351 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
9352 *call_value_pop_1. Use "lzm" constraint for operand 1.
9353 (*call_value_pop_vzeroupper): Ditto.
9354 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
9355 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
9356 mode iterator. Use "Uz" constraint for operand 1.
9357 (*sibcall_value_vzeroupper): Ditto.
9358 (*sibcall_value_rex64_ms_sysv): Ditto.
9359 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
9360 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
9361 constraint for operand 1.
9362 (*sibcall_value_pop_vzeroupper): Ditto.
9363 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
9364 and "z" constraint for operand 2.
9365 (*tls_global_dynamic_32_gnu): Ditto.
9366 (*tls_local_dynamic_base_32_gnu): Ditto.
9367 (*tls_local_dynamic_base_64): Ditto.
9368 (*tls_local_dynamic_32_once): Ditto.
9369 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
9370 Update all callers.
9371 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
9372
c11b6902
RG
93732011-05-16 Richard Guenther <rguenther@suse.de>
9374
9375 * gimple.c (gimple_types_compatible_p_1): Use names of the
9376 type itself, not its main variant.
9377 (iterative_hash_gimple_type): Likewise.
9378
1e83b5f1
RG
93792011-05-16 Richard Guenther <rguenther@suse.de>
9380
f6449011
UB
9381 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
9382 always visit pointer target and function result and argument types.
1e83b5f1 9383
62e36382
JM
93842011-05-16 Jason Merrill <jason@redhat.com>
9385
9386 PR c++/48999
9387 * tree-inline.c (copy_statement_list): Put back recursion.
9388
687027a4
GJL
93892011-05-16 Georg-Johann Lay <avr@gjlay.de>
9390
9391 PR target/27663
9392 PR target/41076
9393 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
9394 * config/avr/avr.md ("*ior<mode>qi.byte0",
9395 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
9396
f24a5190
GJL
93972011-05-16 Georg-Johann Lay <avr@gjlay.de>
9398
9399 PR target/45099
9400 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
9401 register is needed for a function argument.
9402
3066f593
RG
94032011-05-16 Richard Guenther <rguenther@suse.de>
9404
9405 * gimple.c (struct type_hash_pair): New type.
9406 (type_hash_pair_compare): New function.
f6449011 9407 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 9408
b2ab2cf4
RE
94092011-05-16 Revital Eres <revital.eres@linaro.org>
9410
f6449011 9411 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 9412
dfb737fc
UB
94132011-05-15 Uros Bizjak <ubizjak@gmail.com>
9414
9415 * config/i386/i386.md (floating point move splitters): Fix
9416 usage of standard_80387_constant_p.
f6449011 9417 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 9418
8caa1de0
UB
94192011-05-15 Uros Bizjak <ubizjak@gmail.com>
9420
9421 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
9422
8a519095
EB
94232011-05-14 Eric Botcazou <ebotcazou@adacore.com>
9424
9425 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
9426 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
9427 (tree_ssa_lim_finalize): Likewise.
9428
479fecd3
UB
94292011-05-14 Uros Bizjak <ubizjak@gmail.com>
9430
9431 * config/i386/constraint.md (Yd, Yx): New register constraints.
9432 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
9433 Yd conditional register constraint.
9434 (*movtf_internal): Use standard_sse_constant_opcode.
9435 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
9436 Yx conditional register constraint.
9437 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
9438 Yd conditional register constraint. Use standard_sse_constant_p to
9439 check for valid SSE constants and call standard_sse_constant_opcode to
9440 output SSE insn.
9441 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
9442 constants and call standard_sse_constant_opcode to output SSE insn.
9443 * config/i386/i386.c (ix86_option_ovverride_internal): Set
9444 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
9445 optimize_size is set.
9446 (standard_sse_constant_opcode): Output conditional AVX insn templates.
9447
2d8c9ad5
TB
94482011-05-14 Tobias Burnus <burnus@net-b.de>
9449
9450 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
9451
411a20d6
MJ
94522011-05-13 Martin Jambor <mjambor@suse.cz>
9453
9454 * ipa-prop.c (ipa_cst_from_jfunc): New function.
9455 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
9456 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
9457 (evaluate_conditions_for_ipcp_clone): Removed.
9458 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
9459 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
9460 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
9461
dc764d10
EB
94622011-05-13 Eric Botcazou <ebotcazou@adacore.com>
9463
9464 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
9465 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
9466 lieu of MAY_HAVE_DEBUG_STMTS.
9467 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
9468 debug statements if !MAY_HAVE_DEBUG_STMTS.
9469
9f47a24e
MT
94702011-05-13 Martin Thuresson <martint@google.com>
9471
9472 PR gcov-profile/47793
9473 * libgcov.c (gcov_exit): Support relative profile paths.
9474 * doc/invoke.texi (-fprofile-dir): Update for above change.
9475
b8a71aed
RG
94762011-05-13 Richard Guenther <rguenther@suse.de>
9477
9478 * gimple.c (gimple_canonical_types_compatible_p): Do not use
9479 type-pair caching, do not compare hashes.
9480
eb9f9259
NF
94812011-05-13 Nathan Froyd <froydnj@codesourcery.com>
9482
9483 PR middle-end/48965
9484 * tree-cfg.c (edge_to_cases_cleanup): Return true.
9485 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
9486
3c6cbf7a
KT
94872011-05-13 Kai Tietz <ktietz@redhat.com>
9488
9489 * gimplify.c (gimplify_expr): Make sure operand is boolified.
9490 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
9491 compatible type for TRUTH_NOT_EXPR.
9492
2e7f5dc0
L
94932011-05-13 H.J. Lu <hongjiu.lu@intel.com>
9494
dc764d10 9495 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
9496 (ix86_hard_regno_mode_ok): Change return value to bool. Use
9497 can_create_pseudo_p ().
9498
e834e95c
RG
94992011-05-13 Richard Guenther <rguenther@suse.de>
9500
9501 PR lto/48978
9502 * gimple.c (iterative_hash_gimple_type): Revert change in
9503 pointer target and function result and argument hashing.
9504
34203483
UB
95052011-05-13 Uros Bizjak <ubizjak@gmail.com>
9506
9507 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
9508 (*movxf_internal_nointeger): Ditto.
9509 (*movdf_internal_rex64): Ditto.
9510 (*movdf_internal): Ditto.
9511 (*movdf_internal_nointeger): Ditto.
9512 (*movsf_internal): Ditto.
9513 (sincos splitters): Use can_create_pseudo ().
9514
7eb68c06
JM
95152011-05-13 Joseph Myers <joseph@codesourcery.com>
9516
9517 * config/i386/i386-opts.h: New.
9518 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
9519 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
9520 ix86_section_threshold): Remove.
9521 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
9522 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
9523 OPT_mbranch_cost_.
9524 (ix86_option_override_internal): Don't decode strings for options
9525 other than -march=, -mtune= and -mfpmath=. Don't allow for
9526 __attribute__ uses in remaining diagnostics for options with
34203483 9527 string arguments. Don't check for integer arguments being negative.
7eb68c06 9528 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 9529 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
9530 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
9531 ix86_branch_cost, ix86_section_threshold): Remove.
9532 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
9533 HeaderInclude.
9534 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
9535 but not Var.
9536 (masm=): Use Enum and Init.
9537 (asm_dialect): New Enum and EnumValue entries.
9538 (mbranch-cost=): Use UInteger.
9539 (mlarge-data-threshold=): Use UInteger and Init.
9540 (mcmodel=): Use Enum and Init.
9541 (cmodel): New Enum and EnumValue entries.
9542 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
9543 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
9544 mregparm=): Use UInteger.
9545 (mstringop-strategy=): Use Enum and Init.
9546 (stringop_alg): New Enum and EnumValue entries.
9547 (mtls-dialect=): Use Enum and Init.
9548 (tls_dialect): New Enum and EnumValue entries.
9549 (mabi=): Use Enum and Init.
9550 (calling_abi): New Enum and EnumValue entries.
9551 (mveclibabi=): Use Enum and Init.
9552 (ix86_veclibabi): New Enum and EnumValue entries.
9553
f67e203c
NC
95542011-05-13 Nick Clifton <nickc@redhat.com>
9555
34203483
UB
9556 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
9557 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 9558
221df0b6
KT
95592011-05-13 Kai Tietz <ktietz@redhat.com>
9560
9561 PR middle-end/48984
9562 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
9563 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
9564 (gimple_boolify): Check for cast for boolean_type_node instead for
9565 BOOLEAN_TYPE.
9566
208cb8cb
RG
95672011-05-13 Richard Guenther <rguenther@suse.de>
9568
9569 PR tree-optimization/48172
9570 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
9571 multiplying by number of iterations for equal step.
9572 (vect_create_cond_for_alias_checks): Likewise.
9573
b88ecf55
AS
95742011-05-13 Andreas Schwab <schwab@redhat.com>
9575
9576 * configure.ac: Use AS_HELP_STRING throughout.
9577 * configure: Regenerate.
9578
569b527e
L
95792011-05-12 H.J. Lu <hongjiu.lu@intel.com>
9580
34203483 9581 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
9582 (ix86_emit_restore_regs_using_mov): Likewise.
9583 (ix86_emit_restore_sse_regs_using_mov): Likewise.
9584
8b9a1428
AS
95852011-05-12 Anatoly Sokolov <aesok@post.ru>
9586
9587 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
9588 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
9589 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
9590 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
9591 RTX_OK_FOR_OLO10_P): ...here.
9592 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
9593 SYMBOLIC_CONST.
9594
1d15f620
KT
95952011-05-12 Kai Tietz <ktietz@redhat.com>
9596
9597 * gimplify.c (gimple_boolify): Re-boolify expression
9598 arguments even if expression type is of kind BOOLEAN_TYPE.
9599 (gimplify_boolean_expr): Removed.
9600 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
9601 and XOR. Additional take care that we keep expression's type.
9602 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
9603 of TRUTH_AND|OR|XOR_EXPR.
9604
c2b5fc8d
JJ
96052011-05-12 Jakub Jelinek <jakub@redhat.com>
9606
9607 PR tree-optimization/48975
9608 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
9609 on all bbs here and free and clear ifc_bbs at the end.
9610
61332f77
RG
96112011-05-12 Richard Guenther <rguenther@suse.de>
9612
9613 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
9614 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
9615 until after simple checks.
9616 (gimple_types_compatible_p): Likewise.
9617 (iterative_hash_gimple_type): Always hash pointer targets
9618 and function return and argument types.
9619 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
9620 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
9621 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
9622 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
9623 completely in the simple compare section.
9624 (gimple_register_canonical_type): Query the cache again after
9625 registering.
9626
e2a3a5f1
RG
96272011-05-12 Richard Guenther <rguenther@suse.de>
9628
9629 PR tree-optimization/48172
9630 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
9631 the number of iterations from the segment size calculation.
9632 (vect_create_cond_for_alias_checks): Adjust.
9633
2c703f3a
JJ
96342011-05-12 Jakub Jelinek <jakub@redhat.com>
9635
9636 PR debug/48967
9637 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
9638 if validate_subreg fails.
9639
96402011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
9641
9642 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
9643 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
9644 early.
9645
87e91fca
DD
96462011-05-12 DJ Delorie <dj@redhat.com>
9647
d53903d6 9648 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
9649 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
9650 created builtin into rx_builtins array.
9651 (rx_builtin_decl): New function.
34203483 9652 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 9653
5f2f13fd
DD
96542011-05-12 DJ Delorie <dj@redhat.com>
9655 Nick Clifton <nickc@redhat.com>
9656
9657 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
9658 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
9659 (rx_is_legitimate_address): Add pre-decrement and post-increment
9660 addressing in HImode and QImode. Fix test for out of range
9661 REG+INT addressing.
87e91fca 9662 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 9663 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 9664 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 9665 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 9666
57421f45
JM
96672011-05-11 Jason Merrill <jason@redhat.com>
9668
9669 * tree.c (type_hash_canon): Use struct tree_type_non_common.
9670
898c90c0
EB
96712011-05-11 Eric Botcazou <ebotcazou@adacore.com>
9672
9673 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
9674 reindent the subsequent block.
9675
79bec923
ST
96762011-05-11 Satoru Takabayashi <satorux@google.com>
9677 Paul Pluzhnikov <ppluzhnikov@google.com>
9678
34203483 9679 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
9680 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
9681 * config.in: Add LINKER_HASH_STYLE.
9682 * configure.ac: Add --with-linker-hash-style.
9683 * configure: Regenerate.
79bec923 9684
d0340959
RG
96852011-05-11 Richard Guenther <rguenther@suse.de>
9686
9687 PR middle-end/48964
9688 * gimple.c (iterative_hash_canonical_type): Fix typo.
9689
cb032fee
UB
96902011-05-11 Uros Bizjak <ubizjak@gmail.com>
9691
9692 * config/i386/i386.c (legitimize_tls_address)
479fecd3 9693 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
9694 expanders directly for TARGET_GNU2_TLS. Determine pic and
9695 __tls_get_addr symbol reference here. Update call to
9696 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 9697 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
9698 expanders directly for TARGET_GNU2_TLS. Determine
9699 __tls_get_addr symbol reference here. Update call to
9700 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
9701 unique UNSPEC REG_EQUIV to libcall block.
9702 (ix86_tls_get_addr): Declare static.
9703 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
9704 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
9705 Do not determine pic and __tls_get_addr symbol reference here. Do not
9706 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
9707 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
9708 (tls_global_dynamic_64): Add operand 2. Do not determine
9709 __tls_get_addr symbol reference here. Do not call
9710 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
9711 (tls_local_dynamic_base64): Ditto for operand 1.
9712
6d3cc8f0
EB
97132011-05-11 Eric Botcazou <ebotcazou@adacore.com>
9714
9715 * function.c (expand_function_start): Initialize stack_check_probe_note
9716 only if the generic stack checking mechanism is used.
9717
51e020fc
RG
97182011-05-11 Richard Guenther <rguenther@suse.de>
9719
9720 PR tree-optimization/15256
9721 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
9722 (A & B) | C, combine (A op CST1) op CST2.
9723 (tree_ssa_forward_propagate_single_use_vars): Only bother to
9724 visit assigns that have uses.
9725
51545682
NF
97262011-05-11 Nathan Froyd <froydnj@codesourcery.com>
9727
cb032fee 9728 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
9729 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
9730 (unpack_ts_type_common_value_fields): ...this. Update comment.
9731 (unpack_value_fields): Adjust for renaming.
9732 (lto_input_ts_type_tree_pointers): Split into...
9733 (lto_input_ts_type_common_tree_pointer): ...this and...
9734 (lto_input_ts_type_non_common_tree_pointers): ...this.
9735 (lto_input_tree_pointers): Adjust for above split.
9736 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
9737 (pack_ts_type_common_value_fields): ...this. Update comment.
9738 (lto_output_ts_type_tree_pointers): Split into...
9739 (lto_output_ts_type_common_tree_pointers): ...this and...
9740 (lto_output_ts_type_non_common_tree_pointers): ...this.
9741 (lto_output_tree_pointers): Adjust for above split.
9742 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
9743 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
9744 * stor-layout.c (vector_type_mode): Adjust location of mode field.
9745 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
9746 Define.
9747 (struct tree_type): Split into...
9748 (struct tree_type_common: ...this and...
9749 (struct tree_type_with_lang_specific): ...this and...
9750 (struct tree_type_non_common): ...this. Adjust accessor macros
9751 accordingly.
9752 (TYPE_VALUES_RAW): Define.
9753 (union tree_node): Update for above changes.
9754 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
9755 TS_TYPE_NON_COMMON.
9756 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
9757 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
9758 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
9759 * treestructu.def (TS_TYPE): Remove.
9760 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
9761 Define.
9762
b03c3082
JJ
97632011-05-11 Jakub Jelinek <jakub@redhat.com>
9764
9765 PR debug/48159
9766 * tree-ssa.c (reset_debug_uses): New function.
9767 * tree-flow.h (reset_debug_uses): New prototype.
9768 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
9769 * tree-loop-distribution.c (generate_loops_for_partition): Call
9770 reset_debug_uses on the stmts that will be removed. Keep around
9771 all debug stmts, don't count them as bits in partition bitmap.
9772 (generate_builtin): Don't count debug stmts or labels as bits in
9773 partition bitmap.
9774
b5e04de5
RG
97752011-05-11 Richard Guenther <rguenther@suse.de>
9776
9777 * gimple.c (gimple_type_hash_1): Merge with ...
9778 (gimple_type_hash): ... this.
9779 (gtc_visit): Remove mode parameter and simplify accordingly.
9780 (gimple_types_compatible_p_1): Likewise.
9781 (gimple_types_compatible_p): Likewise.
9782 (iterative_hash_gimple_type): Likewise.
9783 (visit): Likewise.
9784 (gimple_type_eq): Adjust.
9785
fc6970e4
RE
97862011-05-11 Revital Eres <revital.eres@linaro.org>
9787
9788 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
9789 enters the branch create an anti edge in the opposite direction
9790 to prevent the creation of reg-moves.
9791 * modulo-sched.c: Adjust comment to reflect the fact we are
9792 scheduling closing branch.
9793 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
9794 (stage_count): New field in struct partial_schedule.
9795 (calculate_stage_count): New function.
9796 (normalize_sched_times): Rename to reset_sched_times and handle
9797 incrementing the sched time of the nodes by a constant value
9798 passed as parameter.
9799 (duplicate_insns_of_cycles): Skip closing branch.
9800 (sms_schedule_by_order): Schedule closing branch.
9801 (ps_insn_find_column): Handle closing branch.
9802 (sms_schedule): Call reset_sched_times and adjust the code to
9803 support scheduling of the closing branch.
9804 (ps_insert_empty_row): Update calls to normalize_sched_times
9805 and rotate_partial_schedule functions.
9806
41a58a92
RG
98072011-05-11 Richard Guenther <rguenther@suse.de>
9808
9809 PR middle-end/48953
9810 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
9811
e9f8dcf9
JM
98122011-05-11 Joseph Myers <joseph@codesourcery.com>
9813
cb032fee
UB
9814 * opts.c (finish_options): Move warning settings from process_options.
9815 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 9816
10c224a9
RG
98172011-05-11 Richard Guenther <rguenther@suse.de>
9818
9819 PR tree-optimization/18041
9820 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
9821 (simplify_bitwise_binary): ... this. Handle operand conversions
9822 by applying them to the result instead.
9823 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
9824
825b27de
RG
98252011-05-11 Richard Guenther <rguenther@suse.de>
9826
9827 * gimple.c (gimple_canonical_types_compatible_p): Split out
9828 from gimple_types_compatible_p and friends. Do not recurse
9829 to pointed-to types.
9830 (gimple_canonical_type_eq): Use it.
9831 (iterative_hash_canonical_type): Split out from
9832 iterative_hash_gimple_type and friends. Do not recurse
9833 to pointed-to types.
9834 (gimple_canonical_type_hash): Use it, allocate the hash here.
9835
ca756625
RE
98362011-05-11 Revital Eres <revital.eres@linaro.org>
9837
9838 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
9839 recognizing doloop.
9840
b8abece3
RE
98412011-05-11 Revital Eres <revital.eres@linaro.org>
9842
9843 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
9844 instead of PREV_INSN.
9845
ce7b3761
RE
98462011-05-11 Revital Eres <revital.eres@linaro.org>
9847
9848 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
9849 * loop-doloop.c (doloop_condition_get): Likewise.
9850 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
9851 (doloop_end): New.
9852 * config/arm/arm.md (*addsi3_compare0): Remove "*".
9853
a9dc9d37
NF
98542011-05-10 Nathan Froyd <froydnj@codesourcery.com>
9855
9856 * tree.def (CASE_LABEL_EXPR): Add an operand.
9857 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
9858
96703596
JM
98592011-05-10 Joseph Myers <joseph@codesourcery.com>
9860
9861 * c-decl.c (c_override_global_bindings_to_false): Remove.
9862 (global_bindings_p): Don't check
9863 c_override_global_bindings_to_false.
9864 * c-tree.h (c_override_global_bindings_to_false): Remove.
9865 * c-typeck.c (composite_type): Don't set
9866 c_override_global_bindings_to_false.
9867
dbcc9f08
MM
98682011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
9869
9870 PR target/48857, 48495
9871 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
9872 (VSX_MODE): Ditto.
9873 (VSX_MOVE_MODE): Ditto.
9874 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
9875 VSX vector types. Add V2DImode.
9876 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
9877 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
9878 (MODES_TIEABLE_P): Ditto.
9879
9880 * config/rs6000/rs6000.c (rs6000_emit_move): Use
9881 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
9882 VSX_VECTOR_MODE.
9883 (init_cumulative_args): Ditto.
9884 (rs6000_function_arg_boundary): Ditto.
9885 (rs6000_function_arg_advance_1): Ditto.
9886 (rs6000_function_arg): Ditto.
9887 (rs6000_function_ok_for_sibcall): Ditto.
9888 (emit_frame_save): Ditto.
9889 (rs6000_function_value): Ditto.
9890 (rs6000_libcall_value): Ditto.
9891
4a68b4ca
JM
98922011-05-10 Joseph Myers <joseph@codesourcery.com>
9893
9894 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
9895 i386/darwin-lib.h to $libgcc_tm_file.
9896 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
9897
bcb521e9
JM
98982011-05-10 Joseph Myers <joseph@codesourcery.com>
9899
9900 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
9901
f10d3ac9
JM
99022011-05-10 Joseph Myers <joseph@codesourcery.com>
9903
cb032fee 9904 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
9905 * config/rs6000/rs6000-tables.opt: New file (generated).
9906 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
9907 rs6000/rs6000-tables.opt to extra_options.
9908 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
9909 * config/rs6000/rs6000.c (rs6000_select): Remove.
9910 (processor_target_table): Move contents to rs6000-cpus.def.
9911 (darwin_rs6000_override_options): Check
9912 global_options_set.x_rs6000_cpu_index instead of
9913 rs6000_select[1].string.
9914 (rs6000_option_override_internal): Likewise.
9915 (rs6000_handle_option): Don't assert that global structures are in
9916 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
9917 (rs6000_default_cpu): New variable.
9918 (rs6000_file_start): Set it instead of local default_cpu. Check
9919 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
9920 global_options_set.x_rs6000_tune_index instead of rs6000_select.
9921 (rs6000_darwin_file_start): Check rs6000_default_cpu and
9922 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
9923 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
9924 rs6000_select): Remove.
9925 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
9926 Remove.
9927 (mcpu=, mtune=): Use Var, Init, Enum and Save.
9928 * config/rs6000/t-rs6000
9929 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
9930 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9931 global_options_set.x_rs6000_cpu_index instead of
9932 rs6000_select[1].string.
9933 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9934 global_options_set.x_rs6000_cpu_index instead of
9935 rs6000_select[1].string.
9936
80cf2e08
JM
99372011-05-10 Joseph Myers <joseph@codesourcery.com>
9938
9939 * config.gcc (libgcc_tm_file): Define instead of including files
9940 from ../../libgcc/config/ in tm_file.
cb032fee 9941 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
9942 * configure: Regenerate.
9943 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
9944 libgcc_tm.h, cs-libgcc_tm.h): New.
9945 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
9946 (clean): Remove libgcc_tm.h.
9947 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
9948 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
9949 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
9950
fd01a351
GJL
99512011-05-10 Georg-Johann Lay <avr@gjlay.de>
9952
9953 PR target/48896
9954 * config/avr/avr.c (avr_ret_register): Return unsigned int
9955 instead of int.
9956 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
9957 it to avr_libcall_value.
9958 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
9959 expand_expr.
9960 (avr_expand_binop_builtin): Ditto.
9961 (avr_expand_unop_builtin): Ditto.
9962
34cc3c86
DD
99632011-05-10 DJ Delorie <dj@redhat.com>
9964
9965 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
9966 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
9967 * config/rx/rx.c (rx_align_for_label): Add label and
9968 uses_threshold parameters. Do not align when the label is not
9969 used enough.
9970 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
9971
be173289
RG
99722011-05-10 Richard Guenther <rguenther@suse.de>
9973
9974 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
9975 a series of conversions and apply foldings similar to what
9976 fold-const does.
9977 (tree_ssa_forward_propagate_single_use_vars): Call it.
9978
e7f78021
JJ
99792011-05-10 Jakub Jelinek <jakub@redhat.com>
9980
6ae70ea2
JJ
9981 PR tree-optimization/48611
9982 PR tree-optimization/48794
9983 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
9984 referenced from RESX or EH_DISPATCH arguments.
9985
e7f78021
JJ
9986 PR debug/48928
9987 * dfp.c (decimal_to_decnumber): Handle conversion from
9988 dconst{1,2,m1,half}.
9989
fca132b9
UB
99902011-05-09 Uros Bizjak <ubizjak@gmail.com>
9991
9992 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
9993 for !flag_prefer_avx128.
9994 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
9995
e4c03378
EB
99962011-05-09 Eric Botcazou <ebotcazou@adacore.com>
9997
9998 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
9999 (fold_ternary_loc): Use expr_location_or.
10000
805d6a75
L
100012011-05-09 H.J. Lu <hongjiu.lu@intel.com>
10002
10003 PR debug/48853
10004 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
10005 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
10006 Pmode and mem_mode is not VOIDmode.
10007
e4c03378 100082011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 10009
e4c03378
EB
10010 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
10011 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 10012
51e7f377
UB
100132011-05-09 Uros Bizjak <ubizjak@gmail.com>
10014
10015 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
10016 (const_pow2_1_to_8_operand): Ditto.
10017 (const_pow2_1_to_128_operand): Ditto.
10018 (const_pow2_1_to_32768_operand): Ditto.
10019 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
10020 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
10021 in insn constraint to check integer value of operand 3.
10022 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
10023
10024 (PINSR_MODE): New mode iterator.
10025 (sse2p4_1): New mode attribute.
10026 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
10027 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
10028 iterator. Use const_int_operand instead of
10029 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
10030 exact_log2 in insn constraint to check integer value of operand 3.
10031
100322011-05-09 Uros Bizjak <ubizjak@gmail.com>
10033
10034 * config/i386/sse.md (blendbits): Remove mode attribute.
10035 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
10036 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
10037 Check integer value of operand 3 in insn constraint.
10038
0ca8de87
RG
100392011-05-09 Richard Guenther <rguenther@suse.de>
10040
10041 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
10042 for diagnostics.
10043 (lto_symtab_merge): Likewise. Do not register types here.
10044 (lto_symtab_merge_decls_2): Likewise.
10045 (lto_symtab_merge_decls_1): Likewise.
10046 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
10047 * gimple.c (enum gtc_mode): Declare.
10048 (gimple_types_compatible_p): Make static.
10049
a9e6994a
AK
100502011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10051
10052 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
10053 temporary register to match Pmode.
10054
fb55d62e
UB
100552011-05-09 Uros Bizjak <ubizjak@gmail.com>
10056
10057 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
10058 and *vec_concatv4si_1_avx.
10059
eb1485a6
UB
100602011-05-09 Uros Bizjak <ubizjak@gmail.com>
10061
10062 PR rtl-optimization/48927
10063 * ira-conflicts.c (commutative_constraint_p): Use
10064 recog_data.alternative_enabled_p to disable alternatives where
10065 "enabled" attribute is false.
10066 (get_dup_num): Ditto.
10067 * ira-lives.c (single_reg_class): Ditto.
10068 (ira_implicitly_set_insn_hard_regs): Ditto.
10069
c46d001a
EB
100702011-05-09 Eric Botcazou <ebotcazou@adacore.com>
10071
10072 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
10073 (dataflow_set_preserve_mem_locs): Likewise.
10074
100752011-05-09 Philipp Thomas <pth@suse.de>
10076
6d9e7c41
PT
10077 * config/mep/mep.c (mep_validate_vliw): Syntax description
10078 should not be translated.
10079
d371df6f
JM
100802011-05-09 Joseph Myers <joseph@codesourcery.com>
10081
10082 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
10083 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 10084 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
10085 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
10086 MIPS_ARCH_OPTION_NATIVE): Define.
10087 * config/mips/mips.c (mips_cpu_info_table): Move contents to
10088 mips-cpus.def.
10089 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
10090 mips_parse_cpu): Remove.
10091 (mips_cpu_info_from_opt, mips_default_arch): New.
10092 (mips_handle_option): Don't assert that global structures are in
10093 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
10094 (mips_option_override): Use new variables and functions to set
eb1485a6 10095 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
10096 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
10097 definition.
10098 * config/mips/mips.opt (march=): Use ToLower and Enum.
10099 (mips): Use ToLower, Enum and Var.
10100 (mtune=): Use ToLower and Enum.
10101 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
10102
4fc07af9
JH
101032011-05-08 Jan Hubicka <jh@suse.cz>
10104
10105 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
10106 Arrange type pairs to be UID ordered.
10107 (gimple_lookup_type_leader): Make inline.
10108
2cf320a8
NC
101092011-05-09 Nick Clifton <nickc@redhat.com>
10110
61d6def5
NC
10111 PR target/48899
10112 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
10113 PROCESSOR_DEFAULT.
10114
2cf320a8
NC
10115 PR target/48897
10116 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
10117 variable 's'.
10118
4f82319d
CLT
101192011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
10120
10121 * combine.c (simplify_comparison): Abstract out parts into...
10122 (simplify_compare_const): ... new function.
10123 (try_combine): Generalize parallel arithmetic/compare combining
10124 to call simplify_compare_const() and CANONICALIZE_COMPARE().
10125
74605a11
JH
101262011-05-08 Jan Hubicka <jh@suse.cz>
10127
10128 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
10129 (cgraph_create_virtual_clone): Call hooks once virtual clone
10130 is finished.
74605a11 10131 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
10132 * ipa-cp.c (ipcp_estimate_growth): Use
10133 estimate_ipcp_clone_size_and_time.
74605a11
JH
10134 * ipa-inline-transform.c (clone_inlined_nodes): Update.
10135 * lto-cgraph.c (input_node): Update.
10136 * ipa-inline.c (recursive_inlining): Update.
10137 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
10138 (evaluate_conditions_for_known_args): Break out from ...
10139 (evaluate_conditions_for_edge): ... here.
10140 (evaluate_conditions_for_ipcp_clone): New function.
10141 (inline_node_duplication_hook): Update clone summary based
10142 on parameter map.
10143 (estimate_callee_size_and_time): Rename to ...
10144 (estimate_node_size_and_time): take NODE instead of EDGE;
10145 take POSSIBLE_TRUTHS as argument.
10146 (estimate_callee_size_and_time): Update.
10147 (estimate_ipcp_clone_size_and_time): New function.
10148 (do_estimate_edge_time): Update.
10149
5c049507
RG
101502011-05-08 Richard Guenther <rguenther@suse.de>
10151
10152 PR middle-end/48908
10153 PR middle-end/48905
10154 * expmed.c (expand_shift_1): Compute adjusted constant shift
10155 amount manually.
10156
f64c36ba
EB
101572011-05-08 Eric Botcazou <ebotcazou@adacore.com>
10158
10159 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
10160
c461a957
EB
101612011-05-08 Eric Botcazou <ebotcazou@adacore.com>
10162
10163 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
10164
7c74e556
JW
101652011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
10166
10167 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
10168
b4c0a884
JH
101692011-05-07 Jan Hubicka <jh@suse.cz>
10170
a9bcb3f0
EB
10171 * ipa-inline-transform.c (inline_call): Account when program size
10172 decreases.
b4c0a884 10173 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
10174 (edge_badness): Reorganize to be power 2 based; fix thinko when
10175 computing badness for negative growth; update comments to match
10176 reality; better dumps.
b4c0a884 10177
c99c0026
EB
101782011-05-07 Eric Botcazou <ebotcazou@adacore.com>
10179
10180 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
10181 type to bool and adjust comment.
10182 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
10183 (fold_mathfn_compare): Remove calls to global_bindings_p.
10184 (fold_inf_compare): Likewise.
10185 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
10186 * c-tree.h (global_bindings_p): Adjust prototype.
10187 * c-decl.c (global_bindings_p): Return bool and simplify.
10188
1400c8e5
ZD
101892011-05-07 Zdenek Dvorak <ook@ucw.cz>
10190
10191 PR tree-optimization/48837
10192 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
10193 when accumulator transformation is performed.
10194
5d0878e7
JH
101952011-05-06 Jan Hubicka <jh@suse.cz>
10196
a9bcb3f0
EB
10197 * i386.h (ix86_tune_indices): Add
10198 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 10199 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
10200 * i386.c (initial_ix86_tune_features): Add
10201 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
10202 (software_prefetching_beneficial_p): Remove predicate.
10203 (ix86_option_override_internal): Use new macro.
10204
58696ce5
JH
102052011-05-06 Jan Hubicka <jh@suse.cz>
10206
10207 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
10208
c47d0034
JH
102092011-05-06 Jan Hubicka <jh@suse.cz>
10210
10211 * cgraph.c (cgraph_add_thunk): Create real function node instead
10212 of alias node; finalize it and mark needed/reachale; arrange visibility
10213 to be right and add it into the corresponding same comdat group list.
10214 (dump_cgraph_node): Dump thunks.
10215 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
10216 cgraph_function_with_gimple_body_p,
10217 cgraph_first_function_with_gimple_body,
c47d0034
JH
10218 cgraph_next_function_with_gimple_body): New functions.
10219 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
10220 New macros.
10221 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
10222 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10223 * cgraphunit.c (cgraph_finalize_function): Only look into possible
10224 devirtualization when optimizing.
10225 (verify_cgraph_node): Verify thunks.
10226 (cgraph_analyze_function): Analyze thunks.
10227 (cgraph_mark_functions_to_output): Output thunks only in combination
10228 with function they are assigned to.
10229 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
10230 alias into normal node.
10231 (assemble_thunks): New functoin.
10232 (cgraph_expand_function): Use it.
10233 * lto-cgraph.c (lto_output_node): Stream thunks.
10234 (input_overwrite_node): Stream in thunks.
10235 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
10236 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
10237 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
10238 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
10239 (inline_analyze_function): Do not care about thunk jump functions.
10240 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
10241 * ipa-prop.c (ipa_prop_write_jump_functions): Use
10242 cgraph_function_with_gimple_body_p.
10243 * passes.c (do_per_function_toporder): Use
10244 cgraph_function_with_gimple_body_p.
c47d0034
JH
10245 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10246 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
10247 (function_called_by_processed_nodes_p): Likewise.
10248
d8f426ec
JM
102492011-05-06 Joseph Myers <joseph@codesourcery.com>
10250
10251 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
10252 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
10253 entries.
10254 (mabi=): Replace with separate entries for mabi=altivec,
10255 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
10256 mabi=ieeelongdouble and mabi=ibmlongdouble.
10257 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
10258 check for -mabi=spe without SPE ABI support here.
10259 (rs6000_handle_option): Replace OPT_mabi_ handling with
10260 OPT_mabi_altivec and OPT_mabi_spe handling.
10261
80bde45b
CC
102622011-05-06 Cary Coutant <ccoutant@google.com>
10263
10264 * dwarf2out.c (contains_subprogram_definition): New function.
10265 (should_move_die_to_comdat): Call it.
10266
a91926b9
JL
102672011-05-06 Jeff Law <law@redhat.com>
10268
10269 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
10270 remove_ctrl_stmt_and_useless_edges.
10271 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
10272 (fixup_template_block, thread_single_edge): Likewise.
10273 (mark_threaded_blocks): Use THREAD_TARGET.
10274
1fc1b66d
AM
102752011-05-06 Alan Modra <amodra@gmail.com>
10276
10277 PR target/48900
10278 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
10279 const0_rtx as the arg to the dummy __tls_get_addr libcall.
10280
e194de64
UB
102812011-05-06 Uros Bizjak <ubizjak@gmail.com>
10282
10283 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
10284 constraint modifier to "r".
10285
d740dc9e
JM
102862011-05-06 Joseph Myers <joseph@codesourcery.com>
10287
10288 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
10289 fall through for OPT_mcmodel_.
10290
cab78b15
AK
102912011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10292
10293 * config/s390/s390.c (s390_asm_trampoline_template): Comment
10294 instruction sizes.
e194de64 10295 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 10296
ee6824ae
RR
102972011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10298
eb1485a6
UB
10299 PR target/47930
10300 * config/arm/arm.opt (marm): Document it.
10301 (mthumb): Reject negative variant.
ee6824ae 10302
9ef58464
UB
103032011-05-06 Uros Bizjak <ubizjak@gmail.com>
10304
10305 PR target/48898
10306 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
10307 Fix typo in "ccvt" variable name.
10308
155b6176
TG
103092011-05-06 Tristan Gingold <gingold@adacore.com>
10310
10311 PR target/48895
10312 * config/vms/vms-ar.c (main): Remove cwd variable.
10313
3becc47b
JJ
103142011-05-06 Jakub Jelinek <jakub@redhat.com>
10315
10316 PR debug/48902
10317 * var-tracking.c (prepare_call_arguments): Move else before #endif.
10318
3d528853
NF
103192011-05-05 Nathan Froyd <froydnj@codesourcery.com>
10320
10321 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
10322 * gimplify.c (gimplify_switch_expr): Likewise.
10323 * omp-low.c (expand_omp_sections): Likewise.
10324 * tree-eh.c (lower_try_finally_switch): Likewise.
10325 (lower_eh_dispatch): Likewise.
10326 * tree.h (build_case_label): Declare.
10327 * tree.c (build_case_label): Define.
10328
deb5046b
JM
103292011-05-05 Jason Merrill <jason@redhat.com>
10330
10331 PR c++/40975
10332 * tree-inline.c (copy_tree_r): Use copy_statement_list.
10333 (copy_statement_list): Don't recurse.
10334 * stor-layout.c (copy_self_referential_tree_r): Don't allow
10335 STATEMENT_LIST.
10336
013c0411
JM
103372011-05-05 Joseph Myers <joseph@codesourcery.com>
10338
10339 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
10340 through from -mfpu= handling.
10341 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
10342
a0905f8b
BS
103432011-05-05 Bernd Schmidt <bernds@codesourcery.com>
10344
10345 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
10346 POST_MODIFY.
10347
fc4538e4
SE
103482011-05-05 Steve Ellcey <sje@cup.hp.com>
10349
10350 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
10351 for 11.31.
10352 (hppa[12]*-*-hpux11*): Ditto.
10353 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
10354 * config/ia64/hpux-unix2003.h: New.
10355 * config/pa/pa-hpux1131.opt: New.
10356 * config/pa/pa-hpux1131.h: New.
10357 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
10358 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 10359 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 10360
1e30c578
JJ
103612011-05-05 Jakub Jelinek <jakub@redhat.com>
10362
10363 PR debug/48853
10364 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
10365 instead of mode as 3rd argument to recursive call.
10366 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
10367 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
10368 VOIDmode.
10369 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
10370 don't give up if mode is Pmode and mem_mode is not VOIDmode.
10371 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
10372 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
10373
d19eb620
JB
103742011-05-05 Julian Brown <julian@codesourcery.com>
10375
10376 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
10377 parenthesis in D-register case.
10378
c860fe8c
JM
103792011-05-05 Joseph Myers <joseph@codesourcery.com>
10380
10381 * opt-functions.awk (var_type_struct): Handle Enum options.
10382 * optc-gen.awk: Don't check range of variables of character type.
10383 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
10384 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
10385 rs6000_sdata_name, rs6000_explicit_options): Remove.
10386 (rs6000_option_override_internal): Check for -malign-power here.
10387 Use global_options_set instead of rs6000_explicit_options.
10388 (rs6000_parse_fpu_option): Remove.
10389 (rs6000_handle_option): Access variables via opts and opts_set
10390 pointers. Use error_at and warning_at. Add fall-through
10391 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
10392 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
10393 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
10394 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
10395 here. Don't use rs6000_parse_fpu_option.
10396 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
10397 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
10398 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
10399 (mrecip=): Use Var.
10400 (mspe): Use Var and Save.
10401 (mtraceback=): Use Enum and Var.
10402 (rs6000_traceback_type): New Enum and EnumValue entries.
10403 (mfloat-gprs=): Use Enum, Var and Save.
10404 (rs6000_float_gprs): New Enum and EnumValue entries.
10405 (mlong-double-): use Var and Save.
10406 (msched-costly-dep=, minsert-sched-nops=): Use Var.
10407 (malign-): Use Enum and Var.
10408 (rs6000_alignment_flags): New Enum and EnumValue entries.
10409 (mfpu=): Use Enum.
10410 (fpu_type_t): New Enum and EnumValue entries.
10411 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10412 global_options_set instead of rs6000_explicit_options.
10413 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10414 global_options_set instead of rs6000_explicit_options.
10415 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10416 global_options_set instead of rs6000_explicit_options.
10417 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10418 global_options_set instead of rs6000_explicit_options.
10419 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
10420 global_options_set instead of rs6000_explicit_options.
10421 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10422 global_options_set instead of rs6000_explicit_options.
10423 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
10424 definition.
10425 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10426 global_options_set instead of rs6000_explicit_options.
10427 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
10428 (rs6000_cmodel): New Enum and EnumValue entries.
10429 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10430 global_options_set instead of rs6000_explicit_options.
10431 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
10432 (mtls-size=): Use Enum and Var.
10433 (rs6000_tls_size): New Enum and EnumValue entries.
10434
0691dde9
MM
104352011-05-05 Michael Matz <matz@suse.de>
10436
10437 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
10438 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
10439 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
10440 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
10441 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
10442 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
10443 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
10444 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
10445 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
10446 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
10447 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
10448 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
10449 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
10450 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
10451 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
10452 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
10453
86529a49
RG
104542011-05-05 Richard Guenther <rguenther@suse.de>
10455
10456 * expmed.c (expand_variable_shift): Rename to ...
10457 (expand_shift_1): ... this. Take an expanded shift amount.
10458 For rotates recurse directly not building trees for the shift amount.
10459 (expand_variable_shift): Wrap around expand_shift_1.
10460 (expand_shift): Adjust.
10461
d0228c2e
JJ
104622011-05-05 Jakub Jelinek <jakub@redhat.com>
10463
10464 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
10465
907a08d9
EB
104662011-05-05 Eric Botcazou <ebotcazou@adacore.com>
10467
10468 * tree.h (get_pending_sizes): Remove prototype.
10469 (put_pending_size): Likewise.
10470 (put_pending_sizes): Likewise.
10471 * stor-layout.c (pending_sizes): Delete.
10472 (get_pending_sizes): Likewise.
10473 (put_pending_size): Likewise.
10474 (put_pending_sizes): Likewise.
10475 (variable_size): Do not call put_pending_size and tidy up.
10476 * function.h (struct function): Remove dont_save_pending_sizes_p.
10477 * lto-streamer-in.c (input_function): Do not stream it.
10478 * lto-streamer-out.c (output_function): Likewise.
10479 * tree-inline.c (initialize_cfun): Do not copy it.
10480 * c-decl.c (store_parm_decls): Do not set it.
10481 * omp-low.c (create_task_copyfn): Likewise.
10482 * tree-optimize.c (tree_rest_of_compilation): Likewise.
10483
386d9c57
UB
104842011-05-05 Uros Bizjak <ubizjak@gmail.com>
10485
10486 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
10487 conditions.
10488 (*movdf_internal): Ditto.
10489 (*movdf_internal_nointeger): Ditto.
10490 (*movsf_internal): Ditto.
10491
a04a722b
JM
104922011-05-05 Joseph Myers <joseph@codesourcery.com>
10493
10494 * c-decl.c (finish_decl): Don't call get_pending_sizes.
10495 (grokparm): Add parameter expr. Pass it to grokdeclarator.
10496 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
10497 (c_variable_size): Remove.
10498 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
10499 call put_pending_sizes.
10500 (get_parm_info): Add parameter expr. Use it to set
10501 arg_info->pending_sizes.
10502 (store_parm_decls): Use arg_info->pending_sizes instead or calling
10503 get_pending_sizes.
10504 * c-parser.c (c_parser_parms_declarator): Update call to
10505 c_parser_parms_list_declarator.
10506 (c_parser_parms_list_declarator): Take parameter expr. Update
10507 call to push_parm_decl. Update recursive call. Don't call
10508 get_pending_sizes. Update calls to get_parm_info.
10509 (c_parser_objc_method_definition): Update calls to
10510 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 10511 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
10512 (c_parser_objc_method_decl): Add parameter expr. Update call to
10513 grokparm.
386d9c57 10514 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
10515 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
10516 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
10517
c92a6f97
MH
105182011-05-05 Michael Hope <michael.hope@linaro.org>
10519
386d9c57
UB
10520 PR pch/45979
10521 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
10522 __ARM_EABI__ hosts.
c92a6f97 10523
07ea0048
UW
105242011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10525
10526 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
10527 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
10528 (spu_output_mi_thunk): New function.
10529
d634bfa1
RO
105302011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10531
10532 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
10533 targetm.asm_out.print_operand.
10534 * config/sol2.c: Include target.h.
10535
40fda55b
JH
105362011-05-04 Jan Hubicka <jh@suse.cz>
10537
10538 * ipa-inline.c (reset_edge_caches): New function.
10539 (update_caller_keys): Add check_inlinablity_for; do not
10540 reset edge caches; remove now unnecesary loop.
386d9c57 10541 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
10542 (update_all_callee_keys): Likewise.
10543 (inline_small_functions): Sanity check cache; update code
10544 recomputing it.
10545
0360f70d
BS
105462011-05-04 Bernd Schmidt <bernds@codesourcery.com>
10547
10548 PR rtl-optimization/47612
10549 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
10550 as the last insn of the sequence to be moved.
10551
7a994646
TB
105522011-05-04 Tobias Burnus <burnus@net-b.de>
10553
10554 PR fortran/48864
10555 * doc/invoke.texi (Ofast): Document that it
10556 enables Fortran's -fno-protect-parens.
10557
7a2f7208
UB
105582011-05-04 Uros Bizjak <ubizjak@gmail.com>
10559
10560 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
10561
a2d42931
EB
105622011-05-04 Eric Botcazou <ebotcazou@adacore.com>
10563
10564 * stor-layout.c (variable_size): Do not issue errors.
10565
f81b1a3d
RG
105662011-05-04 Richard Guenther <rguenther@suse.de>
10567
10568 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
10569 for array-ref indices.
10570 (tree_coverage_counter_addr): Likewise.
10571 (build_fn_info_type): Use size_int for index types.
10572 (build_gcov_info): Likewise.
10573
c62c040f
RG
105742011-05-04 Richard Guenther <rguenther@suse.de>
10575
10576 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
10577 to build_int_cst.
10578 * c-typeck.c (really_start_incremental_init): Use bitsize_int
10579 for constructor indices.
10580 (push_init_level): Likewise.
10581
1e3287d0
RG
105822011-05-04 Richard Guenther <rguenther@suse.de>
10583
10584 * explow.c (promote_mode): Move variable declarations before code.
10585
6c32445b
NF
105862011-05-04 Nathan Froyd <froydnj@codesourcery.com>
10587
10588 * tree.h (build_function_type_array): Declare.
10589 (build_varargs_function_type_array): Declare.
10590 (build_function_type_vec, build_varargs_function_type_vec): Define.
10591 * tree.c (build_function_type_array_1): New function.
10592 (build_function_type_array): New function.
10593 (build_varargs_function_type_array): New function.
10594
fdabf269
RS
105952011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
10596
10597 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
10598 before setting STMT_VINFO_TYPE.
10599
a207915a
UW
106002011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10601
10602 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
10603 instead of spu_pass_by_reference.
10604
5e617be8
AK
106052011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10606
10607 * calls.c (emit_library_call_value_1): Invoke
10608 promote_function_mode hook on libcall arguments.
10609 * explow.c (promote_function_mode, promote_mode): Handle TYPE
10610 argument being NULL.
10611 * targhooks.c (default_promote_function_mode): Lisewise.
10612 * config/s390/s390.c (s390_promote_function_mode): Likewise.
10613 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
10614
10615 * doc/tm.texi: Document that TYPE argument might be NULL.
10616
486d04be
SH
106172011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10618
10619 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
10620
9b19b026
SH
106212011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10622
10623 From Bernd Schmidt
10624 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
10625
502bc3df
RO
106262011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10627
10628 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
10629 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
10630 Move ...
10631 * mips-tfile.c: ... here.
10632 Don't include coretypes.h, tm.h, filenames.h.
10633 (saber_stop): Remove definition and all calls.
10634 [__SABER__]: Remove.
10635 (__LINE__): Remove default.
10636 (Size_t, Ptrdiff_t): Remove definitions.
10637 Replace by size_t, ptrdiff_t.
10638 [!MIPS_DEBUGGING_INFO]: Remove.
10639 (SHASH_SIZE, THASH_SIZE): Remove defaults.
10640 (progname): Add const.
10641 (STATIC): Remove.
10642 Replace all uses by static.
10643 (ALIGN_SYMTABLE_OFFSET): Remove default.
10644 * mips-tdump.c: Don't include coretypes.h, tm.h.
10645 Remove !MIPS_IS_STAB guard.
10646 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
10647 $(TM_H), filenames.h dependencies.
10648 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
10649
991eb6ef
SH
106502011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10651
10652 From Jie Zhang
10653 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
10654 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10655
420ccc84
SH
106562011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10657
10658 From Bernd Schmidt
10659 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
10660 account and save/restore RETS.
10661 (PROFILE_BEFORE_PROLOGUE): Define.
10662 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
10663 the push insn to use predecrement.
10664
9f8d69ee
SH
106652011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10666
10667 From Jie Zhang
10668 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
10669
662c03f4
NC
106702011-05-04 Nick Clifton <nickc@redhat.com>
10671
10672 * config/mn10300/mn10300.c: Include cfgloop.h.
10673 (DUMP): New macro.
10674 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
10675 Lcc or a FLcc insn into the instruction stream.
10676 (mn10300_block_contains_call): New function. Returns true if the
10677 given basic block contains a CALL insn.
10678 (mn10300_loop_contains_call_insn): New function. Returns true if
10679 the given loop contains a CALL insn.
10680 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
10681 to use the SETLB and Lcc or FLcc insns.
10682 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
10683 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
10684 * config/mn10300/mn10300.opt (msetlb): New option. Used to
10685 disable the SETLB optimization.
10686 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
10687 __SETLB__ or __NO_SETLB__.
10688 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
10689 (movsf_internal): Handle MDR register.
10690 (cmpsi): Make visible.
10691 (setlb): New pattern.
10692 (Lcc): New pattern.
10693 (FLcc): New pattern.
10694
843b6915
UB
106952011-05-04 Uros Bizjak <ubizjak@gmail.com>
10696
10697 PR target/48860
10698 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
10699 for reg<->xmm moves.
10700 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
10701 (vec_concatv2di_rex64_sse): Ditto.
10702 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
10703 (*vec_extractv2di_1_rex64): Ditto.
10704
10705 Revert:
10706 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
10707
10708 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
10709 reg<->xmm moves.
10710 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
10711
d35936ab
RG
107122011-05-04 Richard Guenther <rguenther@suse.de>
10713
10714 * tree.h (int_const_binop): Remove notrunc argument.
10715 * fold-const.c (int_const_binop): Remove notrunc argument. Always
10716 create integer constants that are properly truncated.
10717 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
10718 (const_binop): Remove zero notrunc argument to int_const_binop.
10719 (size_binop_loc): Likewise.
10720 (fold_div_compare): Likewise.
10721 (maybe_canonicalize_comparison_1): Likewise.
10722 (fold_comparison): Likewise.
10723 (fold_binary_loc): Likewise.
10724 (multiple_of_p): Likewise.
10725 * expr.c (store_constructor): Likewise.
10726 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
10727 (maybe_fold_stmt_addition): Likewise.
10728 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
10729 * stor-layout.c (layout_type): Likewise.
10730 * tree-data-ref.c (tree_fold_divides_p): Likewise.
10731 * tree-sra.c (build_ref_for_offset): Likewise.
10732 (build_user_friendly_ref_for_offset): Likewise.
10733 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
10734 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
10735 * tree-ssa-loop-niter.c (inverse): Likewise.
10736 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10737 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
10738 * tree-switch-conversion.c (check_range): Likewise.
10739 (build_constructors): Likewise.
10740 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
10741 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
10742 (extract_range_from_assert): Likewise.
10743 (vrp_int_const_binop): Likewise.
10744 (extract_range_from_binary_expr): Likewise.
10745 (extract_range_from_unary_expr): Likewise.
10746 (check_array_ref): Likewise.
10747 (find_case_label_range): Likewise.
10748 (simplify_div_or_mod_using_ranges): Likewise.
10749 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
10750 comparing case labels for merging.
10751
8992c063
MW
107522011-05-03 Mark Wielaard <mjw@redhat.com>
10753
10754 * dwarf2out.c (debug_str_hash_forced): Removed.
10755 (gen_label_for_indirect_string): Removed.
10756 (get_debug_string_label): Removed.
10757 (AT_string_form): Generate label directly.
10758 (output_indirect_string): Test indirect_string_node for
10759 DW_FORM_strp instead of checking label and refcount.
10760 (prune_indirect_string): Removed.
10761 (prune_unused_types): Don't check debug_str_hash_forced or
10762 call prune_indirect_string.
10763
4868e6ea
AO
107642011-05-04 Alexandre Oliva <aoliva@redhat.com>
10765
10766 PR other/48093
10767 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
10768
01a5c0ab
AO
107692011-05-04 Alexandre Oliva <aoliva@redhat.com>
10770
10771 PR debug/47994
10772 PR debug/47919
10773 * combine.c (try_combine): Skip debug insns at m_split tests.
10774
6ac00218
MW
107752011-04-26 Mark Wielaard <mjw@redhat.com>
10776
10777 PR42288
10778 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
10779 when info_section_emitted.
10780
3af42a7b
JM
107812011-05-03 Joseph Myers <joseph@codesourcery.com>
10782
10783 * config/mips/mips-opts.h: New.
10784 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
10785 to mips-opts.h.
10786 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
10787 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
10788 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
10789 via opts pointer.
10790 * config/mips/mips.h (enum mips_code_readable_setting): Move to
10791 mips-opts.h.
10792 (mips_abi, mips_code_readable): Don't declare.
843b6915 10793 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
10794 (mabi=): Use Enum and Var.
10795 (mips_abi): New Enum and EnumValue entries.
10796 (mcode-readable=): Use Enum and Var.
10797 (mips_code_readable_setting): New Enum and EnumValue entries.
10798 (mr10k-cache-barrier=): Use Enum and Var.
10799 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
10800
1cb1a99f
JH
108012011-05-03 Jan Hubicka <jh@suse.cz>
10802
10803 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
10804 replace hash by pointer map.
10805 (cgraph_node_set_element_def, cgraph_node_set_element,
10806 const_cgraph_node_set_element, varpool_node_set_element_def,
10807 varpool_node_set_element, const_varpool_node_set_element): Remove.
10808 (free_cgraph_node_set, free_varpool_node_set): New function.
10809 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
10810 * tree-emutls.c: Free varpool node set.
10811 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
10812 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
10813 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
10814 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
10815 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
10816 Move here from ipa.c; implement using pointer_map
10817 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
10818 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
10819 debug_cgraph_node_set, varpool_node_set_new,
10820 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
10821 dump_varpool_node_set, debug_varpool_node_set):
10822 Move to ipa-uitls.c.
10823 * passes.c (ipa_write_summaries): Update.
10824
7f31f4db
SH
108252011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10826
7a2f7208
UB
10827 From Mike Frysinger:
10828 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
10829 bf542/bf544/bf547/bf548/bf549.
7f31f4db 10830
b70fce6d
UB
108312011-05-03 Uros Bizjak <ubizjak@gmail.com>
10832
10833 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
10834
265b1d82
SH
108352011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10836
10837 From Bernd Schmidt:
10838 * config/bfin/bfin.md (MOVCC): New mode_macro.
10839 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
10840 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
10841 comments from generated assembly.
10842
f0b568f3
SH
108432011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10844
10845 From Bernd Schmidt
10846 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
10847 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
10848 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
10849 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
10850 * config/bfin/lib1funcs.asm (___muldi3): New function.
10851
2c67cf6e
NF
108522011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10853
10854 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
10855 build_function_type_list instead of build_function_type.
10856 Rearrange initialization of `args' to do so.
10857
f9ac28ad
NF
108582011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10859
10860 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
10861 instead of build_function_type.
10862
22b8798c
NF
108632011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10864
10865 * config/rs6000/rs6000.c (spe_init_builtins): Call
10866 build_function_type_list instead of build_function_type.
10867 (paired_init_builtins, altivec_init_builtins): Likewise.
10868 (builtin_function_type): Likewise.
10869
4cb44528
NF
108702011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10871
10872 * config/sh/sh.c (sh_media_init_builtins): Call
10873 build_function_type_list instead of build_function_type.
10874
4c203a6a
NF
108752011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10876
10877 * config/sparc/sparc.c (sparc_file_end): Call
10878 build_function_type_list instead of build_function_type.
10879
d6a3d62b
NF
108802011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10881
10882 * config/alpha/alpha.c (alpha_init_builtins): Call
10883 build_function_type_list instead of build_function_type.
10884
de530b86
NF
108852011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10886
10887 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
10888 build_function_type_list instead of build_function_type.
10889
baeec5f2
NF
108902011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10891
10892 * config/iq2000/i2000.c (iq2000_init_builtins): Call
10893 build_function_type_list instead of build_function_type.
10894 Delete `endlink' variable.
10895
c19afe52
NF
108962011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10897
10898 * config/avr/avr.c (avr_init_builtins): Call
10899 build_function_type_list instead of build_function_type.
10900
a341df0a
NF
109012011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10902
10903 * config/picochip/picochip.c (picochip_init_builtins): Call
10904 build_function_type_list instead of build_function_type.
10905 Delete `endlink' variable.
10906
2102b1e1
NF
109072011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10908
10909 * config/bfin/bfin.c (bfin_init_builtins): Call
10910 build_function_type_list instead of build_function_type.
10911
9f111209
SH
109122011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10913
10914 From Bernd Schmidt
10915 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
10916 that's not CONST_INT. Seemingly redundant check is due to PR39768.
10917
7071d064
SH
109182011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10919
10920 From Jie Zhang:
10921 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
10922 libbffastfp overrides libgcc when -mfast-fp.
10923
748f7574 109242011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
10925
10926 Originally from Bernd Schmidt
10927 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
10928 * config/bfin/bfin.c (override_options): Test it and error if
10929 TARGET_FDPIC.
10930
1a3a9152
SH
109312011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10932
10933 Originally From Bernd Schmidt
10934 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
10935 FD-PIC.
10936
7134c090
JL
109372011-05-03 Jeff Law <law@redhat.com>
10938
10939 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
10940 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
10941 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
10942 than accessing AUX field directly. Free the AUX field before
10943 clearing it.
7134c090
JL
10944 (thread_block, thread_through_loop_header): Likewise.
10945 (thread_single_edge, mark_threaded_blocks): Likewise.
10946 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
10947 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 10948
2c7eebae
BS
109492011-05-03 Bernd Schmidt <bernds@codesourcery.com>
10950
10951 * function.c (init_function_start): Call decide_function_section.
10952 * varasm.c (decide_function_section): New function.
10953 (assemble_start_function): When not using
10954 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
10955 or first_function_block_is_cold.
10956 * rtl.h (decide_function_section): Declare.
10957
17038fcf
JJ
109582011-05-03 Uros Bizjak <ubizjak@gmail.com>
10959 Jakub Jelinek <jakub@redhat.com>
10960
10961 PR target/48774
10962 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
10963 only succeed if req_mode is the same as set_mode.
10964
3810076b
BS
109652011-05-03 Bernd Schmidt <bernds@codesourcery.com>
10966
10967 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
10968 * genemit.c (gen_exp): Handle RETURN.
10969 * emit-rtl.c (verify_rtx_sharing): Likewise.
10970 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
10971 * rtl.c (copy_rtx): RETURN is shared.
10972 * rtl.h (enum global_rtl_index): Add GR_RETURN.
10973 (ret_rtx): New.
10974 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
10975 * config/s390/s390.c (s390_emit_epilogue): Likewise.
10976 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
10977 * config/cris/cris.c (cris_expand_return): Likewise.
10978 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
10979 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
10980 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
10981 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
10982 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
10983 Likewise.
10984 * config/v850/v850.c (expand_epilogue): Likewise.
10985 * config/bfin/bfin.c (bfin_expand_call): Likewise.
10986 * config/arm/arm.md (epilogue): Likewise.
10987 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
10988 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
10989 variable to ret_reg.
10990
9efdb4ad
RG
109912011-05-03 Richard Guenther <rguenther@suse.de>
10992
10993 PR lto/48846
10994 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
10995 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
10996 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
10997
60a45536
RG
109982011-05-03 Richard Guenther <rguenther@suse.de>
10999
11000 * c-decl.c (grokdeclarator): Instead of looking at
11001 TREE_OVERFLOW check if the constant fits in the index type.
11002
3188ed59
RS
110032011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
11004
11005 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
11006 (vec_store_lanes<mode><mode>): Likewise.
11007
272c6793
RS
110082011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
11009
11010 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
11011 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
11012 convert_optab_index values.
11013 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
11014 * genopinit.c (optabs): Initialize the new optabs.
11015 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
11016 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
11017 (expand_STORE_LANES): New functions.
11018 * tree.h (build_array_type_nelts): Declare.
11019 * tree.c (build_array_type_nelts): New function.
11020 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
11021 (vect_model_load_cost): Likewise.
11022 (vect_store_lanes_supported, vect_load_lanes_supported)
11023 (vect_record_strided_load_vectors): Declare.
11024 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
11025 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
11026 (vect_transform_strided_load): Split out statement recording into...
11027 (vect_record_strided_load_vectors): ...this new function.
11028 * tree-vect-stmts.c (create_vector_array, read_vector_array)
11029 (write_vector_array, create_array_ref): New functions.
11030 (vect_model_store_cost): Add store_lanes_p argument.
11031 (vect_model_load_cost): Add load_lanes_p argument.
11032 (vectorizable_store): Try to use store-lanes functions for
11033 interleaved stores.
11034 (vectorizable_load): Likewise load-lanes and loads.
11035 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
11036 to vect_model_store_cost.
11037 (vect_build_slp_tree): Likewise vect_model_load_cost.
11038
0f6d54f7
RS
110392011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
11040
11041 * hooks.h (hook_bool_mode_uhwi_false): Declare.
11042 * hooks.c (hook_bool_mode_uhwi_false): New function.
11043 * target.def (array_mode_supported_p): New hook.
11044 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
11045 * doc/tm.texi: Regenerate.
11046 * stor-layout.c (mode_for_array): New function.
11047 (layout_type): Use it.
11048 * config/arm/arm.c (arm_array_mode_supported_p): New function.
11049 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
11050
b15eacc7
EB
110512011-05-03 Eric Botcazou <ebotcazou@adacore.com>
11052
11053 PR target/48723
11054 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
11055 for -fstack-check if the size to allocate is negative.
11056
575bfb00
LC
110572011-05-02 Lawrence Crowl <crowl@google.com>
11058
11059 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
11060 (timevar_cond_start): New for starting a timer only when it is not
11061 already running.
11062 (timevar_cond_stop): New for stopping a timer when it was not already
11063 running.
11064
11065 * timevar.c (timevar_stop): Enable start/stop timers to start again.
11066 (timevar_cond_start): New as above.
11067 (timevar_cond_stop): New as above.
11068
11069 * timevar.def: Add start/stop timers for compiler phases,
11070 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
11071 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
11072 and TV_PHASE_FINALIZE.
11073 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
11074 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
11075 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
11076 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
11077 Make unused TV_OVERLOAD into a start/stop timer.
11078
11079 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
11080 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
11081 to indicate that they are start/stop timers.
11082
11083 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
11084 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
11085 Move initialization to do_compile.
11086 (do_compile): Add initialization from above.
11087 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
11088
11089 * c-decl.c (c_write_global_declarations): Add start/stop of
11090 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
11091
11092 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
11093 or TV_PARSE_INLINE, as appropriate.
11094 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
11095 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
11096
3533b943
JM
110972011-05-02 Jason Merrill <jason@redhat.com>
11098
11099 PR c++/40975
11100 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
11101
2609a0ce
SM
111022011-05-02 Simon Martin <simartin@users.sourceforge.net>
11103
11104 PR c/35445
11105 * c-decl.c (finish_decl): Only create a composite if the types are
11106 compatible.
11107
6b0e4cbb
JM
111082011-05-02 Joseph Myers <joseph@codesourcery.com>
11109
11110 * config/fr30/fr30-protos.h (Mmode): Don't define.
11111 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
11112 definition where used.
11113 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
11114 define. Expand definitions where used.
11115 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
11116 Expand definitions where used.
11117 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
11118 rx_function_arg, rx_function_arg_advance,
11119 rx_function_arg_boundary): Expand definitions of those macros.
11120 * config/v850/v850-protos.h (Mmode): Don't define. Expand
11121 definition where used.
11122
4e938ce6
UB
111232011-05-02 Uros Bizjak <ubizjak@gmail.com>
11124
11125 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
11126 reg<->xmm moves.
11127 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
11128 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
11129 with *movv2sf_internal_rex64_avx.
11130 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
11131 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
11132 Use %v prefix in insn mnemonic to handle TARGET_AVX.
11133 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
11134 "vex" in "prefix" attribute calculation.
11135 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
11136
36019c19
SH
111372011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
11138
7a2f7208
UB
11139 PR target/47951
11140 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
11141 inputs match the output.
36019c19 11142
f69ea688
AS
111432011-05-02 Andreas Schwab <schwab@linux-m68k.org>
11144
11145 PR target/47955
11146 * config/m68k/m68k.c (m68k_expand_prologue): Set
11147 current_function_static_stack_size.
11148
c33406f5
JH
111492011-05-02 Jan Hubicka <jh@suse.cz>
11150
11151 * lto-streamer.c (lto_streamer_cache_insert_1,
11152 lto_streamer_cache_lookup, lto_streamer_cache_create,
11153 lto_streamer_cache_delete): Use pointer map instead of hashtable.
11154 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
11155
47c94d21
JM
111562011-05-02 Joseph Myers <joseph@codesourcery.com>
11157
11158 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
11159 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
11160 config/m68k/t-opts: New files.
11161 * config/m68k/m68k-tables.opt: New file (generated).
11162 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
11163 extra_options and m68k/t-opts to tmake_file.
11164 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
11165 (all_isas): Initialize using m68k-isas.def.
11166 (all_microarchs): Initialize using m68k-microarchs.def.
11167 (m68k_find_selection): Remove.
11168 (m68k_handle_option): Don't assert that global structures are in
11169 use. Use error_at. Access variables via opts pointer. Don't
11170 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
11171 directly for -m68020-40 and -m68020-60.
11172 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
11173 m68k_tune_entry here.
11174 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
11175 to m68k-opts.h.
11176 (m68k_library_id_string): Remove declaration.
4e938ce6 11177 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
11178 (m68k_library_id_string): New Variable.
11179 (march=, mcpu=, mtune=): Use Enum and Var.
11180
e562bf36
RG
111812011-05-02 Richard Guenther <rguenther@suse.de>
11182
11183 * varasm.c (output_constructor_regular_field): Compute zero-based
11184 index with double-ints. Make sure to ICE instead of producing
11185 wrong code.
11186 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
11187 in asserts. Properly use a signed type.
11188
6bec6c98
UB
111892011-05-02 Uros Bizjak <ubizjak@gmail.com>
11190
11191 * config/i386/sse.md (V): New mode iterator.
11192 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
11193 TARGET_SSE2.
11194 (V_256): Rename from AVX256MODE.
11195 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
11196 condition to all users.
11197 (VF1): Ditto.
11198 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
11199 condition to all users.
11200 (VF_128): Make V4SF mode unconditional.
11201 (VF_256): Rename from AVX256MODEF2P.
11202 (VI4F_128): Rename from SSEMODE4S.
11203 (VI8F_128): Rename from SSEMODE2D.
11204 (VI4F_256): Rename from AVX256MODE8P.
11205 (VI8F_256): Rename from AVX256MODE4P.
11206 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
11207 (ssescalarmodesuffix): Remove SF and DF modes.
11208 (SSEMODE124): Remove.
11209 (SSEMODE1248): Ditto.
11210 (SSEMODEF2P): Ditto.
11211 (AVXMODEF2P): Ditto.
11212 (AVXMODEFDP): Ditto.
11213 (AVXMODEFSP): Ditto.
11214 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
11215 unconditional.
11216 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
11217 unconditional.
11218 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
11219 xop_pcmov_<mode>256. Use V mode iterator.
11220
11221 Adjust RTX patterns globally for renamed mode attributes.
11222
2dfdcb4b
UW
112232011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11224
11225 * haifa-sched.c (sched_emit_insn): Emit insn before first
11226 non-scheduled insn. Inform back-end about new insn. Add
11227 new insn to scheduled_insns list.
11228
90bc4623
RG
112292011-05-02 Richard Guenther <rguenther@suse.de>
11230
11231 PR tree-optimization/48822
11232 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
11233 (process_scc): Indicate which iteration we start.
11234
bc0fe8cb
JH
112352011-05-02 Jan Hubicka <jh@suse.cz>
11236
11237 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
11238 (lto_section_overrun): New.
11239 * lto-section-out.c (append_block): Rename to ...
11240 (lto_append_block): ... this one; export.
11241 (lto_output_1_stream): Move lto lto-streamer.h
11242 (lto_output_data_stream): Update.
11243 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
11244 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
11245 functions.
11246
f070a9d1
RG
112472011-05-02 Richard Guenther <rguenther@suse.de>
11248
11249 * tree.c (tree_code_counts): New global array.
11250 (record_node_allocation_statistics): Count individual tree codes.
11251 (dump_tree_statistics): Dump individual code stats.
11252
09dfe187
JH
112532011-05-01 Jan Hubicka <jh@suse.cz>
11254
11255 * ipa-inline.c (caller_growth_limits): Fix thinko when
11256 looking for largest stack frame.
11257 * ipa-inline.h (dump_inline_summary): Declare.
11258 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
11259 on stack usage.
11260 (dump_inline_summary): Export.
11261 (debug_inline_summary): Declare as DEBUG_FUNCTION.
11262
6f76a878
AS
112632011-05-01 Anatoly Sokolov <aesok@post.ru>
11264
11265 * reginfo.c (memory_move_cost): Change rclass argument type form
11266 'enum reg_class' to reg_class_t.
11267 * reload.h (memory_move_cost): Update prototype.
11268 * postreload.c reload_cse_simplify_set): Change type dclass var to
11269 reg_class_t.
11270 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
11271 Update prototype.
11272 (ira_allocate_and_set_costs): Change aclass argument type form
11273 'enum reg_class' to reg_class_t.
6bec6c98 11274 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
11275 Change aclass argument type to reg_class_t.
11276 (update_conflict_hard_reg_costs): Change type aclass and pref vars
11277 to reg_class_t.
11278 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
11279 memory_move_cost call.
11280
11281 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
11282 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
11283 Change type tmp var to reg_class_t.
11284
9a4ac625
JH
112852011-04-30 Jan Hubicka <jh@suse.cz>
11286
11287 * ipa-inline.c (can_inline_edge_p): Disregard limits when
11288 inlining into function with flatten attribute.
11289 (want_inline_small_function_p): Be more realistic about inlining
11290 cold calls where callee size grows.
11291
dd8352ee
JH
112922011-04-30 Jan Hubicka <jh@suse.cz>
11293
11294 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
11295 flags.
11296
46e43d2b
AS
112972011-04-30 Anatoly Sokolov <aesok@post.ru>
11298
11299 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
11300 PRINT_OPERAND_PUNCT_VALID_P): Remove.
11301 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
11302 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
11303 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11304 (print_operand): Rename to...
11305 (sparc_print_operand): ...this. Make static. Adjust
11306 sparc_print_operand function call.
11307 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
11308 functions.
11309
ecb62563
JH
113102011-04-30 Jan Hubicka <jh@suse.cz>
11311
6bec6c98 11312 PR middle-end/48752
ecb62563
JH
11313 * ipa-inline.c (early_inliner): Disable when doing late
11314 addition of function.
11315
edb9b69e
JJ
113162011-04-30 Jakub Jelinek <jakub@redhat.com>
11317
be80a87e
JJ
11318 * dwarf2out.c (get_address_mode): New inline.
11319 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
11320 if not dwarf_strict emit
11321 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
11322 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
11323 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
11324 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
11325 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
11326 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
11327 mem_loc_descriptor callers.
11328 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11329 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
11330 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
11331 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
11332 (base_types): New variable.
11333 (get_base_type_offset, calc_base_type_die_sizes,
11334 base_type_for_mode, mark_base_types, base_type_cmp,
11335 move_marked_base_types): New functions.
11336 (calc_die_sizes): Assert that die_offset is 0 or equal to
11337 next_die_offset.
11338 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
11339 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
11340 callers. If not dwarf_strict, call mem_loc_descriptor even for
11341 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
11342 (gen_subprogram_die): Don't give up on call site parameters
11343 with non-integral or large integral modes. Adjust
11344 mem_loc_descriptor callers.
11345 (prune_unused_types): Call prune_unused_types_mark on base_types
11346 vector entries.
11347 (resolve_addr): Call mark_base_types.
11348 (dwarf2out_finish): Call move_marked_base_types.
11349
edb9b69e
JJ
11350 PR tree-optimization/48809
11351 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
11352 type.
11353 (gen_inbound_check): Don't compute index_expr - range_min in utype
11354 again, instead reuse SSA_NAME initialized in build_arrays.
11355 Remove two useless gsi_for_stmt calls.
11356
a6545a3d
JL
113572011-04-29 Jeff Law <law@redhat.com>
11358
11359 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
11360
af8bca3c
MJ
113612011-04-29 Martin Jambor <mjambor@suse.cz>
11362
11363 * cgraph.h (cgraph_postorder): Remove declaration.
11364 * ipa-utils.h (ipa_free_postorder_info): Declare.
11365 (ipa_reverse_postorder): Likewise.
11366 * cgraphunit.c: Include ipa-utils.h.
11367 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
11368 * ipa-inline.c: Include ipa-utils.h.
11369 (ipa_inline): Update call to ipa_reverse_postorder.
11370 * ipa-pure-const.c (propagate_pure_const): Update call to
11371 ipa_reduced_postorder and ipa_print_order. Call
11372 ipa_free_postorder_info to clean up.
11373 (propagate_nothrow): Likewise.
11374 * ipa-reference.c (propagate): Removed a useless call to
11375 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
11376 and ipa_print_order. Call ipa_free_postorder_info to clean up.
11377 * ipa.c: Include ipa-utils.h.
11378 (ipa_profile): Update call to ipa_reverse_postorder.
11379 (cgraph_postorder): Moved to...
11380 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
11381 (ipa_utils_print_order): Renamed to ipa_print_order.
11382 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
11383 comments.
11384 (ipa_free_postorder_info): New function.
11385 * passes.c: Include ipa-utils.h.
11386 (do_per_function_toporder): Update call to ipa_reverse_postorder.
11387 (ipa_write_summaries): Likewise.
11388 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
11389 (cgraphunit.o): Likewise.
11390 (ipa.o): Likewise.
11391 (ipa-inline.o): Likewise.
11392
b15c64ee
JH
113932011-04-29 Jan Hubicka <jh@suse.cz>
11394
11395 * gcc.dg/tree-ssa/inline-10.c: New testcase.
11396 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
11397 * ipa-inline.h (clause_t): Turn into unsigned int.
11398 * ipa-inline-analysis.c (add_clause): Do more simplification.
11399 (and_predicates): Shortcut more cases.
11400 (predicates_equal_p): Move forward; check that clauses are properly
11401 ordered.
11402 (or_predicates): Shortcut more cases.
11403 (edge_execution_predicate): Rewrite as...
11404 (set_cond_stmt_execution_predicate): ... this function; handle
11405 __builtin_constant_p.
11406 (set_switch_stmt_execution_predicate): New .
11407 (compute_bb_predicates): New.
11408 (will_be_nonconstant_predicate): Update TODO.
11409 (estimate_function_body_sizes): Use compute_bb_predicates
11410 and free them later, always try to estimate if stmt is constant.
11411 (estimate_time_after_inlining, estimate_size_after_inlining):
11412 Gracefully handle optimized out edges.
11413 (read_predicate): Fix off by one error.
11414
a88fdc2a
NP
114152011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
11416
11417 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
11418
d984c8ef
XDL
114192011-04-27 Xinliang David Li <davidxl@google.com>
11420
11421 * tree-profile.c (init_ic_make_global_vars): Set
11422 tls attribute on ic vars.
11423 * coverage.c (coverage_end_function): Initialize
11424 function_list with zero.
11425
45a2c477
RG
114262011-04-29 Richard Guenther <rguenther@suse.de>
11427
11428 * builtins.c (fold_builtin_classify_type): Use integer_type_node
11429 for the type of the result.
11430 (fold_builtin_isascii): Likewise.
11431 (fold_builtin_toascii): Use integer_type_node where appropriate.
11432 (fold_builtin_logb): Likewise.
11433 (fold_builtin_frexp): Likewise.
11434 (fold_builtin_strstr): Likewise.
11435 (fold_builtin_strpbrk): Likewise.
11436 (fold_builtin_fputs): Likewise.
11437 (fold_builtin_sprintf): Likewise.
11438 (fold_builtin_snprintf): Likewise.
11439 (fold_builtin_printf): Likewise.
11440 (do_mpfr_remquo): Use a proper type for the assigned constant.
11441 (do_mpfr_lgamma_r): Likewise.
11442 * dwarf2out.c (resolve_one_addr): Use size_int.
11443 * except.c (init_eh): Likewise.
11444 (assign_filter_values): Use integer_type_node for filter values.
11445 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
11446 indices.
11447 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
11448 for EH region numbers.
11449 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
11450 for the shift amount.
11451
eb6c3df1
RG
114522011-04-29 Richard Guenther <rguenther@suse.de>
11453
11454 * expr.h (expand_shift): Rename to ...
11455 (expand_variable_shift): ... this.
11456 (expand_shift): Take a constant shift amount.
11457 * expmed.c (expand_shift): Rename to ...
11458 (expand_variable_shift): ... this.
11459 (expand_shift): New wrapper around expand_variable_shift.
11460 * expr.c (convert_move, emit_group_load_1, emit_group_store,
11461 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
11462 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
11463 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
11464 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
11465 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
11466 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
11467 emit_store_flag_1, emit_store_flag): Likewise.
11468 * builtins.c (expand_builtin_signbit): Likewise.
11469 * calls.c (load_register_parameters): Likewise.
11470 * function.c (assign_parm_setup_block): Likewise.
11471 * lower-subreg.c (resolve_shift_zext): Likewise.
11472 * optabs.c (widen_bswap, expand_abs_nojump,
11473 expand_one_cmpl_abs_nojump, expand_float): Likewise.
11474 * spu/spu.c (spu_expand_extv): Likewise.
11475 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
11476
9f616812
RG
114772011-04-29 Richard Guenther <rguenther@suse.de>
11478
11479 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
11480 for the remapped region number.
11481 * predict.c (build_predict_expr): Use integer_type_node for the
11482 predict kind.
11483 * fold-const.c (fold_binary_loc): Use integer_type_node for
11484 the shift amount. Use a proper type for the PLUS_EXPR operand.
11485
b823cdfe
MM
114862011-04-29 Michael Matz <matz@suse.de>
11487
11488 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
11489 other trees that just builtins.
11490 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
11491
413581ba
RG
114922011-04-29 Richard Guenther <rguenther@suse.de>
11493
11494 * tree-nested.c (get_trampoline_type): Use size_int.
11495 (get_nl_goto_field): Likewise.
11496 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
11497 for all indexes.
11498 (lower_eh_constructs_2): Likewise.
11499 (lower_resx): Likewise.
11500 (lower_eh_dispatch): Likewise.
11501 * tree-mudflap.c (mf_build_string): Use size_int.
11502 (mudflap_register_call): Use integer_type_node for the flag.
11503 (mudflap_enqueue_constant): Use size_int.
11504 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
11505 instead of rebuilding it.
11506
5c04e9f4
RG
115072011-04-29 Richard Guenther <rguenther@suse.de>
11508
11509 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
11510 Handle OBJ_TYPE_REF.
11511 (find_func_aliases_for_call): Use it more consistently.
11512
5c24671b
AO
115132011-04-29 Alexandre Oliva <aoliva@redhat.com>
11514
11515 * haifa-sched.c (last_nondebug_scheduled_insn): New.
11516 (rank_for_schedule): Use it.
11517 (schedule_block): Set it.
11518
10adac51
XDL
115192011-04-28 David Li <davidxl@google.com>
11520
11521 * tree.c (crc32_string): Use crc32_byte.
11522 (crc32_byte): New function.
11523 * tree.h (crc32_byte): New function.
11524 * gcov.c (read_graph_file): Handle new cfg_cksum.
11525 (read_count_file): Ditto.
11526 * profile.c (instrument_values): Ditto.
11527 (get_exec_counts): Ditto.
11528 (read_profile_edge_counts): Ditto.
11529 (compute_branch_probabilities): Ditto.
11530 (compute_value_histograms): Ditto.
11531 (branch_prob): Ditto.
11532 (end_branch_prob): Ditto.
11533 * coverage.c (read_counts_file): Ditto.
11534 (get_coverage_counts): Ditto.
11535 (tree_coverage_counter_addr): Ditto.
11536 (coverage_checksum_string): Ditto.
11537 (coverage_begin_output): Ditto.
11538 (coverage_end_function): Ditto.
11539 (build_fn_info_type): Ditto.
11540 (build_fn_info_value): Ditto.
11541 * libgcov.c (gcov_exit): Ditto.
11542 * gcov-dump.c (tag_function): Ditto.
11543 (compute_checksum): Remove.
11544
5d6358a5
AM
115452011-04-29 Alan Modra <amodra@gmail.com>
11546
11547 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11548 unspec plus offset. Tidy macho code.
11549
85ad2ef5
MJ
115502011-04-29 Martin Jambor <mjambor@suse.cz>
11551
11552 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
11553 node instead of a decl. Update all callers.
11554 * cgraph.h: Update declaration.
11555
437f4a00
IR
115562011-04-28 Ira Rosen <ira.rosen@linaro.org>
11557
11558 PR tree-optimization/48765
11559 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
11560 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
11561 to indicate if loop aware SLP is being used. Scan the statements
11562 and update the vectorization factor according to the type of
11563 vectorization before statement analysis.
11564 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
11565 pass it to vect_analyze_loop_operations.
11566 (vectorizable_reduction): Set number of copies to 1 in case of pure
11567 SLP statement.
11568 * tree-vect-stmts.c (vectorizable_conversion,
11569 vectorizable_assignment, vectorizable_shift,
11570 vectorizable_operation, vectorizable_type_demotion,
11571 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
11572 Likewise.
11573 (vectorizable_condition): Move the check that it is not SLP
11574 vectorization before the number of copies check.
11575 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
11576 to vectorize the loop using SLP.
11577
c6fc44f3
JJ
115782011-04-28 Jakub Jelinek <jakub@redhat.com>
11579
11580 PR middle-end/48597
11581 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
11582 inline asm.
11583
6c0170ea
JM
115842011-04-28 Joseph Myers <joseph@codesourcery.com>
11585
11586 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
11587 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
11588 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
11589 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
11590 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
11591 linux*.h headers.
6bec6c98 11592 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
11593 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11594 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11595 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 11596 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
11597 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
11598 REG_NAME.
11599 * config/i386/linux.h (REG_NAME): Don't define.
11600 * config/i386/linux64.h (REG_NAME): Don't define.
11601 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
11602 Undefine before defining.
11603
970dabbd
JH
116042011-04-28 Jan Hubicka <jh@suse.cz>
11605
6bec6c98
UB
11606 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
11607 nonconstant_names array.
970dabbd
JH
11608 (estimate_function_body_sizes): Build nonconstant_names array; handle
11609 BUILT_IN_CONSTANT_P.
11610
8d3e3924
RG
116112011-04-28 Richard Guenther <rguenther@suse.de>
11612
11613 PR bootstrap/48804
11614 Revert
11615 2011-04-28 Richard Guenther <rguenther@suse.de>
11616
11617 * tree-ssa-structalias.c (solve_constraints): Build succ graph
11618 as late as possible.
6bec6c98 11619
8576f20a
RG
116202011-04-28 Richard Guenther <rguenther@suse.de>
11621
11622 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
11623 (debug_constraint): Do it here.
11624 (dump_constraints): And here.
11625 (rewrite_constraints): And here.
11626 (dump_constraint_edge): Remove.
11627 (dump_constraint_graph): Rewrite to produce DOT output.
11628 (solve_constraints): Build succ graph as late as possible.
11629 Dump constraint graphs before and after solving.
11630
e38811ce
RG
116312011-04-28 Richard Guenther <rguenther@suse.de>
11632
11633 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11634 New function split out from ...
11635 (find_func_aliases): ... here. Call it.
11636 (find_func_aliases_for_call): Likewise.
11637
fbaf0d0c
GDR
116382011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
11639
11640 * internal-fn.h (internal_fn_name_array): Declare.
11641 (internal_fn_flags_array): Likewise.
11642
cbb734aa
UB
116432011-04-27 Uros Bizjak <ubizjak@gmail.com>
11644
11645 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
11646 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
11647 Move from sse.md.
11648 (ssemodefsuffix): Remove.
11649 (ssevecmodesuffix): New mode attribute.
11650 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
11651 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
11652 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
11653 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
11654 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
11655 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
11656 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
11657 ssemodesuffix mode attribute.
11658 (float splitters): Use ssevecmodesuffix mode attribute.
11659 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
11660 (sseinsmode): Rename from avxvecmode.
11661 (avxsizesuffix): Rename from avxmodesuffix.
11662 (sseintvecmode): Rename from avxpermvecmode.
11663 (ssedoublevecmode): Rename from ssedoublesizemode.
11664 (ssehalfvecmode): Rename from avxhalfvecmode.
11665 (ssescalarmode): Rename from avxscalarmode.
11666 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
11667 templates for ssemodesuffix mode attribute.
11668 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
11669 mode attribute.
11670
11671 Adjust RTX patterns globally for renamed mode attributes.
11672
991278ab
JH
116732011-04-27 Jan Hubcika <jh@suse.cz>
11674
11675 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
11676 * ipa-inline-analysis.c: Include alloc-pool.h.
11677 (edge_predicate_pool): New.
11678 (trye_predicate_p): New function
11679 (false_predicate_p): New function.
11680 (add_clause): Sanity check that false clauses are "optimized";
11681 never add clauses to predicate that is already known to be false.
11682 (and_predicate): Use flase_predicate_p.
11683 (evaulate_predicate): Rename to ...
11684 (evaluate_predicate): ... this one; update all callers; assert
11685 that false is not listed among possible truths.
11686 (dump_predicate): Use true_predicate_p.
11687 (account_size_time): Use false_predicate_p.
11688 (evaulate_conditions_for_edge): Rename to ...
11689 (evaluate_conditions_for_edge) ... this one.
11690 (edge_set_predicate): New function.
11691 (inline_edge_duplication_hook): Duplicate edge predicates.
11692 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 11693 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
11694 (dump_inline_summary): Update.
11695 (estimate_function_body_sizes): Set edge predicates.
11696 (estimate_calls_size_and_time): Handle predicates.
11697 (estimate_callee_size_and_time): Update.
11698 (remap_predicate): Add toplev_predicate; update comment.
11699 (remap_edge_predicates): New function.
11700 (inline_merge_summary): Compute toplev predicate; update.
11701 (read_predicate): New function.
11702 (read_inline_edge_summary): Use it.
11703 (inline_read_section): Likewise.
11704 (write_predicate): New function.
11705 (write_inline_edge_summary): Use it.
11706 (inline_write_summary): Likewise.
11707 (inline_free_summary): Free alloc pool and edge summary vec.
11708
648b5f85
RG
117092011-04-27 Richard Guenther <rguenther@suse.de>
11710
11711 * tree-ssa-structalias.c (changed_count): Remove.
11712 (changed): Use a bitmap.
11713 (unify_nodes): Adjust.
11714 (do_sd_constraint): Likewise.
11715 (do_ds_constraint): Likewise.
11716 (do_complex_constraint): Likewise.
11717 (solve_graph): Likewise.
11718
4d5dcfb2
JH
117192011-04-27 Jan Hubicka <jh@suse.cz>
11720
11721 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
11722
200eb7d2
UB
117232011-04-27 Uros Bizjak <ubizjak@gmail.com>
11724
11725 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
11726 (avx_vperm2f128_*_operand): Ditto.
11727 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
11728 Use avx_vpermilp_parallel in insn condition.
11729 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
11730 Use avx_vperm2f128_parallel in insn condition.
11731
7d6e2521
RG
117322011-04-27 Richard Guenther <rguenther@suse.de>
11733
11734 * Makefile.in (tree-ssa-structalias.o): Remove
11735 gt-tree-ssa-structalias.h dependency.
11736 (GTFILES): Remove tree-ssa-structalias.c.
11737 * tree.c (allocate_decl_uid): New function.
11738 (make_node_stat): Use it.
11739 (copy_node_stat): Likewise.
11740 * tree.h (allocate_decl_uid): Declare.
11741 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
11742 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
11743 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 11744 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
11745 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
11746 (struct heapvar_map): Likewise.
11747 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
11748 heapvar_insert): Likewise.
11749 (make_heapvar_for): Rename to ...
11750 (make_heapvar): ... this. Simplify.
11751 (fake_var_decl_obstack): New global var.
11752 (build_fake_var_decl): New function.
11753 (make_constraint_from_heapvar): Adjust.
11754 (handle_lhs_call): Likewise.
11755 (create_function_info_for): Likewise.
11756 (intra_create_variable_infos): Likewise.
11757 (init_alias_vars): Allocate fake_var_decl_obstack.
11758 (init_alias_heapvars, delete_alias_heapvars): Remove.
11759 (compute_points_to_sets): Do not call init_alias_heapvars.
11760 (ipa_pta_execute): Likewise.
11761 (delete_points_to_sets): Free fake_var_decl_obstack.
11762
526ed6c2
UW
117632011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11764
11765 * config/spu/divmovti4.c (union qword_UTItype): New data type.
11766 (si_from_UTItype, si_to_UTItype): New functions.
11767 (__udivmodti4): Use them to implement type-punning.
11768 * config/spu/multi3.c (union qword_TItype): New data type.
11769 (si_from_TItype, si_to_TItype): New functions.
11770 (__multi3): Use them to implement type-punning.
11771
c187d33c
UW
117722011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11773
11774 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
11775
40982661
JH
117762011-04-27 Jan Hubicka <jh@suse.cz>
11777
11778 * ipa-prop.c (function_insertion_hook_holder): New holder.
11779 (ipa_add_new_function): New function.
200eb7d2
UB
11780 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
11781 Register/deregister holder.
40982661 11782
9aef53ee
RG
117832011-04-27 Richard Guenther <rguenther@suse.de>
11784
11785 PR tree-optimization/48772
200eb7d2 11786 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 11787
f63d806d
RG
117882011-04-27 Richard Guenther <rguenther@suse.de>
11789
11790 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
11791 TARGET_MEM_REF handling.
11792
e1ea7451
NC
117932011-04-27 Nick Clifton <nickc@redhat.com>
11794
9b5db25d
NC
11795 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
11796 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
11797 (REG_CLASS_NAMES): Likewise.
11798 (REG_CLASS_CONTENTS): Likewise.
11799 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
11800 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
11801 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
11802 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
11803 (EVEN_REGS): New macro. Alias for QUAD_REGS.
11804 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
11805 duplicate register classes.
97d20907 11806 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
11807 (frv_register_move_cost): Likewise.
11808
e1ea7451
NC
11809 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
11810 end of the regno_reg_class array.
11811
5c2f94b4
JJ
118122011-04-27 Jakub Jelinek <jakub@redhat.com>
11813
11814 PR c/48742
11815 * c-typeck.c (build_binary_op): Don't wrap arguments if
11816 int_operands is true.
11817
57a944d7
KK
118182011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
11819
11820 PR target/48767
11821 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
11822 targetm.calls.must_pass_in_stack for void type.
11823
898b8927
JH
118242011-04-26 Jan Hubicka <jh@suse.cz>
11825
11826 * cgraphbuild.c (build_cgraph_edges): Update call
11827 of cgraph_create_edge and cgraph_create_indirect_edge.
11828 * cgraph.c (cgraph_create_edge_including_clones,
11829 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
11830 cgraph_update_edges_for_call_stmt_node): Do not take nest
11831 argument; do not initialize call_stmt_size/time.
11832 (dump_cgraph_node): Do not dump nest.
11833 (cgraph_clone_edge): Do not take loop_nest argument;
11834 do not propagate it; do not clone call_stmt_size/time.
11835 (cgraph_clone_node): Likewise.
11836 (cgraph_create_virtual_clone): Update.
11837 * cgraph.h (struct cgraph_edge): Remove
11838 call_stmt_size/call_stmt_time/loop_nest.
11839 (cgraph_create_edge, cgraph_create_indirect_edge,
11840 cgraph_create_edge_including_clones, cgraph_clone_node): Update
11841 prototype.
11842 * tree-emutls.c (gen_emutls_addr): Update.
11843 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
11844 loop_nest; handle indirect calls, too.
11845 (clone_inlined_nodes): Do not care about updating inline summaries.
11846 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
11847 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
11848 stream call_stmt_size/call_stmt_time/loop_nest.
11849 * ipa-inline.c (edge_badness): Update.
11850 (ipa_inline): dump summaries after inlining.
11851 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 11852 New.
898b8927
JH
11853 (inline_edge_summary): New function.
11854 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
11855 (inline_edge_removal_hook): Handle edge summaries.
11856 (inline_edge_duplication_hook): New hook.
11857 (inline_summary_alloc): Alloc hooks.
11858 (initialize_growth_caches): Do not register removal hooks.
11859 (free_growth_caches); Do not free removal hook.
11860 (dump_inline_edge_summary): New function.
11861 (dump_inline_summary): Use it.
11862 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
11863 (inline_update_callee_summaries): New function.
11864 (inline_merge_summary): Use it.
11865 (do_estimate_edge_time, do_estimate_edge_growth): Update.
11866 (read_inline_edge_summary): New function.
11867 (inline_read_section): Use it.
11868 (write_inline_edge_summary): New function.
11869 (inline_write_summary): Use it.
11870 (inline_free_summary): Free edge new holders.
11871 * tree-inline.c (copy_bb): Update.
11872
ffa03772
JM
118732011-04-26 Jason Merrill <jason@redhat.com>
11874
11875 * tree-eh.c (lower_try_finally_switch): Create the label along with
11876 the CASE_LABEL_EXPR.
11877
6d7b45ad
DM
118782011-04-26 David S. Miller <davem@davemloft.net>
11879 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11880
11881 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
11882 * configure: Regenerate.
11883
df10b6d4
MM
118842011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
11885
11886 PR target/48258
11887 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
11888 reduction.
11889 (VEC_reduc): New code iterator and splitters for vector reduction.
11890 (VEC_reduc_name): Ditto.
11891 (VEC_reduc_rtx): Ditto.
11892 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
11893 (reduc_<VEC_reduc_name>_v4sf): Ditto.
11894
11895 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
11896 support for extracting SF on VSX.
11897
11898 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
11899 generating xscvspdp.
11900 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
11901 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
11902 double add, minimum, maximum vector reduction.
11903 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
11904 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
11905 optimize double vector reduction.
11906 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
11907
35a5db04
JM
119082011-04-26 Joseph Myers <joseph@codesourcery.com>
11909
11910 * config/fr30/fr30.h (inhibit_libc): Don't define.
11911 * config/m32r/m32r-protos.h: Correct comment.
11912 * config/v850/v850.h (GHS_default_section_names,
11913 GHS_current_section_names): Use tree, not union tree_node *.
11914
2f964ad6
XDL
119152011-04-26 Xinliang David Li <davidxl@google.com>
11916
200eb7d2 11917 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
11918 * c-family/c-opts.c (c_common_handle_option): Set
11919 warn_maybe_uninitialized.
11920 * opts.c (common_handle_option): Ditto.
11921 * common.opt: New option.
11922 * tree-ssa.c (warn_uninit): Add one more parameter.
11923 (warn_uninitialized_var): Pass warning code.
11924 * tree-flow.h: Interface change.
11925
9c7bd91a
RO
119262011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11927
200eb7d2 11928 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
11929 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
11930 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
11931
c2f36e21
RO
119322011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11933
11934 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
11935 * config/mips/mips.opt (mmips-tfile): Remove.
11936
11937 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
11938 mips-tdump reference to ...
200eb7d2 11939 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
11940 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
11941 reference by Tru64 UNIX.
11942
2c9da85b
JJ
119432011-04-26 Jakub Jelinek <jakub@redhat.com>
11944
0c5f6539
JJ
11945 PR debug/48768
11946 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
11947 is error_mark_node, set value to NULL.
11948
2c9da85b
JJ
11949 PR tree-optimization/48734
11950 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
11951 if return value from maybe_fold_*_comparsions isn't something
11952 the code is prepared to handle.
11953
77fa1d54
UB
119542011-04-26 Uros Bizjak <ubizjak@gmail.com>
11955
11956 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
11957 mode check.
11958 (ext_QIreg_nomode_operands): Remove.
11959 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
11960 (*andsi_1): Ditto.
11961 (*andhi_1): Ditto.
11962
0e2a6c2b
AS
119632011-04-26 Andrew Stubbs <ams@codesourcery.com>
11964
11965 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
11966
961562d8
RB
119672011-04-26 Richard Guenther <rguenther@suse.de>
11968
11969 * c-typeck.c (build_unary_op): Do not expand array-refs via
11970 pointer arithmetic. Only adjust qualifiers for function types.
11971
119722011-04-26 Richard Guenther <rguenther@suse.de>
11973
11974 PR middle-end/48694
11975 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
11976 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
11977 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
11978 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 11979
a0d260fc
PC
119802011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
11981
6bec6c98 11982 * doc/extend.texi: Document __underlying_type.
a0d260fc 11983
4d583bb9
SB
119842011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
11985
11986 * config/rs6000/titan.md (automata_option "progress"): Remove.
11987
1f3fcdc3
JL
119882011-04-25 Jeff Law <law@redhat.com>
11989
11990 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
11991
e5b0dad8
JK
119922011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
11993
11994 * system.h (ENUM_BITFIELD): Remove.
11995
5157a881 119962011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 11997 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
11998
11999 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
12000 for STORE_FLAG_VALUE==-1 case.
12001
ed4c109e
RS
120022011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
12003
12004 PR target/43804
12005 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
12006 LEGITIMATE_PIC_OPERAND_P.
12007
f3181aa2
JH
120082011-04-24 Jan Hubicka <jh@suse.cz>
12009
12010 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
12011 WPA hack.
77fa1d54
UB
12012 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
12013 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
12014 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
12015 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
12016 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
12017 Sanity check predicate length.
12018 (remap_predicate): Likewise; sanity check jump functions.
12019 (inline_read_section, inline_write_summary): Sanity check
12020 predicate length.
12021
5307cbaa
PC
120222011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
12023
12024 PR other/48748
12025 * doc/extend.texi (Type Traits): Document __is_standard_layout,
12026 __is_literal_type, and __is_trivial; update throughout about
12027 possibly cv-qualified void types.
12028
bebd5f99
GP
120292011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
12030
12031 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
12032 testsuite and make it version agnostic.
12033
7ee28a74
JH
120342011-04-22 Jan Hubicka <jh@suse.cz>
12035
12036 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
12037
16997bc0
JJ
120382011-04-23 Jakub Jelinek <jakub@redhat.com>
12039
12040 PR c/48685
12041 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
12042 to VOID_TYPE even around MODIFY_EXPR.
12043
f94d4ab1
MS
120442011-04-22 Mike Stump <mikestump@comcast.net>
12045
1a84c183 12046 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
12047 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
12048 comment.
12049
632b4f8e
JH
120502011-04-22 Jan Hubicka <jh@suse.cz>
12051
12052 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
12053 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
12054 ipa-prop.c; update all uses.
632b4f8e 12055 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
12056 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
12057 merge summary of inlined function into former caller.
632b4f8e
JH
12058 * ipa-inline.c (max_benefit): Remove.
12059 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
12060 (update_caller_keys): Use
12061 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
12062 (update_callee_keys): Likewise.
12063 (update_all_callee_keys): Likewise.
77fa1d54
UB
12064 (inline_small_functions): Do not collect max_benefit; do not reset
12065 estimated_growth; call free_growth_caches and initialize_growth_caches.
12066 * ipa-inline.h (struct condition, type clause_t, struct predicate,
12067 struct size_time_entry): New structures.
632b4f8e 12068 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
12069 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
12070 and estimated_growth.
632b4f8e
JH
12071 (edge_growth_cache_entry): New structure.
12072 (node_growth_cache, edge_growth_cache): New global vars.
12073 (estimate_growth): Turn into inline.
12074 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
12075 initialize_growth_caches, free_growth_caches): Declare.
12076 (estimate_edge_growth): Rewrite.
12077 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
12078 (reset_node_growth_cache, reset_edge_growth_cache): New inline
12079 functions.
632b4f8e
JH
12080 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
12081 (NUM_CONDITIONS): New constant.
12082 (predicate_conditions): New enum.
12083 (IS_NOT_CONSTANT): New constant.
12084 (edge_removal_hook_holder): New var.
12085 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
12086 (true_predicate, single_cond_predicate, false_predicate,
12087 not_inlined_predicate, add_condition, add_clause, and_predicates,
12088 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
12089 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
12090 evaulate_conditions_for_edge): New functions.
12091 (inline_summary_alloc): Move to heap.
12092 (inline_node_removal_hook): Clear condition and entry vectors.
12093 (inline_edge_removal_hook): New function.
12094 (initialize_growth_caches, free_growth_caches): New function.
12095 (dump_inline_summary): Update.
12096 (edge_execution_predicate): New function.
12097 (will_be_nonconstant_predicate): New function.
12098 (estimate_function_body_sizes): Compute BB and constantness predicates.
12099 (compute_inline_parameters): Do not clear estimated_growth.
12100 (estimate_edge_size_and_time): New function.
12101 (estimate_calls_size_and_time): New function.
12102 (estimate_callee_size_and_time): New function.
12103 (remap_predicate): New function.
12104 (inline_merge_summary): New function.
12105 (do_estimate_edge_time): New function based on...
12106 (estimate_edge_time): ... this one.
12107 (do_estimate_edge_growth): New function.
12108 (do_estimate_growth): New function based on....
12109 (estimate_growth): ... this one.
12110 (inline_analyze_function): Analyze after deciding on jump functions.
12111 (inline_read_section): New function.
12112 (inline_read_summary): Use it.
12113 (inline_write_summary): Write all the new data.
12114 * ipa-prop.c (ipa_get_param_decl_index): Export.
12115 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
12116 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
12117 Declare.
12118 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
12119 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
12120 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
12121 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
12122 cgraph_edge_inlinable_p): Remove.
12123 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
12124 (cgraph_process_new_functions): Update call of
12125 compute_inline_parameters.
632b4f8e 12126
1df5b0db
RG
121272011-04-22 Richard Guenther <rguenther@suse.de>
12128
12129 * tree.c (build_int_cst): Properly create canonicalized integer
12130 constants.
12131 (build_int_cst_type): Remove scary comments.
12132
ae01169c
XDL
121332011-04-22 Xinliang David Li <davidxl@google.com>
12134
12135 * toplev.c (process_options): Enable -Werror=coverage-mismatch
12136 by default when -Wno-error is not specified.
12137 * opts-global.c (decode_options): Remove call to
12138 control_warning_options.
12139
93dfac24
JJ
121402011-04-22 Jakub Jelinek <jakub@redhat.com>
12141
12142 PR tree-optimization/48717
12143 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
12144 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
12145
1b5f5069
JM
121462011-04-22 Joseph Myers <joseph@codesourcery.com>
12147
12148 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
12149 definition where used.
12150
144f4153
JJ
121512011-04-22 Jakub Jelinek <jakub@redhat.com>
12152
12153 PR c/48716
12154 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
12155 TREE_STATIC variables declared inside of some OpenMP construct.
12156
f9fd305b
MJ
121572011-04-22 Martin Jambor <mjambor@suse.cz>
12158
12159 PR middle-end/48585
1d284ec5 12160 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 12161
49819fef
AM
121622011-04-22 Alexander Monakov <amonakov@ispras.ru>
12163
12164 PR c/36750
12165 * c-typeck.c (pop_init_level): Do not warn about initializing
12166 with ` = {0}'.
12167
401f6699
AM
121682011-04-22 Alan Modra <amodra@gmail.com>
12169
12170 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
12171 when returning call_cookie.
12172 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
12173 pointers, to functions with no more vector args than the current
12174 function, and some non-local calls for ABI_V4.
12175 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
12176 sibcall_nonlocal_aix64): Combine to ..
12177 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
12178 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
12179 (sibcall_value_nonlocal_aix<mode>): ..likewise.
12180 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
12181 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
12182 operand.
12183 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
12184 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
12185 sibcall_value_symbolic_64): Delete.
12186
903d1e67
XDL
121872011-04-21 Xinliang David Li <davidxl@google.com>
12188
12189 * cgraph.h: Remove pid.
12190 * cgraph.c: Remove pid.
12191 * value-prof.c (init_node_map): New function.
12192 (del_node_map): New function.
12193 (find_func_by_funcdef_no): New function.
12194 (gimple_ic_transform): Call new function.
12195 * cgraphunit.c (cgraph_finalize_function): Remove pid.
12196 * function.c (get_last_funcdef_no): New function.
12197 * function.h (get_last_funcdef_no): New function.
12198 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
12199 to libgcov function.
12200 (tree-profiling): Call node map init and delete function.
12201
7378e95f
ILT
122022011-04-21 Ian Lance Taylor <iant@google.com>
12203
12204 * godump.c (go_format_type): Use exported Go name for anonymous
12205 field name.
12206
e84a6fcf
NF
122072011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12208
12209 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
12210 Call builtin_function_type_list instead of builtin_function_type.
12211 (UNARY, BINARY, TRINARY, QUAD): Likewise.
12212
4fe058e2
NF
122132011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12214
12215 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
12216 build_function_type_list instead of build_function_type.
12217 Delete variable `endlink'.
12218
1ba0a2d2
NF
122192011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12220
12221 * config/s390/s390.c (s390_init_builtins): Call
12222 build_function_type_list instead of build_function_type.
12223
c0676219
NF
122242011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12225
12226 * config/ia64/ia64.c (ia64_init_builtins): Call
12227 build_function_type_list instead of builtin_function_type.
12228
6ddfda8a
ER
122292011-04-21 Easwaran Raman <eraman@google.com>
12230
3a6448ea 12231 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
12232 (add_stack_var): ...and its reference here...
12233 (expand_stack_vars): ...and here.
12234 (stack_var_cmp): Sort by descending order of size.
12235 (partition_stack_vars): Change heuristic.
1d284ec5 12236 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
12237 (dump_stack_var_partition): Add newline after each partition.
12238
23756963
DA
122392011-04-21 Dimitrios Apostolou <jimis@gmx.net>
12240 Jeff Law <law@redhat.com>
12241
77fa1d54 12242 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
12243 * gengtype.c (matching_file_name_substitute): Likewise.
12244
aa2a43d2
RG
122452011-04-21 Richard Guenther <rguenther@suse.de>
12246
12247 PR lto/48703
1d284ec5 12248 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 12249
4d931f41
EB
122502011-04-21 Eric Botcazou <ebotcazou@adacore.com>
12251
12252 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
12253
f103fa7a
RG
122542011-04-21 Richard Guenther <rguenther@suse.de>
12255
12256 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
12257 file name.
12258
e19f6650
RG
122592011-04-21 Richard Guenther <rguenther@suse.de>
12260
12261 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
12262 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
12263 Use DECL_P, not SSA_VAR_P.
12264 (ptr_derefs_may_alias_p): Likewise.
12265 (ptr_deref_may_alias_ref_p_1): Likewise.
12266 (decl_refs_may_alias_p): Likewise.
12267 (refs_may_alias_p_1): Likewise.
12268 (ref_maybe_used_by_call_p_1): Likewise.
12269 (call_may_clobber_ref_p_1): Likewise.
12270 (indirect_ref_may_alias_decl_p): Assume indirect refrences
12271 are either MEM_REF or TARGET_MEM_REF.
12272 (indirect_refs_may_alias_p): Likewise.
12273 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
12274 for MEM_EXPR of indirect calls.
12275
9d1831bb
TG
122762011-04-21 Tristan Gingold <gingold@adacore.com>
12277
12278 * vmsdbgout.c (write_srccorr): Compute file length from the string.
12279 (dst_file_info_struct): Remove flen field.
12280 (lookup_filename): Remove code that set flen field.
12281
f199c029
TG
122822011-04-21 Tristan Gingold <gingold@adacore.com>
12283
12284 * config/ia64/ia64.c (ia64_start_function): Add a guard.
12285
2894086e
UB
122862011-04-21 Uros Bizjak <ubizjak@gmail.com>
12287
12288 PR target/48708
12289 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
12290 vec_extract and vec_concat for non-SSE4_1 targets.
12291
53f94a5c
RG
122922011-04-21 Richard Guenther <rguenther@suse.de>
12293
12294 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
12295 return statements.
12296
f0dca5ba
JM
122972011-04-21 Joseph Myers <joseph@codesourcery.com>
12298
12299 * config/i386/cygming.h (union tree_node, TREE): Don't define or
12300 undefine.
12301 (FILE): Don't undefine.
12302
984514ac
JM
123032011-04-21 Joseph Myers <joseph@codesourcery.com>
12304
12305 * config/alpha/alpha.c (struct machine_function): Use rtx, not
12306 struct rtx_def *.
12307 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
12308 struct rtx_def *.
12309 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 12310 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
12311 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
12312 rtx_def *.
12313 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
12314 definitions where used.
12315 * config/microblaze/microblaze.h (struct microblaze_args): Use
12316 rtx, not struct rtx_def *.
12317 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
12318 rtx_def *.
2894086e
UB
12319 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
12320 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
12321 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
12322 not struct rtx_def *.
12323 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
12324 struct rtx_def *.
12325 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
12326 rtx_def *.
2894086e 12327 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 12328
0b5a2724
RS
123292011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12330
12331 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
12332 operand_equal_p to compare DR_BASE_ADDRESSes.
12333 (vect_check_interleaving): Likewise.
12334
4b18d683
RS
123352011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12336
12337 PR target/46329
12338 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
12339 for all Neon struct constants.
12340
1a627b35
RS
123412011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12342
12343 * target.def (legitimate_constant_p): New hook.
12344 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
12345 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
12346 * doc/tm.texi: Regenerate.
12347 * hooks.h (hook_bool_mode_rtx_true): Declare.
12348 * hooks.c (hook_bool_mode_rtx_true): Define.
12349 * system.h (LEGITIMATE_CONSTANT_P): Poison.
12350 * calls.c (precompute_register_parameters): Replace uses of
12351 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
12352 (emit_library_call_value_1): Likewise.
12353 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
12354 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
12355 * ira-costs.c (scan_one_insn): Likewise.
12356 * recog.c (general_operand, immediate_operand): Likewise.
12357 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
12358 * reload1.c (init_eliminable_invariants): Likewise.
12359
12360 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
12361 mode argument.
12362 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
12363 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
12364 argument.
12365 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12366 * config/alpha/predicates.md (input_operand): Update call to
12367 alpha_legitimate_constant_p.
12368
12369 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
12370 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
12371 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
12372 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12373 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
12374 (arm_legitimate_constant_p): New functions.
12375 (arm_cannot_force_const_mem): Make static.
12376
12377 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
12378
12379 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
12380 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
12381 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
12382 instead of bfin_legitimate_constant_p.
12383 (bfin_legitimate_constant_p): Make static. Add a mode argument.
12384 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12385
12386 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
12387
12388 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
12389
12390 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
12391 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
12392 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12393 (frv_legitimate_constant_p): Make static. Add a mode argument.
12394
12395 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
12396 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
12397 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
12398
12399 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
12400 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
12401 * config/i386/i386.c (legitimate_constant_p): Rename to...
12402 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
12403 argument.
12404 (ix86_cannot_force_const_mem): Update accordingly.
12405 (ix86_legitimate_address_p): Likewise.
12406 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12407 * config/i386/i386.md: Update commentary.
12408
12409 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
12410 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
12411 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12412 (ia64_legitimate_constant_p): Make static. Add a mode argument.
12413
12414 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
12415
12416 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
12417 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
12418 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12419 (lm32_legitimate_constant_p): Make static. Add a mode argument.
12420
12421 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
12422 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
12423 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
12424
12425 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
12426 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12427 (m32r_legitimate_constant_p): New function.
12428
12429 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
12430 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
12431 LEGITIMATE_CONSTANT_P.
12432 (LEGITIMATE_CONSTANT_P): Delete.
12433 * config/m68k/m68k.c (m68k_expand_prologue): Call
12434 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
12435 (m68k_legitimate_constant_p): New function.
12436 * config/m68k/m68k.md: Update comments.
12437
12438 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
12439 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12440 (mcore_legitimate_constant_p): New function.
12441
12442 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
12443 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
12444 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
12445 Add a mode argument.
12446 (mep_legitimate_address): Update accordingly.
12447 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12448
12449 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
12450 Delete.
12451 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
12452 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
12453 static. Check OP's mode for VOIDmode.
12454 (microblaze_legitimate_constant_p): New function.
12455 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12456
12457 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
12458 * config/mips/mips.c (mips_legitimate_constant_p): New function.
12459 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
12460 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12461 * config/mips/predicates.md: Update comments.
12462
12463 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
12464 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
12465 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12466 (mmix_legitimate_constant_p): Make static, return a bool, and take
12467 a mode argument.
12468 (mmix_print_operand_address): Update accordingly.
12469
12470 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
12471 Delete.
12472 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
12473 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
12474 static. Add a mode argument.
1a627b35
RS
12475 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12476
12477 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
12478
12479 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
12480 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12481 (pa_legitimate_constant_p): New function.
12482
12483 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
12484
12485 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
12486 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12487 (pdp11_legitimate_constant_p): New function.
12488
12489 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
12490 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12491 (rs6000_legitimate_constant_p): New function.
12492
12493 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
12494 (rx_legitimate_constant_p): ...this.
12495 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
12496 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
12497 (rx_legitimate_constant_p): ...this.
12498 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12499 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
12500
12501 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
12502 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
12503 * config/s390/s390.c (legitimate_constant_p): Rename to...
12504 (s390_legitimate_constant_p): ...this. Make static, return a bool,
12505 and add a mode argument.
12506 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12507
12508 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
12509
12510 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
12511 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12512 (sh_legitimate_constant_p): New function.
12513
12514 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
12515 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
12516 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12517 (legitimate_constant_p): Rename to...
12518 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
12519 argument.
12520 (constant_address_p): Update accordingly.
12521
12522 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
12523 argument and return a bool.
12524 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
12525 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12526 (spu_legitimate_constant_p): Add a mode argument and return a bool.
12527 (spu_rtx_costs): Update accordingly.
12528 * config/spu/predicates.md (vec_imm_operand): Likewise.
12529
12530 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
12531
12532 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
12533 * config/v850/v850.c (v850_legitimate_constant_p): New function.
12534 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12535
12536 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
12537 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
12538 * config/vax/vax.c (legitimate_constant_p): Likewise.
12539
12540 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
12541 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12542 (xtensa_legitimate_constant_p): New function.
12543
fbbf66e7
RS
125442011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12545
12546 * target.def (cannot_force_const_mem): Add a mode argument.
12547 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
12548 * doc/tm.texi: Regenerate.
12549 * hooks.h (hook_bool_mode_rtx_false): Declare.
12550 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
12551 (hook_bool_mode_const_rtx_true): Likewise.
12552 (hook_bool_mode_rtx_false): New function.
12553 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
12554 to be non-VOID. Update call to cannot_force_const_mem.
12555 (find_reloads): Update accordingly.
12556 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
12557 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
12558 argument.
12559 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
12560 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
12561 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
12562 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
12563 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
12564 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
12565 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
12566 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12567 (m68k_cannot_force_const_mem): ...this new function.
12568 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
12569 argument.
12570 (mips_const_insns, mips_legitimize_const_move): Update calls.
12571 (mips_secondary_reload_class): Likewise.
12572 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12573 (pa_cannot_force_const_mem): ...this new function.
2894086e 12574 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
12575 (rs6000_cannot_force_const_mem): ...this new function.
12576 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
12577 argument.
12578 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
12579 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
12580 to...
12581 (xtensa_cannot_force_const_mem): ...this new function.
12582
b861891b
NF
125832011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12584
12585 * config/mips/mips.c (mips16_build_function_stub): Call
12586 build_function_type_list instead of build_function_type.
12587 (mips16_build_call_stub): Likewise.
12588
34149ed5
NF
125892011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12590
12591 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
12592 instead of build_function_type.
12593
12526412
NF
125942011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12595
12596 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
12597 instead of build_function_type.
12598
3b84d61f
UB
125992011-04-20 Uros Bizjak <ubizjak@gmail.com>
12600
12601 PR target/48678
12602 * config/i386/i386.md (insv): Change operand 0 constraint to
12603 "register_operand". Change operand 1 and 2 constraint to
12604 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
12605 * config/i386/sse.md (sse4_1_pinsrb): Export.
12606 (sse2_pinsrw): Ditto.
12607 (sse4_1_pinsrd): Ditto.
12608 (sse4_1_pinsrq): Ditto.
12609 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
12610 * config/i386/i386.c (ix86_expand_pinsr): New.
12611
4a25752b
ER
126122011-04-20 Easwaran Raman <eraman@google.com>
12613
12614 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
12615 containing union type only with -fstrict-aliasing.
12616
04695783
JM
126172011-04-20 Jim Meyering <meyering@redhat.com>
12618
12619 Remove useless if-before-free tests.
12620 * calls.c (expand_call, save_area): Likewise.
12621 * cfgcleanup.c (try_forward_edges): Likewise.
12622 * collect2.c (collect_execute): Likewise.
12623 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
12624 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
12625 * coverage.c (coverage_checksum_string): Likewise.
12626 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
12627 * cselib.c (cselib_init): Likewise.
12628 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
12629 (df_set_clean_cfg): Likewise.
12630 * function.c (free_after_compilation): Likewise.
12631 * gcc.c (do_spec_1, main): Likewise.
12632 * gcov.c (create_file_names): Likewise.
12633 * gensupport.c (identify_predicable_attribute): Likewise.
12634 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
12635 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
12636 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
12637 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
12638 * ipa-pure-const.c (local_pure_const): Likewise.
12639 * ipa-reference.c (propagate): Likewise.
12640 * ira-costs.c (free_ira_costs): Likewise.
12641 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
12642 * matrix-reorg.c (mat_free): Likewise.
12643 * prefix.c (get_key_value): Likewise.
12644 * profile.c (compute_value_histograms): Likewise.
12645 * reload1.c (free_reg_equiv): Likewise.
12646 * sched-deps.c (free_deps): Likewise.
12647 * sel-sched-ir.c (fence_clear): Likewise.
12648 * sese.c (set_rename, if_region_set_false_region): Likewise.
12649 * tree-data-ref.c (free_rdg): Likewise.
12650 * tree-eh.c (lower_try_finally): Likewise.
12651 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
12652 * tree-ssa-live.c (delete_var_map): Likewise.
12653 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
12654 * tree-ssa-pre.c (phi_trans_add): Likewise.
12655
6788475a
JJ
126562011-04-20 Jakub Jelinek <jakub@redhat.com>
12657
12658 PR tree-optimization/48611
12659 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
12660 beyond ERT_MUST_NOT_THROW region.
12661
0eda4033
CM
126622011-04-20 Catherine Moore <clm@codesourcery.com>
12663
12664 * config/mips/mips.opt (mfix-24k): New.
12665 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
12666 * config/mips/mips.md (length): Increase by 4 for stores if
12667 fixing 24K errata.
12668 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
12669 all noreorder if fixing 24K errata.
12670 * doc/invoke.texi: Document mfix-24k.
12671
01475747
CLT
126722011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
12673
12674 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 12675 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 12676
bc2c1a60
AS
126772011-04-20 Andrew Stubbs <ams@codesourcery.com>
12678
12679 * config/arm/arm.c (arm_gen_constant): Move movw support ....
12680 (const_ok_for_op): ... to here.
12681
583722ee
KT
126822011-04-20 Kai Tietz <ktietz@redhat.com>
12683
2894086e
UB
12684 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
12685 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 12686
422c0989
AS
126872011-04-20 Andrew Stubbs <ams@codesourcery.com>
12688
12689 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
12690
d7978bff
RG
126912011-04-20 Richard Guenther <rguenther@suse.de>
12692
12693 PR tree-optimization/47892
12694 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
12695 are if-convertible.
12696
818412ba
EB
126972011-04-20 Eric Botcazou <ebotcazou@adacore.com>
12698
12699 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
12700
b501ce4e
TG
127012011-04-20 Tristan Gingold <gingold@adacore.com>
12702
12703 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
12704
516edfdd
GJL
127052011-04-20 Georg-Johann Lay <avr@gjlay.de>
12706
12707 PR target/18145
12708
12709 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
12710 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
12711 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
12712 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
12713 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
12714
12715 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
12716 New prototype.
12717
12718 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
12719 (avr_asm_named_section, avr_asm_output_aligned_common,
12720 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
12721 New functions to update...
12722 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
12723 (avr_asm_init_sections): Overwrite section callbacks for
12724 data_section, bss_section.
12725 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
12726 from here to...
12727 (avr_file_end): ...here.
12728
dafc9511
RG
127292011-04-20 Richard Guenther <rguenther@suse.de>
12730
12731 PR middle-end/48695
12732 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 12733 objects and types here. Adjust for their offset before comparing.
dafc9511 12734
1da0876c
RS
127352011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
12736
12737 * tree-vect-stmts.c (vectorizable_store): Only chain one related
12738 statement per copy.
12739
25583c4f
RS
127402011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
12741
12742 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
12743 (GIMPLE_H): Include $(INTERNAL_FN_H).
12744 (OBJS-common): Add internal-fn.o.
12745 (internal-fn.o): New rule.
12746 * internal-fn.def: New file.
12747 * internal-fn.h: Likewise.
12748 * internal-fn.c: Likewise.
12749 * gimple.h: Include internal-fn.h.
12750 (GF_CALL_INTERNAL): New gf_mask.
12751 (gimple_statement_call): Put fntype into a union with a new
12752 internal_fn field.
12753 (gimple_build_call_internal): Declare.
12754 (gimple_build_call_internal_vec): Likewise.
12755 (gimple_call_same_target_p): Likewise.
12756 (gimple_call_internal_p): New function.
12757 (gimple_call_internal_fn): Likewise.
12758 (gimple_call_fntype): Return null for internal calls.
12759 (gimple_call_set_fntype): Assert that the function is not internal.
12760 (gimple_call_set_fn): Likewise.
12761 (gimple_call_set_fndecl): Likewise.
12762 (gimple_call_set_internal_fn): New function.
12763 (gimple_call_addr_fndecl): Handle null functions.
12764 (gimple_call_return_type): Likewise null types.
12765 * gimple.c (gimple_build_call_internal_1): New function.
12766 (gimple_build_call_internal): Likewise.
12767 (gimple_build_call_internal_vec): Likewise.
12768 (gimple_call_same_target_p): Likewise.
12769 (gimple_call_flags): Handle calls to internal functions.
12770 (gimple_call_fnspec): New function.
12771 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
12772 (gimple_has_side_effects): Handle null functions.
12773 (gimple_rhs_has_side_effects): Likewise.
12774 (gimple_call_copy_skip_args): Handle calls to internal functions.
12775 * cfgexpand.c (expand_call_stmt): Likewise.
12776 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
12777 * gimple-fold.c (gimple_fold_call): Handle null functions.
12778 (gimple_fold_stmt_to_constant_1): Don't fold
12779 calls to internal functions.
12780 * gimple-low.c (gimple_check_call_args): Handle calls to internal
12781 functions.
12782 * gimple-pretty-print.c (dump_gimple_call): Likewise.
12783 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
12784 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
12785 (do_warn_unused_result): Likewise.
12786 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
12787 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
12788 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
12789 the target of a call.
12790 (initialize_hash_element): Update accordingly.
12791 (hashable_expr_equal_p): Use gimple_call_same_target_p.
12792 (iterative_hash_hashable_expr): Handle calls to internal functions.
12793 (print_expr_hash_elt): Likewise.
12794 * tree-ssa-pre.c (can_value_number_call): Likewise.
12795 (eliminate): Handle null functions.
12796 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
12797 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
12798 (find_func_aliases): Likewise.
12799 * value-prof.c (gimple_ic_transform): Likewise.
12800 (gimple_indirect_call_to_profile): Likewise.
12801 * lto-streamer-in.c (input_gimple_stmt): Likewise.
12802 * lto-streamer-out.c (output_gimple_stmt): Likewise.
12803
1a3118e9
JH
128042011-04-19 Jan Hubicka <jh@suse.cz>
12805
12806 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
12807 * ipa-inline.c (inline_small_functions): Compute summaries first,
12808 populate heap later.
1a3118e9 12809
fee8b6da
JH
128102011-04-19 Jan Hubicka <jh@suse.cz>
12811
12812 * cgraph.h (save_inline_function_body): Remove.
12813 * ipa-inline-transform.c: New file, broke out of...
12814 * ipa-inline.c: ... this one; Update toplevel comment.
12815 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
12816 make global.
12817 (update_noncloned_frequencies): Move to ipa-inline-transform.c
12818 (cgraph_mark_inline_edge): Rename to inline_call; move to
12819 ipa-inline-transform.c.
12820 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
12821 move to ipa-inline-transform.c
12822 (recursive_inlining, inline_small_functions, flatten_function,
12823 ipa_inline, inline_always_inline_functions,
12824 early_inline_small_functions): Update.
12825 (inline_transform): Move to ipa-inline-transform.c.
12826 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
12827 Declare.
12828 * Makefile.in (ipa-inline-transform.o): New file.
12829 * cgraphunit.c (save_inline_function_body): Move to
12830 ipa-inline-transform.c
12831
f0679612
DD
128322011-04-19 DJ Delorie <dj@redhat.com>
12833
12834 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
12835 registers if we already know there aren't any.
12836 (m32c_emit_epilogue): Don't emit a barrier here.
12837 (m32c_emit_eh_epilogue): Likewise.
12838 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
12839 operands at expand time.
12840 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
12841 int" wchar type.
12842 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
12843 duplicates. Provide aliases instead.
12844 * config/m32c/prologue.md (eh_return): Emit a barrier here.
12845 (eh_epilogue): Add a "(return)" here as a hint to other parts of
12846 the compiler.
12847
32257ddc
AS
128482011-04-19 Anatoly Sokolov <aesok@post.ru>
12849
12850 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
12851 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
12852 (general_or_i64_p, sparc_register_move_cost): New function.
12853
60bea929
RO
128542011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12855
12856 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 12857 Add lynx, mipssde. Sort table.
60bea929 12858
444b3995 128592011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 12860
9d12f71a
EB
12861 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
12862 not negative.
444b3995 12863
d708ce50
JJ
128642011-04-19 Jakub Jelinek <jakub@redhat.com>
12865
12866 PR target/48678
12867 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
12868 is a SUBREG with non-MODE_INT mode inside of it.
12869
49c471e3
MJ
128702011-04-19 Martin Jambor <mjambor@suse.cz>
12871
12872 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
12873 also according to actual contants.
12874 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
12875 (gimple_fold_call): Use it.
12876 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
12877
0004f992
MJ
128782011-04-19 Martin Jambor <mjambor@suse.cz>
12879
12880 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
12881 non-pointer assignments.
12882
40591473
MJ
128832011-04-19 Martin Jambor <mjambor@suse.cz>
12884
12885 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
12886 account anc_offset and otr_type from the indirect edge info.
12887 * ipa-prop.c (get_ancestor_addr_info): New function.
12888 (compute_complex_ancestor_jump_func): Assignment analysis moved to
12889 get_ancestor_addr_info, call it.
12890 (ipa_note_param_call): Do not initialize information about polymorphic
12891 calls, return the indirect call graph edge. Remove the last
12892 parameter, adjust all callers.
12893 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
12894 parameters. Initialize polymorphic information in the indirect edge.
12895
abe36b81
EB
128962011-04-19 Eric Botcazou <ebotcazou@adacore.com>
12897
12898 PR lto/48148
12899 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
12900 the types if they have different enumeration identifiers.
12901
e6416b30
JH
129022011-04-19 Jan Hubicka <jh@suse.cz>
12903
12904 * cgraph.h (cgraph_optimize_for_size_p): Declare.
12905 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
12906 * predict.c (cgraph_optimize_for_size_p): Break out from ...
12907 (optimize_function_for_size_p) ... here.
12908
d39132ea
RG
129092011-04-19 Richard Guenther <rguenther@suse.de>
12910
12911 PR lto/48207
12912 * tree.c (free_lang_data): Do not reset the decl-assembler-name
12913 langhook.
12914
ff7037dc
EB
129152011-04-19 Eric Botcazou <ebotcazou@adacore.com>
12916
12917 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
12918 if DECL_NO_INLINE_WARNING_P is set on the function.
12919
c1ee2892
BS
129202011-04-19 Bernd Schmidt <bernds@codesourcery.com>
12921
12922 PR fortran/47976
12923 * reload1.c (inc_for_reload): Return void. All callers changed.
12924 (emit_input_reload_insns): Don't try to delete previous output
12925 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
12926
129272011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
12928
12929 * gengtype.h: Updated copyright year.
12930 (struct input_file_st): Add inpisplugin field.
12931 (type_fileloc): New function.
12932 * gengtype.c
12933 (write_typed_struct_alloc_def): Add gcc_assert.
12934 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
12935 (write_typed_alloc_defns): Don't output for plugin files.
12936 (input_file_by_name): Clear inpisplugin field.
12937 (main): Set inpisplugin field for plugin files.
12938
897e0a89
NP
129392011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
12940
12941 * gengtype-state.c (string_eq): New.
12942 (read_state): Use string_eq instead of strcmp when creating the
12943 state_ident_tab.
12944
363ee90e
WG
129452011-04-19 Wei Guozhi <carrot@google.com>
12946
12947 PR target/47855
12948 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
12949 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
12950 linkage.
12951 * config/arm/constraints.md (Uu): New constraint.
12952 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
12953
18a24fed
TG
129542011-04-19 Tristan Gingold <gingold@adacore.com>
12955
12956 * config.gcc (-*-*-*vms): Added.
12957 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
12958 definitions moved.
12959 * config/vms/vms-ld.c: New file.
12960 * config/vms/vms-ar.c: New file.
12961 * config/vms/t-vmsnative: New file.
12962
1c13f168
XDL
129632011-04-18 Xinliang David Li <davidxl@google.com>
12964
12965 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
12966
84825707
JJ
129672011-04-18 Jakub Jelinek <jakub@redhat.com>
12968
12969 PR middle-end/48661
12970 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
12971 if TREE_TYPE (v) is non-NULL.
12972
12973 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
12974 gimple_get_virt_mehtod_for_binfo.
12975 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
12976 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
12977 callers.
12978 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12979
7d4f8d02 129802011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
12981 Steve Ellcey <sje@cup.hp.com>
12982
7d4f8d02
EB
12983 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
12984 use its mode as source mode if it isn't VOIDmode.
7254cb57 12985
474e8e70
DCR
129862011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
12987
12988 * doc/passes.texi: Fill crossref nodes.
12989
cff41484
JM
129902011-04-18 Jim Meyering <meyering@redhat.com>
12991
7d4f8d02 12992 Fix doubled-word typos in comments and strings
cff41484
JM
12993 * config/alpha/vms-unwind.h: s/for for/for/
12994 * config/arm/unwind-arm.h: Likewise.
12995 * config/microblaze/microblaze.c: Likewise.
12996 * config/sh/constraints.md: s/in in/in/
12997 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
12998
f60c2554
UB
129992011-04-18 Uros Bizjak <ubizjak@gmail.com>
13000
13001 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
13002 (AVX_FLOAT_MODE_P): Ditto.
13003 (AVX128_VEC_FLOAT_MODE_P): Ditto.
13004 (AVX256_VEC_FLOAT_MODE_P): Ditto.
13005 (AVX_VEC_FLOAT_MODE_P): Ditto.
13006 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
13007 (UNSPEC_MASKSTORE): Ditto.
13008 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
13009 Merge from <sse>_movmsk<ssemodesuffix> and
13010 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
13011 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
13012 iterator.
13013 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
13014 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
13015 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
13016
09a2806f
JH
130172011-04-18 Jan Hubicka <jh@suse.cz>
13018
8a8dccb2
JH
13019 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
13020
09a2806f
JH
13021 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
13022 (want_inline_function_called_once_p): Break out the logic from
13023 ipa_inline.
13024 (edge_badness): Ensure that profile is not misupdated.
13025 (lookup_recursive_calls): Prioritize by call frequencies.
13026 (inline_small_functions): Move program size estimates here;
13027 actually process whole queue even when unit growth has been
13028 met. (to properly compute inline_failed reasons and for the
f60c2554 13029 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
13030 (ipa_inline): Remove unit summary code; first inline hot calls
13031 of functions called once, cold calls next.
13032 (order, nnodes): Remove unused variables.
13033 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
13034 (GTFILES): Remove ipa-inline.c
13035 * sel-sched.c (fill_insns): Silence uninitialized var warning.
13036
3eea52ef
EB
130372011-04-18 Eric Botcazou <ebotcazou@adacore.com>
13038
13039 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
13040
229a1c59 130412011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 13042 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
13043
13044 * arm.c (neon_builtin_type_bits): Remove.
13045 (typedef enum neon_builtin_mode): New.
13046 (T_MAX): Don't define.
13047 (typedef enum neon_builtin_datum): Remove bits, codes[],
13048 num_vars and base_fcode. Add mode, code and fcode.
13049 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
13050 VAR10): Change accordingly.
13051 (neon_builtin_data[]): Change accordingly
13052 (arm_init_neon_builtins): Change accordingly.
13053 (neon_builtin_compare): Remove.
13054 (locate_neon_builtin_icode): Remove.
13055 (arm_expand_neon_builtin): Change accordingly.
13056
13057 * arm.h (enum arm_builtins): Move to ...
13058 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
13059
13060 * arm.c (arm_builtin_decl): Declare.
13061 (TARGET_BUILTIN_DECL): Define.
13062 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
13063 (arm_builtin_decls[]): New.
13064 (arm_init_neon_builtins): Store builtin declarations in
13065 arm_builtin_decls[].
13066 (arm_init_tls_builtins): Likewise.
13067 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
13068 (arm_builtin_decl): New.
13069
75e802cc
RG
130702011-04-18 Richard Guenther <rguenther@suse.de>
13071
13072 * tree.c (upper_bound_in_type): Build properly canonicalized
13073 INTEGER_CSTs.
13074 (lower_bound_in_type): Likewise.
13075
3b45a007
RG
130762011-04-18 Richard Guenther <rguenther@suse.de>
13077
13078 * gimple.h (gimple_call_addr_fndecl): New function.
13079 (gimple_call_fndecl): Use it.
13080 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
13081 for direct calls.
13082 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
13083 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
13084
d25a79ea
RG
130852011-04-18 Richard Guenther <rguenther@suse.de>
13086
13087 PR middle-end/48650
13088 * tree.c (build_string): STRING_CST is now derived from tree_typed.
13089
7d5fc814
EB
130902011-04-18 Eric Botcazou <ebotcazou@adacore.com>
13091
13092 PR lto/48492
13093 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
13094 DECL_IN_CONSTANT_POOL without RTL.
13095
7e7cfcf6
UW
130962011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
13097 Ira Rosen <ira.rosen@linaro.org>
13098
13099 PR target/48252
13100 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
13101 to match neon_vzip/vuzp/vtrn_internal.
13102 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
13103 outputs explicitly dependent on both inputs.
13104 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
13105
49eab32e
JJ
131062011-04-18 Jakub Jelinek <jakub@redhat.com>
13107
13108 PR tree-optimization/48616
13109 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
13110 whether the shift is by scalar or vector based on whether all SLP
13111 scalar stmts have the same rhs.
13112
e54170f4
CLT
131132011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
13114
13115 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
13116 memory operands.
13117
b14ee6c9
RS
131182011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
13119
269e0e18 13120 PR target/43700
b14ee6c9
RS
13121 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
13122 registers.
13123
10158cd3
JH
131242011-04-17 Jan Hubicka <jh@suse.cz>
13125
13126 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
13127 * cgrpahunit.c (cgraph_finalize_function): Do not set
13128 finalized_by_frontend.
10158cd3
JH
13129 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13130 finalized_by_frontend.
13131
2e9bb6ba
JH
131322011-04-17 Jan Hubicka <jh@suse.cz>
13133
13134 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
13135 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
13136 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
13137 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
13138 method.
2e9bb6ba
JH
13139 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
13140 gimple-fold.c
13141 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
13142
beb628e1
EB
131432011-04-17 Eric Botcazou <ebotcazou@adacore.com>
13144
13145 PR lto/48538
13146 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
13147 is non-null before accessing it.
13148 (input_cgraph): Remove trailing spaces.
13149
3e2fdd24
RE
131502011-04-17 Revital Eres <revital.eres@linaro.org>
13151
13152 * params.def (sms-min-sc): New param flag.
13153 * modulo-sched.c (sms_schedule): Use it.
13154 * doc/invoke.texi (sms-min-sc): Document it.
13155
4c0f7679
JH
131562011-04-17 Jan Hubicka <jh@suse.cz>
13157
13158 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
13159 present, also set gimple_call_set_cannot_inline.
13160 * ipa-inline.c: Update toplevel comment.
13161 (MAX_TIME): Remove.
13162 (cgraph_clone_inlined_nodes): Fix linebreaks.
13163 (cgraph_check_inline_limits): Restructure to ...
13164 (caller_growth_limits): ... this one; be more tolerant
13165 on growth in nested inline chains; add explanatory comment;
13166 fix stack accounting thinko introduced by previous patch.
13167 (cgraph_default_inline_p): Remove.
13168 (report_inline_failed_reason): New function.
13169 (can_inline_edge_p): New function.
13170 (can_early_inline_edge_p): New function.
13171 (leaf_node_p): Move upwards in file.
13172 (want_early_inline_function_p): New function.
13173 (want_inline_small_function_p): New function.
13174 (want_inline_self_recursive_call_p): New function.
13175 (cgraph_edge_badness): Rename to ...
13176 (edge_badness) ... this one; fix linebreaks.
13177 (update_edge_key): Update call of edge_baddness; add
13178 detailed dump about queue updates.
13179 (update_caller_keys): Use can_inline_edge_p and
13180 want_inline_small_function_p.
13181 (cgraph_decide_recursive_inlining): Rename to...
13182 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
13183 want_inline_self_recursive_call_p; simplify and remove no longer
13184 valid FIXME.
4c0f7679
JH
13185 (cgraph_set_inline_failed): Remove.
13186 (add_new_edges_to_heap): Use can_inline_edge_p and
13187 want_inline_small_function_p.
13188 (cgraph_decide_inlining_of_small_functions): Rename to ...
13189 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
13190 can/want predicates; cleanup debug ouput; work edges till fibheap
13191 is exhausted and do not stop once unit growth is reached; remove
13192 later loop processing remaining edges.
4c0f7679
JH
13193 (cgraph_flatten): Rename to ...
13194 (flatten_function): ... this one; use can_inline_edge_p
13195 and can_early_inline_edge_p predicates.
13196 (cgraph_decide_inlining): Rename to ...
13197 (ipa_inline): ... this one; remove unreachable nodes before
13198 inlining functions called once; simplify the pass.
13199 (cgraph_perform_always_inlining): Rename to ...
13200 (inline_always_inline_functions): ... this one; use
f60c2554 13201 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
13202 (cgraph_decide_inlining_incrementally): Rename to ...
13203 (early_inline_small_functions): ... this one; simplify
13204 using new predicates; cleanup; make dumps prettier.
13205 (cgraph_early_inlining): Rename to ...
13206 (early_inliner): newer inline regular functions into always-inlines;
13207 fix updating of call stmt summaries.
13208 (pass_early_inline): Update for new names.
13209 (inline_transform): Fix formating.
13210 (gate_cgraph_decide_inlining): Rename to ...
13211 (pass_ipa_inline): ... this one.
13212 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
13213 * ipa-inline-analysis.c (dump_inline_summary): Update.
13214 (compute_inline_parameters): Do not compute disregard_inline_limits;
13215 look for mismatching arguments.
13216 (estimate_growth): Fix handlig of non-trivial self recursion.
13217 (inline_read_summary): Do not read info->disregard_inline_limits.
13218 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
13219 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
13220 and move all checks into can_inline_edge_p predicate; re-enable code
13221 comparing optimization levels.
4c0f7679
JH
13222 (expand_call_inline): Do not test inline_forbidden_into_p.
13223 * Makefile.in (ipa-inline.o): Update arguments.
13224
54333b7c
RE
132252011-04-17 Revital Eres <revital.eres@linaro.org>
13226
13227 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
13228
42c2bf92
RE
132292011-04-17 Revital Eres <revital.eres@linaro.org>
13230
13231 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
13232
b183e9e0
MM
132332011-04-17 Michael Matz <matz@suse.de>
13234
13235 PR tree-optimization/48622
13236 PR lto/48645
13237 * ipa-inline-analysis.c (inline_read_summary): Read size/time
13238 in same order as they're written.
13239
b8a17fa2
JDA
132402011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13241
13242 * config/pa/predicates.md: Reorganize and simplify predicates.
13243 Eliminate duplicate code checks.
13244 (arith_operand): Rename to arith14_operand
13245 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
13246 * config/pa/pa.md: Use renamed operands.
13247 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
13248 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
13249 arith11_operand, adddi3_operand, indexed_memory_operand,
13250 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
13251 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
13252 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
13253 move_dest_operand, move_src_operand, prefetch_cc_operand,
13254 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
13255 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
13256 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
13257 div_operand, int5_operand, movb_comparison_operator,
13258 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
13259 arith_double_operand, ireg_operand, lhs_lshift_operand,
13260 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
13261 integer_store_memory_operand): Likewise.
13262 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
13263 (integer_store_memory_operand, read_only_operand,
13264 function_label_operand, borx_reg_operand,
13265 non_hard_reg_operand): Likewise.
13266 (eq_neq_comparison_operator): Delete unused operator.
13267 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
13268 function_label_operand.
13269 (emit_move_sequence): Likewise.
13270
8dfb9f16
UB
132712011-04-16 Uros Bizjak <ubizjak@gmail.com>
13272
13273 * config/i386/sse.md (sseunpackmode): New mode attribute.
13274 (ssepackmode): Ditto.
13275 (vec_pack_trunc_<mode>): Macroize expander from
13276 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
13277 (vec_unpacks_lo_<mode>): Macroize expander from
13278 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13279 (vec_unpacks_hi_<mode>): Macroize expander from
13280 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13281 (vec_unpacku_lo_<mode>): Macroize expander from
13282 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13283 (vec_unpacku_hi_<mode>): Macroize expander from
13284 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13285 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
13286 ix86_expand_sse4_unpack.
13287 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
13288
e7f23018
JH
132892011-04-16 Jan Hubicka <jh@suse.cz>
13290
13291 * cgraphbuild.c: Include ipa-inline.h.
13292 (reset_inline_failed): Use initialize_inline_failed.
13293 * cgraph.c: Include ipa-inline.h.
13294 (cgraph_create_node_1): Do not initialize estimated_growth.
13295 (initialize_inline_failed): More to ipa-inline-analysis.c
13296 (dump_cgraph_node): Do not dump inline flags.
13297 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
13298 and disregard_inline_limits flags.
13299 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
13300 time, size, estimated_growth.
8dfb9f16
UB
13301 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
13302 Update.
e7f23018
JH
13303 * cgraphunit.c (cgraph_decide_is_function_needed): Use
13304 DECL_DISREGARD_INLINE_LIMITS.
13305 (cgraph_analyze_function): Do not initialize
13306 node->local.disregard_inline_limits.
13307 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13308 inlinable, versionable and disregard_inline_limits.
13309 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
13310 cgraph_check_inline_limits, cgraph_default_inline_p,
13311 cgraph_edge_badness, update_caller_keys, update_callee_keys,
13312 add_new_edges_to_heap): Update.
13313 (cgraph_decide_inlining_of_small_function): Update; set
13314 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
13315 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
13316 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
13317 * ipa-inline.h (inline_summary): Add inlinable, versionable,
13318 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
13319 time, size and estimated_growth parameters.
e7f23018
JH
13320 (estimate_edge_growth): Update.
13321 (initialize_inline_failed): Declare.
13322 * ipa-split.c: Include ipa-inline.h
13323 (execute_split_functions): Update.
13324 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
13325 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
13326 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
13327 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
13328 estimated_growth to INT_MIN.
13329 (inline_node_duplication_hook): Likewise.
13330 (dump_inline_summary): Dump new fields.
13331 (compute_inline_parameters): Update.
13332 (estimate_edge_time, estimate_time_after_inlining,
13333 estimate_size_after_inlining, estimate_growth, inline_read_summary,
13334 inline_write_summary):
13335 (initialize_inline_failed): Move here from cgraph.c.
13336 * tree-sra.c: Include ipa-inline.h.
13337 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
13338 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
13339 ipa-inline.h.
e7f23018 13340
e81b8564
UB
133412011-04-16 Uros Bizjak <ubizjak@gmail.com>
13342
13343 * config/i386/sse.md (V16): New mode iterator.
13344 (VI1, VI8): Ditto.
13345 (AVXMODEQI, AVXMODEDI): Remove.
13346 (sse2, sse3): New mode attribute.
13347 (mov<mode>): Use V16 mode iterator.
13348 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
13349 (push<mode>1): Use V16 mode iterator.
13350 (movmisalign<mode>): Ditto.
13351 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13352 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
13353 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13354 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
13355 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
13356 avx_movdqu<avxmodesuffix>.
13357 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
13358 *avx_movdqu<avxmodesuffix>.
13359 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
13360 avx_lddqu<avxmodesuffix>.
13361 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
13362 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
13363 avx_movnt<AVXMODEDI:mode>.
13364 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
13365 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
13366
4743d438
BS
133672011-04-16 Bernd Schmidt <bernds@codesourcery.com>
13368
13369 PR target/48629
13370 * haifa-sched.c (prune_ready_list, schedule_block): Use
13371 sched_pressure_p rather than flag_sched_pressure.
13372
748f7574 133732011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
13374
13375 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13376 cgraph_get_node instead of cgraph_get_create_node.
13377
2ba172e0
JJ
133782011-04-15 Jakub Jelinek <jakub@redhat.com>
13379
13380 * cfgexpand.c (expand_debug_expr): Use
13381 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
13382
63d2a353
MM
133832011-04-15 Michael Matz <matz@suse.de>
13384
13385 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
13386 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
13387 * function.c (gimplify_parameters): Ditto.
13388 * gimplify.c (gimplify_vla_decl): Ditto.
13389
13390 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
13391 (gimple_call_set_alloca_for_var): New inline function.
13392 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
13393 * gimple.c (gimple_build_call_from_tree): Remember
13394 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
13395 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
13396
13397 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
13398 calls if they were for VLA objects.
13399
dee74c34
MJ
134002011-04-15 Martin Jambor <mjambor@suse.cz>
13401
13402 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
13403 of ADR_EXPRs.
13404
8e5837bc
MJ
134052011-04-15 Martin Jambor <mjambor@suse.cz>
13406
13407 PR middle-end/48601
13408 * tree-emutls.c (lower_emutls_function_body): Call
13409 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
13410 result is non-NULL.
13411
0dc33c3c
NP
134122011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
13413
13414 * c-decl.c (detect_field_duplicates): Call
13415 objc_detect_field_duplicates instead of objc_get_interface_ivars.
13416
edcdea5b
NF
134172011-04-15 Nathan Froyd <froydnj@codesourcery.com>
13418
13419 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
13420 * gimple.c (gimple_asm_clobbers_memory_p): Define.
13421 * ipa-pure-const.c (check_stmt): Call it.
13422 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
13423
8456558d
RG
134242011-04-15 Richard Guenther <rguenther@suse.de>
13425
13426 PR tree-optimization/48290
13427 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
13428 Properly decide inhibiting propagation based on the valueized
13429 operand. Do loop-closed SSA form preserving here ...
13430 (init_copy_prop): ... not here.
13431
266446be
L
134322011-04-15 H.J. Lu <hongjiu.lu@intel.com>
13433
13434 PR target/48612
13435 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
13436 (*ieee_smax<mode>3): Likewise.
13437
17465c6e
AK
134382011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13439
13440 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
13441 Replace match_operand with match_dup for the third operand in
13442 these expanders.
13443
bce204e5
MK
134442011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13445
13446 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
13447 to track processing of conditionals. Update all callers.
13448 (try_combine, simplify_if_then_else): Update.
13449
3162fdf4
MK
134502011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13451
13452 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
13453 -fsched-pressure.
13454
79002a57 134552011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 13456
79002a57
GJL
13457 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
13458 instead of match_operand for operand 3.
13459
4fd3a105
RS
134602011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
13461
13462 * recog.h (insn_operand_data): Add an "allows_mem" field.
13463 * genoutput.c (output_operand_data): Initialize it.
13464 * optabs.c (maybe_legitimize_operand_same_code): New function.
13465 (maybe_legitimize_operand): Use it when matching the original
13466 op->value.
13467
ad19c4be
EB
134682011-04-15 Eric Botcazou <ebotcazou@adacore.com>
13469
13470 * gimplify.c: Fix issues in comments throughout.
13471 (voidify_wrapper_expr): Fix long line.
13472 (build_stack_save_restore): Likewise.
13473 (gimplify_loop_expr): Likewise.
13474 (gimplify_compound_lval): Likewise.
13475 (gimplify_init_ctor_eval): Likewise.
13476 (gimplify_modify_expr_rhs): Likewise.
13477 (omp_notice_threadprivate_variable): Likewise.
13478
b25aa0e8 134792011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 13480
b25aa0e8
EB
13481 * cfgexpand.c (expand_call_stmt): Convert the function type to the
13482 original one if this is not a builtin function.
e7925582 13483
09db7afe
JJ
134842011-04-14 Jakub Jelinek <jakub@redhat.com>
13485
13486 PR target/48605
13487 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
13488 offset it as needed based on top 2 bits in operands[3], change
13489 MEM mode to SFmode and mask those 2 bits away from operands[3].
13490
c59633d9
NP
134912011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
13492
13493 * c-parser.c (c_parser_objc_protocol_definition): Updated for
13494 change from objc_declare_protocols() to objc_declare_protocol().
13495
5e60198b
UB
134962011-04-14 Uros Bizjak <ubizjak@gmail.com>
13497
13498 * config/i386/sse.md (sse4_1): New mode attribute.
13499 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
13500 avx_blend<ssemodesuffix><avxmodesuffix> and
13501 sse4_1_blend<ssemodesuffix> using VF mode iterator.
13502 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
13503 avx_blendv<ssemodesuffix><avxmodesuffix> and
13504 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
13505 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
13506 avx_dp<ssemodesuffix><avxmodesuffix> and
13507 sse4_1_dp<ssemodesuffix> using VF mode iterator.
13508 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
13509 (sse4_1_packusdw): Merge with *avx_packusdw.
13510 (sse4_1_pblendvb): Merge with *avx_pblendvb.
13511 (sse4_1_pblendw): Merge with *avx_pblendw.
13512 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
13513 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
13514 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
13515 VF mode iterator.
13516 (sse4_1_round<ssescalarmodesuffix>): Merge with
13517 *avx_round<ssescalarmodesuffix>.
13518 (aesenc): Merge with *avx_aesenc.
13519 (aesenclast): Merge with *avx_aesenclast.
13520 (aesdec): Merge with *avx_aesdec.
13521 (aesdeclast): Merge with *avx_aesdeclast.
13522 (pclmulqdq): Merge with *pclmulqdq.
13523 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
13524 New predicate.
13525 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
13526
6f197850
L
135272011-04-14 H.J. Lu <hongjiu.lu@intel.com>
13528
13529 PR middle-end/48608
13530 * cfgexpand.c (get_decl_align_unit): Renamed to ...
13531 (align_local_variable): This. Update DECL_ALIGN.
13532 (add_stack_var): Updated.
13533 (expand_one_stack_var): Likewise.
13534
4a5ba3ed
RG
135352011-04-14 Richard Guenther <rguenther@suse.de>
13536
13537 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
13538 Remove.
13539 (dse_initialize_block_local_data, dse_leave_block,
13540 record_voperand_set, get_stmt_uid): Likewise.
13541 (dse_possible_dead_store_p): Allow any kind of killing stmt.
13542 (dse_optimize_stmt): Remove voperand set handling code.
13543 Simplify and improve to handle any kind of killing stmt.
13544 (dse_record_phi): Remove.
13545 (dse_enter_block): Simplify.
13546 (tree_ssa_dse): Likewise.
13547 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
13548
10a5dd5d
JH
135492011-04-14 Jan Hubicka <jh@suse.cz>
13550
13551 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
13552 * cgraph.h (struct inline_summary): Move to ipa-inline.h
13553 (cgraph_local_info): Remove inline_summary.
13554 * ipa-cp.c: Include ipa-inline.h.
13555 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
13556 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
13557 accesor.
13558 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
13559 (input_overwrite_node): Do not set inline summary.
13560 (input_node): Do not stream inline summary.
13561 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
13562 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
13563 growth; we do not have inline parameters computed for that anyway.
13564 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
13565 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
13566 (inline_summary_t): New type and VECtor.
13567 (debug_inline_summary, dump_inline_summaries): Declare.
13568 (inline_summary): Use VOCtor.
13569 (estimate_edge_growth): Kill hack computing call stmt size directly.
13570 * lto-section-in.c (lto_section_name): Add inline section.
13571 * ipa-inline-analysis.c: Include lto-streamer.h
13572 (node_removal_hook_holder, node_duplication_hook_holder): New holders
13573 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
13574 (inline_summary_vec): Define.
13575 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
13576 dump_inline_summaries): New functions.
5e60198b
UB
13577 (estimate_function_body_sizes): Properly compute size/time of outgoing
13578 calls.
13579 (compute_inline_parameters): Alloc inline_summary; do not compute
13580 size/time of incomming calls.
10a5dd5d
JH
13581 (estimate_edge_time): Avoid missing time summary hack.
13582 (inline_read_summary): Read inline summary info.
13583 (inline_write_summary): Write inline summary info.
13584 (inline_free_summary): Free all hooks and inline summary vector.
13585 * lto-streamer.h: Add LTO_section_inline_summary section.
13586 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
13587 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
13588
b602d918
RS
135892011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13590
13591 * tree-vectorizer.h (vect_strided_store_supported): Add a
13592 HOST_WIDE_INT argument.
13593 (vect_strided_load_supported): Likewise.
13594 (vect_permute_store_chain): Return void.
13595 (vect_transform_strided_load): Likewise.
13596 (vect_permute_load_chain): Delete.
13597 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
13598 count argument. Check that the count is a power of two.
13599 (vect_strided_load_supported): Likewise.
13600 (vect_permute_store_chain): Return void. Update after above changes.
13601 Assert that the access is supported.
13602 (vect_permute_load_chain): Likewise.
13603 (vect_transform_strided_load): Return void.
13604 * tree-vect-stmts.c (vectorizable_store): Update calls after
13605 above interface changes.
13606 (vectorizable_load): Likewise.
13607 (vect_analyze_stmt): Don't check for strided powers of two here.
13608
ab4472fa
RG
136092011-04-14 Richard Guenther <rguenther@suse.de>
13610
13611 PR tree-optimization/48590
13612 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
13613 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13614 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
13615 BUILT_IN_STACK_SAVE.
13616 * tree-ssa-dce.c (propagate_necessity): Handle
13617 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13618
32dabdaf
NP
136192011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
13620
13621 * c-parser.c (c_parser_objc_class_declaration): Updated call to
13622 objc_declare_class.
13623
daade206
RG
136242011-04-14 Richard Guenther <rguenther@suse.de>
13625
13626 * tree.h (get_object_alignment_1): Declare.
13627 * builtins.c (get_object_alignment_1): Split out worker from ...
13628 (get_object_alignment): ... here.
13629 * fold-const.c (get_pointer_modulus_and_residue): Use
13630 get_object_alignment_1.
13631
920e8172
RS
136322011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13633
13634 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
13635 type parameter.
13636 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
13637 parameter. Generalise code to handle arrays as well as vectors.
13638 (vect_setup_realignment): Update accordingly.
13639 * tree-vect-stmts.c (vectorizable_store): Likewise.
13640 (vectorizable_load): Likewise.
13641
5ce1ee7f
RS
136422011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13643
13644 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
13645 within the per-copy loop.
13646
6438fe33 136472011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
13648
13649 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
13650 in the dump file.
13651
6438fe33 136522011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
13653
13654 * doc/options.texi (Negative): Explicitly mention that the
13655 Negative chain must be circular.
13656
61e46a7d
NF
136572011-04-14 Nathan Froyd <froydnj@codesourcery.com>
13658
13659 * function.h (block_chainon): Declare.
13660 * function.c (block_chainon): Define.
13661
43ea6502 136622011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 13663 Eric Weddington <eric.weddington@atmel.com>
748f7574 13664 Georg-Johann Lay <avr@gjlay.de>
5e60198b 13665
f60c2554 13666 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
13667 New Includes
13668 (avr_init_builtins, avr_expand_builtin,
13669 avr_expand_delay_cycles, avr_expand_unop_builtin,
13670 avr_expand_binop_builtin ): New functions.
13671 (avr_builtin_id): New enum
13672 (struct avr_builtin_description): New struct
13673 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
13674 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 13675
43ea6502 13676 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 13677 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
13678 UNSPECV_DELAY_CYCLES): new enumeration values
13679 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
13680 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
13681 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
13682 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
13683 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
13684 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
13685 "fmulsu"): New insns
5e60198b 13686
43ea6502
AS
13687 * config/avr/avr-c.c: fix line endings
13688 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
13689 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
13690 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
13691 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
13692 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 13693
43ea6502
AS
13694 * doc/extend.texi (AVR Built-in Functions): New node
13695 (Target Builtins): Add documentation of AVR
13696 built-in functions.
13697
8a9b55f3
GJL
136982011-04-14 Georg-Johann Lay <avr@gjlay.de>
13699
13700 PR target/44643
13701 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
13702 alone. Error if non-const data has attribute progmem.
13703
94bd1825
NF
137042011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13705
13706 * tree.h (struct tree_constructor): Include tree_typed instead of
13707 tree_common.
13708 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
13709 TS_TYPED instead of TS_COMMON.
13710
5e60198b 137112011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
13712
13713 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
13714 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
13715 (sse2_psadbw): Merge with *avx_psadbw.
13716 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
13717 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
13718 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
13719 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
13720 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
13721 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
13722 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
13723 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
13724 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
13725 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
13726 (ssse3_palignrti): Merge with *avx_palignrti.
13727
4b1a4694
NF
137282011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13729
13730 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
13731 * tree-ssanames.c (fini_ssanames): VEC_free it.
13732 (make_ssa_name_fn): Update for VECness of free_ssanames.
13733 (release_ssa_name, release_dead_ssa_names): Likewise.
13734 * tree.h (struct tree_ssa_name): Include tree_typed instead of
13735 tree_common.
13736 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
13737 TS_TYPED instead of TS_COMMON.
13738
4da3b811
NF
137392011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13740
13741 * postreload-gcse.c (gcse_after_reload_main): Add calls to
13742 statistics_counter_event.
13743 * tree-ssa-copyrename.c (stats): Define.
13744 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
13745 statistics_counter_event.
13746 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
13747 (bswap_stats, widen_mul_stats): Define.
13748 (insert_reciprocals): Increment rdivs_inserted.
13749 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
13750 rfuncs_inserted. Add calls to statistics_counter_event.
13751 (execute_cse_sincos_1): Increment inserted.
13752 (execute_cse_sincos): Zeroize sincos_stats. Add call to
13753 statistics_counter_event.
13754 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
13755 of bswap_stats. Add calls to statistics_counter_event.
13756 (convert_mult_to_widen): Increment widen_mults_inserted.
13757 (convert_plusminus_to_widen): Increment maccs_inserted.
13758 (convert_mult_to_fma): Increment fmas_inserted.
13759 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
13760 calls to statistics_counter_event.
13761
89fa552a
VM
137622011-04-13 Vladimir Makarov <vmakarov@redhat.com>
13763
13764 PR rtl-optimization/48455
13765 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
13766 `temp_costs->mem_cost'.
13767
03dfc36d
JH
137682011-04-13 Jan Hubicka <jh@suse.cz>
13769
13770 * ipa-inline.h: New file.
13771 * ipa-inline-analysis.c: New file. Broken out of ...
13772 * ipa-inline.c: ... this file; update toplevel comment;
13773 include ipa-inline.h
13774 (inline_summary): Move to ipa-inline.h
13775 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
13776 ipa-inline-analysis.c.
7d4f8d02
EB
13777 (cgraph_estimate_time_after_inlining): Rename to
13778 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
13779 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
13780 to estimate_edge_growth.
13781 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
13782 rename to estimate_size_after_inlining.
13783 (cgraph_mark_inline_edge): Update for new naming convention.
13784 (cgraph_check_inline_limits): Likewise.
13785 (cgraph_edge_badness): Likewise.
13786 (cgraph_decide_recursive_inlining): Likewise.
13787 (cgraph_decide_inlining_of_small_functions): Likewise.
13788 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
13789 (cgraph_estimate_growth): Rename to estimate_growth; move to
13790 ipa-inline-analysis.c.
03dfc36d
JH
13791 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
13792 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
13793 (compute_inline_parameters): Likewise.
13794 (compute_inline_parameters_for_current): Likewise.
13795 (pass_inline_parameters): Likewise.
13796 (inline_indirect_intraprocedural_analysis): Likewise.
13797 (analyze_function): Rename to inline_analyze_function; likewise.
13798 (add_new_function): Move to ipa-inline-analysis.c.
13799 (inline_generate_summary): Likewise.
13800 (inline_read_summary): Likewise.
13801 (inline_write_summary): Likewise.
13802 * Makefile.in (ipa-inline-analysis.c): New file.
13803
7673c962
RO
138042011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13805
13806 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
13807 * configure: Regenerate.
13808
9698252f
NF
138092011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13810
13811 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
13812 instead of tree_common.
13813 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
13814 Likewise.
13815 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
13816 TS_TYPED rather than TS_COMMON.
13817 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
13818
3a7bfdd5
GJL
138192011-04-01 Georg-Johann Lay <avr@gjlay.de>
13820
13821 PR target/45263
86d83530
GJL
13822 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
13823 r20 around calls of __tablejump_elpm__
3a7bfdd5 13824
20790697
JJ
138252011-04-13 Jakub Jelinek <jakub@redhat.com>
13826
13827 PR middle-end/48591
13828 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
13829 NULL.
13830 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
13831
094d7661
BS
138322011-04-13 Bernd Schmidt <bernds@codesourcery.com>
13833
13834 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
13835 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
13836 (cfi_vec): New typedef.
13837 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
13838 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
13839 (cie_cfi_vec): New static variable.
13840 (cie_cfi_head): Delete.
13841 (add_cfi): Accept a cfi_vec * as first argument. All callers and
13842 declaration changed. Use vector rather than list operations.
13843 (new_cfi): Don't initialize the dw_cfi_next field.
13844 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
13845 rather than list operations.
13846 (lookup_cfa): Use vector rather than list operations.
13847 (output_cfis): New argument upto. Accept a cfi_vec rather than
13848 a dw_cfi_ref list head as argument. All callers changed.
13849 Iterate over the vector using upto as a maximum index.
13850 (output_all_cfis): New static function.
13851 (output_fde): Use vector rather than list operations. Use the
13852 new upto argument for output_cfis rather than manipulating a
13853 list.
13854 (dwarf2out_begin_prologue): Change initializations to match
13855 new struct members.
13856 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
13857 from the vector length rather than searching for the end of a list.
13858 Use output_all_cfis.
13859 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
13860
673a5740
NC
138612011-04-13 Nick Clifton <nickc@redhat.com>
13862
13863 * config/rx/rx.md (movmemsi): Do not use this pattern when
13864 volatile pointers are involved.
13865
1ee8b298
UB
138662011-04-13 Uros Bizjak <ubizjak@gmail.com>
13867
13868 * config/i386/sse.md (pinsrbits): Remove.
13869 (sse2_packsswb): Merge with *avx_packsswb.
13870 (sse2_packssdw): Merge with *avx_packssdw.
13871 (sse2_packuswb): Merge with *avx_packuswb.
13872 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
13873 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
13874 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
13875 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
13876 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
13877 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
13878 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
13879 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
13880 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
13881 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
13882 (sse2_loadld): Merge with *avx_loadld.
13883 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
13884 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
13885 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
13886 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
13887 (vec_concatv2di): Merge with *vec_concatv2di_avx.
13888
81f653d6
NF
138892011-04-12 Nathan Froyd <froydnj@codesourcery.com>
13890
13891 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
13892 calling TREE_CHAIN.
13893 * print-tree.c (print_node): Likewise.
13894 * tree-inline.c (copy_tree_r): Likewise.
13895 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
13896 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
13897 instead of TS_COMMON.
13898 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
13899 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
13900 (copy_node_stat): Zero TREE_CHAIN only if necessary.
13901 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
13902 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
13903 ...and these...
13904 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
13905 * tree.h: ...here.
13906 (TREE_CHAIN): Check for a TS_COMMON structure.
13907 (TREE_TYPE): Check for a TS_TYPED structure.
13908
748f7574 139092011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
13910
13911 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13912 cgraph_get_create_node instead of cgraph_node.
13913
eb345401
NP
139142011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
13915
13916 * c-parser.c (c_parser_initelt): Updated call to
13917 objc_build_message_expr.
13918 (c_parser_postfix_expression): Likewise.
13919
a6c46762
KT
139202011-04-12 Kai Tietz <ktietz@redhat.com>
13921
13922 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
13923 MASK_MS_BITFIELD_LAYOUT bit.
13924
b4ccfed9
JJ
139252011-04-12 Jakub Jelinek <jakub@redhat.com>
13926
13927 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
13928 assert it is always true.
13929 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
13930 moves.
13931
0d8a2528
NP
139322011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
13933
13934 * c-parser.c (c_lex_one_token): Rewritten conditional used when
13935 compiling Objective-C to be more efficient.
13936
06bd234a
AF
139372011-04-12 Axel Freyn <axel-freyn@gmx.de>
13938
13939 * opts-common.c (decode_cmdline_options_to_array): Remove variable
13940 argv_copied.
13941
28569ac3
RS
139422011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13943
13944 * recog.h, genoutput.c, optabs.c: Revert last patch.
13945
ae59e00d
RR
139462011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13947
81b1e7eb
UB
13948 PR target/48090
13949 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 13950
cff1b7e0
RS
139512011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13952
13953 * recog.h (insn_operand_data): Add an "allows_mem" field.
13954 * genoutput.c (output_operand_data): Initialize it.
13955 * optabs.c (maybe_legitimize_operand_same_code): New function.
13956 (maybe_legitimize_operand): Use it when matching the original
13957 op->value.
13958
77059241
RS
139592011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13960
13961 * genpreds.c (process_define_predicate): Move most processing
13962 to gensupport.c. Continue to validate the expression.
13963 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
13964 (process_define_predicate): Move processing to gensupport.c.
13965 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
13966 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
13967 (compute_predicate_codes): Moved from genrecog.c. Add lineno
13968 argument.
13969 (valid_predicate_name_p): New function, split out from old
13970 genpreds.c:process_define_predicate.
13971 (process_define_predicate): New function, combining code from
13972 old genpreds.c and genrecog.c functions.
13973 (process_rtx): Call it for DEFINE_PREDICATE and
13974 DEFINE_SPECIAL_PREDICATE.
13975
6308e208
RS
139762011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13977
13978 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
13979 size of a '%A' memory reference.
13980 (T_DREG, T_QREG): New neon_builtin_type_bits.
13981 (arm_init_neon_builtins): Assert that the load and store operands
13982 are neon_struct_operands.
13983 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
13984 (NEON_ARG_MEMORY): New builtin_arg.
13985 (neon_dereference_pointer): New function.
13986 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
13987 Handle NEON_ARG_MEMORY.
13988 (arm_expand_neon_builtin): Update after above interface changes.
13989 Use NEON_ARG_MEMORY for loads and stores.
13990 * config/arm/predicates.md (neon_struct_operand): New predicate.
13991 * config/arm/iterators.md (V_two_elem): Tweak formatting.
13992 (V_three_elem): Use BLKmode for accesses that have no associated mode.
13993 (V_four_elem): Tweak formatting.
13994 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
13995 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
13996 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
13997 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
13998 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
13999 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
14000 (neon_vst4<mode>): Replace pointer operand with a memory operand.
14001 Use %A in the output template.
14002 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
14003 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
14004 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
14005 the width of the memory access. Remove post-increment.
14006 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
14007
e5db8f2f
NC
140082011-04-12 Nick Clifton <nickc@redhat.com>
14009
14010 * config/v850/v850.c (expand_prologue): Do not use the CALLT
14011 instruction for interrupt handlers if the target is the basic V850
14012 architecture.
14013 (expand_epilogue): Likewise.
14014
74f091d6
JJ
140152011-04-12 Jakub Jelinek <jakub@redhat.com>
14016
14017 PR rtl-optimization/48549
14018 * combine.c (propagate_for_debug): Also stop after BB_END of
14019 this_basic_block. Process LAST and just stop processing after it.
14020 (combine_instructions): If last_combined_insn has been deleted,
14021 set last_combined_insn to its PREV_INSN.
14022
f20ca725
RG
140232011-04-12 Richard Guenther <rguenther@suse.de>
14024
14025 PR tree-optimization/46076
14026 * gimple.h (struct gimple_statement_call): Add fntype field.
14027 (gimple_call_fntype): Adjust.
14028 (gimple_call_set_fntype): New function.
14029 * gimple.c (gimple_build_call_1): Set the call function type.
14030 * gimplify.c (gimplify_call_expr): Preserve the function
14031 type the frontend used for the call.
14032 (gimplify_modify_expr): Likewise.
14033 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
14034 function type.
14035 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
14036 function type.
14037 * tree-ssa.c (useless_type_conversion_p): Function pointer
14038 conversions are useless.
14039
a358e188
MJ
140402011-04-12 Martin Jambor <mjambor@suse.cz>
14041
14042 * cgraph.h (cgraph_node): Remove function declaration.
14043 (cgraph_create_node): Declare.
14044 (cgraph_get_create_node): Likewise.
14045 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
14046 Updated all callers.
14047 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
14048 the decl does not already exist. Call cgraph_get_create_node instead
14049 of cgraph_node.
14050 (cgraph_get_create_node): New function.
14051 (cgraph_same_body_alias): Update comment.
14052 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
14053 assert it does not return NULL.
14054 (cgraph_update_edges_for_call_stmt): Likewise.
14055 (cgraph_clone_edge): Likewise.
14056 (cgraph_create_virtual_clone): Likewise.
14057 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
14058 instead of cgraph_node.
14059 (cgraph_add_new_function): Call cgraph_create_node or
14060 cgraph_get_create_node instead of cgraph_node.
14061 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
14062 instead of cgraph_node.
14063 (record_eh_tables): Likewise.
14064 (mark_address): Likewise.
14065 (mark_load): Likewise.
14066 (build_cgraph_edges): Call cgraph_get_create_node instead
14067 of cgraph_node.
14068 (rebuild_cgraph_edges): Likewise.
14069 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
14070 instead of cgraph_node.
14071 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
14072 cgraph_node.
14073 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
14074 cgraph_create_node instead of cgraph_node.
14075 * c-decl.c (finish_function): Call cgraph_get_create_node instead
14076 of cgraph_node.
14077 * lto-cgraph.c (input_node): Likewise.
14078 * lto-streamer-in.c (input_function): Likewise.
14079 * varasm.c (mark_decl_referenced): Likewise.
14080 (assemble_alias): Likewise.
14081
fe660d7b
MJ
140822011-04-12 Martin Jambor <mjambor@suse.cz>
14083
14084 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
14085 instead of cgraph_node and assert it does not return NULL.
14086 * lto-streamer-in.c (lto_read_body): Likewise.
14087 * omp-low.c (new_omp_context): Likewise.
14088 (create_task_copyfn): Likewise.
14089 * tree-emutls.c (lower_emutls_function_body): Likewise.
14090 * matrix-reorg.c (transform_allocation_sites): Likewise.
14091
bae5cddf
JJ
140922011-04-12 Jakub Jelinek <jakub@redhat.com>
14093
14094 PR c/48552
14095 * c-typeck.c (build_asm_expr): Error out on attempts to use
14096 void type outputs or inputs for constraints that allow reg or
14097 don't allow memory.
14098
06eb52ca
CLT
140992011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
14100 Richard Earnshaw <rearnsha@arm.com>
14101
14102 PR target/48250
14103 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
14104 to use sign-magnitude offsets. Reject unsupported unaligned
14105 cases. Add detailed description in comments.
14106 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
14107 condition from TARGET_32BIT to TARGET_ARM.
14108
648a616b
NF
141092011-04-11 Nathan Froyd <froydnj@codesourcery.com>
14110
14111 * tree.h (struct typed_tree): New.
14112 (struct tree_common): Include it instead of tree_base.
14113 (TREE_TYPE): Update for new location of type field.
14114 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
14115 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
14116 (union tree_node): Add typed field.
14117 * treestruct.def (TS_TYPED): New.
14118 * lto-streamer.c (check_handled_ts_structures): Handle it.
14119 * tree.c (MARK_TS_TYPED): New macro.
14120 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
14121
1e6d1da0
EB
141222011-04-11 Eric Botcazou <ebotcazou@adacore.com>
14123
14124 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
14125 (force_nonfallthru): Do not alter the loop nest if no basic block
14126 was created.
14127
141282011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
14129
14130 * config/i386/sse.md (VI): New mode iterator.
14131 (SSEMODEI): Remove.
14132 (AVX256MODEI): Ditto.
14133 (AVXMODEF4P): Ditto.
14134 (avxvecpsmode): Ditto.
14135 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
14136 (sse2_andnot<mode>3): New expander.
14137 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
14138 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
14139 (<any_logic:code><mode>3): Use VI mode iterator.
14140 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
14141 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
14142 (*andnottf3): Handle AVX three-operand constraints.
14143 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
14144
b1372d5d 141452011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 14146 Robert Millan <rmh@gnu.org>
b1372d5d
JM
14147
14148 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
14149 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
14150 GNU_USER_DYNAMIC_LINKER64): Define.
14151 (REG_NAME): Don't undefine.
14152 (MD_UNWIND_SUPPORT): Undefine.
14153 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
14154 (REG_NAME): Don't undefine.
14155 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 14156 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 14157
761c0c6e
JM
141582011-04-11 Joseph Myers <joseph@codesourcery.com>
14159
14160 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
14161 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
14162
26e0228f
XDL
141632011-04-11 Xinliang David Li <davidxl@google.com>
14164
14165 * value-profile.c (check_ic_target): New function.
14166 (gimple_ic_transform): Sanity check indirect call target.
14167 * gimple-low.c (gimple_check_call_args): Interface change.
14168 (gimple_check_call_matching_types): New function.
14169 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
14170
141712011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
14172
14173 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
14174 tree-pretty-print.h & realmpfr.h.
14175
a58dfa49
VM
141762011-04-11 Vladimir Makarov <vmakarov@redhat.com>
14177
14178 PR middle-end/48464
14179 * ira.c (setup_pressure_classes): Fix typo in loop condition.
14180 (setup_allocno_and_important_classes): Ditto.
14181
107fd1c1
JM
141822011-04-11 Joseph Myers <joseph@codesourcery.com>
14183
14184 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
14185 GNU_USER_DYNAMIC_LINKER.
14186 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
14187 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14188 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
14189 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14190 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14191 GNU_USER_TARGET_OS_CPP_BUILTINS.
14192 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
14193 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14194 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14195 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14196 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
14197 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14198 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14199 GNU_USER_TARGET_OS_CPP_BUILTINS.
14200 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14201 GNU_USER_DYNAMIC_LINKER.
14202 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14203 GNU_USER_TARGET_OS_CPP_BUILTINS.
14204 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
14205 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14206 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
14207 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14208 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
14209 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
14210 GNU_USER_DYNAMIC_LINKER64): Remove.
14211 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
14212 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14213 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14214 GNU_USER_DYNAMIC_LINKER.
14215 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14216 GNU_USER_TARGET_OS_CPP_BUILTINS.
14217 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14218 GNU_USER_TARGET_OS_CPP_BUILTINS.
14219 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
14220 to GNU_USER_TARGET_OS_CPP_BUILTINS.
14221 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14222 GNU_USER_TARGET_OS_CPP_BUILTINS.
14223 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
14224 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
14225 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14226 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
14227 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14228 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14229 GNU_USER_DYNAMIC_LINKER.
14230 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14231 GNU_USER_TARGET_OS_CPP_BUILTINS.
14232 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
14233 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14234 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14235 GNU_USER_DYNAMIC_LINKER.
14236 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14237 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14238 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
14239 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14240 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14241 GNU_USER_DYNAMIC_LINKER.
14242 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
14243 GNU_USER_DYNAMIC_LINKERN32.
14244 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
14245 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
14246 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
14247 GNU_USER_DYNAMIC_LINKER32.
14248 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
14249 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14250 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14251 GNU_USER_DYNAMIC_LINKER.
14252 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14253 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14254 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
14255 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 14256 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
14257 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
14258 GNU_USER_DYNAMIC_LINKER32.
14259 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14260 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
14261 GNU_USER_DYNAMIC_LINKER.
14262 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
14263 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14264 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14265 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
14266 GNU_USER_DYNAMIC_LINKER64.
14267 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
14268 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14269 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14270 GNU_USER_DYNAMIC_LINKER.
14271 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
14272 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14273 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14274 GNU_USER_DYNAMIC_LINKER.
14275 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
14276 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14277 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14278 GNU_USER_DYNAMIC_LINKER32.
14279 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14280 GNU_USER_DYNAMIC_LINKER64.
14281 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14282 GNU_USER_DYNAMIC_LINKER64.
14283 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
14284 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14285 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
14286 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 14287 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 14288
e24609cf
JM
142892011-04-11 Joseph Myers <joseph@codesourcery.com>
14290
14291 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
14292 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
14293 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
14294 GNU_USER_DYNAMIC_LINKER.
14295 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14296 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
14297 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
14298 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
14299 GNU_USER_DYNAMIC_LINKER64.
14300 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14301 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
14302 GNU_USER_LINK_EMULATION.
14303 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
14304 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
14305 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
14306 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
14307 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
14308 CPP_SPEC, CC1_SPEC): Remove.
14309 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
14310 (GNU_USER_DYNAMIC_LINKER): Define.
14311 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
14312 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
14313 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
14314 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
14315 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
14316 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
14317 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14318 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
14319 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
14320 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
14321 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
14322 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
14323 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
14324 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
14325 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
14326 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14327 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14328 GNU_USER_DYNAMIC_LINKER.
14329 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14330 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
14331 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14332 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
14333 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14334 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
14335 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
14336 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
14337 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 14338 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 14339
b8ce4e94
KT
143402011-04-11 Kai Tietz <ktietz@redhat.com>
14341
14342 PR target/9601
14343 PR target/11772
14344 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
14345 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
14346 comment.
14347 (ix86_is_msabi_thiscall): Removed.
14348 (ix86_is_type_thiscall): Likewise.
14349 (ix86_get_callcvt): New function.
14350 (ix86_comp_type_attributes): Simplify check.
14351 (ix86_function_regparm): Use ix86_get_callcvt for calling
14352 convention attribute checks.
14353 (ix86_return_pops_args): Likewise.
14354 (ix86_static_chain): Likewise.
14355 (x86_this_parameter): Likewise.
14356 (x86_output_mi_thunk): Likewise.
14357 (ix86_function_type_abi): Optimize check for types without attributes.
14358 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
14359 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
14360 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
14361 by flag-values.
14362 (IX86_BASE_CALLCVT): Helper macro.
14363 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
14364 Use ix86_get_callcvt for calling convention attribute checks and avoid
14365 symbol-decoration for stdcall in TARGET_RTD case.
14366 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
14367 Likewise.
14368 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
14369 for declaration.
14370
798dd0ba
UB
143712011-04-11 Uros Bizjak <ubizjak@gmail.com>
14372
14373 * config/i386/sse.md (VI_128): New mode iterator.
14374 (VI12_128): Rename from SSEMODE12.
14375 (VI14_128): Rename from SSEMODE14.
14376 (VI124_128): New mode iterator.
14377 (VI24_128): Rename from SSEMODE248.
14378 (VI248_128): Rename from SSEMODE248.
14379 (SSEMODE124C8): Remove.
14380 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14381 (*sse2_<plusminus_insn><mode>3): Merge with
14382 *avx_<plusminus_insn><mode>3.
14383 (*mulv8hi3): Merge with *avx_mulv8hi3.
14384 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
14385 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
14386 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
14387 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
14388 (ashr<mode>3): Merge with *avx_ashr<mode>3.
14389 (lshr<mode>3): Merge with *avx_lshr<mode>3.
14390 (ashl<mode>3): Merge with *avx_ashl<mode>3.
14391 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
14392 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
14393 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14394 (*<smaxmin:code>v8hi3): Ditto.
14395 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
14396 (*<smaxmin:code>v16qi3): Ditto.
14397 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
14398 (*sse2_eq<mode>3): Ditto.
14399 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
14400 (*sse2_gt<mode>3): Ditto.
14401 (vcondv2di): Split out of vcond<mode>.
14402 (vconduv2di): Split out of vcondu<mode>.
14403
956011be
RG
144042011-04-11 Richard Guenther <rguenther@suse.de>
14405
14406 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
14407 before calling tree_low_cst.
14408
e6313a78
RG
144092011-04-11 Richard Guenther <rguenther@suse.de>
14410
14411 * stor-layout.c (layout_type): Compute all array index size operations
14412 in the original type.
14413 (initialize_sizetypes): Add comment.
14414 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
14415
e69d7376
JM
144162011-04-11 Joseph Myers <joseph@codesourcery.com>
14417
14418 * common.opt (Tbss=, Tdata=, Ttext=): New options.
14419
9f9ebcdf
MJ
144202011-04-11 Martin Jambor <mjambor@suse.cz>
14421
14422 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
14423 of cgraph_node, handle NULL return value.
14424 (cgraph_global_info): Likewise.
14425 (cgraph_rtl_info): Likewise.
14426 * tree-inline.c (estimate_num_insns): Likewise.
14427 * gimplify.c (unshare_body): Likewise.
14428 (unvisit_body): Likewise.
14429 (gimplify_body): Likewise.
14430 * predict.c (optimize_function_for_size_p): Likewise.
14431 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
14432 (call_may_clobber_ref_p_1): Likewise.
14433 * varasm.c (function_section_1): Likewise.
14434 (assemble_start_function): Likewise.
14435
581985d7
MJ
144362011-04-11 Martin Jambor <mjambor@suse.cz>
14437
14438 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
14439 of cgraph_node.
14440 * final.c (rest_of_clean_state): Likewise.
14441 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
14442 * passes.c (pass_init_dump_file): Likewise.
14443 (execute_all_ipa_transforms): Likewise.
14444 (function_called_by_processed_nodes_p): Likewise.
14445 * predict.c (maybe_hot_frequency_p): Likewise.
14446 (probably_never_executed_bb_p): Likewise.
14447 (compute_function_frequency): Likewise.
14448 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
14449 (unnest_nesting_tree_1): Likewise.
14450 (lower_nested_functions): Likewise.
14451 * tree-optimize.c (execute_fixup_cfg): Likewise.
14452 (tree_rest_of_compilation): Likewise.
14453 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
14454 * tree-sra.c (ipa_early_sra): Likewise.
14455 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
14456 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
14457 * ipa.c (record_cdtor_fn): Likewise.
14458 * ipa-inline.c (cgraph_early_inlining): Likewise.
14459 (compute_inline_parameters_for_current): Likewise.
14460 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
14461 * ipa-pure-const.c (local_pure_const): Likewise.
14462 * ipa-split.c (split_function): Likewise.
14463 (execute_split_functions): Likewise.
14464 * cgraphbuild.c (build_cgraph_edges): Likewise.
14465 (rebuild_cgraph_edges): Likewise.
14466 (cgraph_rebuild_references): Likewise.
14467 (remove_cgraph_callee_edges): Likewise.
14468 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
14469 (verify_cgraph_node): Likewise.
14470 (cgraph_analyze_functions): Likewise.
14471 (cgraph_preserve_function_body_p): Likewise.
14472 (save_inline_function_body): Likewise.
14473 (save_inline_function_body): Likewise.
14474 * tree-inline.c (copy_bb): Likewise.
14475 (optimize_inline_calls): Likewise.
14476
57dbdc5a
MJ
144772011-04-11 Martin Jambor <mjambor@suse.cz>
14478
14479 PR tree-optimization/48195
14480 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
14481 ipa_check_create_edge_args.
14482 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
14483 ipa_check_create_edge_args.
14484 * ipa-inline.c (inline_generate_summary): Do not call
14485 ipa_check_create_node_params and ipa_check_create_edge_args.
14486 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
14487 ipa_check_create_edge_args.
14488
d108e679
AS
144892011-04-09 Anatoly Sokolov <aesok@post.ru>
14490
14491 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
14492 instead of loop.
14493 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
14494 * function.c (record_hard_reg_sets): Likewise.
14495 * ira.c (compute_regs_asm_clobbered): Likewise.
14496 * sched-deps.c (sched_analyze_1): Likewise.
14497 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
14498
3411bc59
XDL
144992011-04-09 Xinliang David Li <davidxl@google.com>
14500
14501 PR tree-optimization/PR48484
14502 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
14503 has_valid_pred lazily
14504
b365495a
DS
145052011-04-09 Duncan Sands <baldrick@free.fr>
14506
14507 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
14508
68bc509a
EB
145092011-04-08 Eric Botcazou <ebotcazou@adacore.com>
14510
14511 * combine.c (combine_validate_cost): Adjust comments. Set registered
14512 cost of I0 to zero at the end, if any.
14513
041e059f
XDL
145142011-04-08 Xinliang David Li <davidxl@google.com>
14515
68bc509a
EB
14516 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
14517 to insane profile data.
041e059f 14518
444b3995
XDL
145192011-04-08 Xinliang David Li <davidxl@google.com>
14520
14521 * ipa-cp.c (ipcp_update_profiling): Correct
14522 negative scale factor due to insane profile data.
14523
6a801cf2
XDL
145242011-04-08 Xinliang David Li <davidxl@google.com>
14525
14526 * final.c (dump_basic_block_info): New function.
14527 (final): Dump basic block.
14528 (final_scan_insn): Remove old dump.
14529
d5f3624e
SK
145302011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
14531
68bc509a
EB
14532 PR target/47829
14533 * config.gcc (i386-*-freebsd): Disable unwind table generation for
14534 crtbegin/crtend.
d5f3624e 14535
42821aff
MM
145362011-04-08 Michael Matz <matz@suse.de>
14537
14538 PR middle-end/48389
14539 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
14540 functions.
14541 (rebuild_jump_labels): Call rebuild_jump_labels_1.
14542 * rtl.h (rebuild_jump_labels_chain): Declare.
14543 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
14544 insns inserted on edges.
14545
ad7be009
JM
145462011-04-08 Joseph Myers <joseph@codesourcery.com>
14547
14548 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
14549 * config/arm/arm-arches.def: New.
14550 * config/arm/arm-opts.h: New.
14551 * config/arm/genopt.sh: New.
14552 * config/arm/arm-tables.opt: New (generated).
14553 * config/arm/arm.c (arm_handle_option, arm_target_help,
14554 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
14555 (all_architectures): Get most table contents from arm-arches.def.
14556 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
14557 arm_selected_tune here.
14558 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
14559 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
14560 (march=, mcpu=, mtune=): Use Enum and Var.
14561 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
14562 (arm.o): Update dependencies.
ecbb6fb7 14563
42821aff 145642011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
14565
14566 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
14567 of header_file.
14568 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
14569 (write_typed_alloc_defns): Likewise.
14570 (main): Calls write_typed_alloc_defns with output_header.
14571
8d189b3f
VM
145722011-04-08 Vladimir Makarov <vmakarov@redhat.com>
14573
68bc509a 14574 PR inline-asm/48435
8d189b3f
VM
14575 * ira-color.c (setup_profitable_hard_regs): Add comments.
14576 Don't take prohibited hard regs into account.
14577 (setup_conflict_profitable_regs): Rename to
14578 get_conflict_profitable_regs.
14579 (check_hard_reg_p): Check prohibited hard regs.
14580
44f370bf
NF
145812011-04-08 Nathan Froyd <froydnj@codesourcery.com>
14582
14583 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
14584 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
14585 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
14586
483d7ad3
JDA
145872011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14588
14589 PR target/48366
14590 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 14591 move from floating point to shift amount register.
483d7ad3
JDA
14592 (emit_move_sequence): Remove secondary reload support for floating
14593 point to shift amount amount register copies.
14594 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
14595 amount register copies.
14596 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
14597 register, return false if mode isn't a scalar integer mode.
14598 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
14599
97e03fa1
RG
146002011-04-08 Richard Guenther <rguenther@suse.de>
14601
14602 * gimple.c (gimple_call_flags): Remove kludge.
14603
9d40778b
AM
146042011-04-08 Alexander Monakov <amonakov@ispras.ru>
14605
14606 * sel-sched.c (sel_region_init): Move call to
14607 sel_setup_region_sched_flags after setup_current_loop_nest.
14608
19ac7892
AB
146092011-04-08 Andrey Belevantsev <abel@ispras.ru>
14610
14611 PR rtl-optimization/48272
19ac7892
AB
14612 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
14613 init_insn_reg_pressure_info. Adjust a caller.
14614 * sched-int.h (init_insn_reg_pressure_info): Declare.
14615 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
14616 when sched-pressure is enabled.
14617
0f8c63cc
RG
146182011-04-08 Richard Guenther <rguenther@suse.de>
14619
14620 * gimple.c (gimple_set_modified): Do not queue calls to
14621 MODIFIED_NORETURN_CALLS here ...
14622 * tree-ssa-operands.c (update_stmt_operands): ... but here.
14623
5e5a425e
RG
146242011-04-08 Richard Guenther <rguenther@suse.de>
14625
14626 PR lto/48467
14627 * toplev.c (lang_dependent_init): Do not open asm_out_file
14628 in WPA mode, nor perform debug machinery initialization.
14629 (finalize): Do not unlink asm_out_file in WPA mode.
14630
9bfc434b
RG
146312011-04-08 Richard Guenther <rguenther@suse.de>
14632
14633 * gimple.h (gimple_call_fntype): New function.
14634 (gimple_call_return_type): Use it.
14635 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
14636 * gimple-low.c (gimple_check_call_args): Likewise.
14637 * gimple.c (gimple_call_flags): Likewise.
14638 (gimple_call_arg_flags): Likewise.
14639 (gimple_call_return_flags): Likewise.
14640 * tree-cfg.c (verify_gimple_call): Likewise.
14641 (do_warn_unused_result): Likewise.
14642 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
14643 * value-prof.c (gimple_ic_transform): Fix fndecl check.
14644
7c1f0b40
DM
146452011-04-08 Dmitry Melnik <dm@ispras.ru>
14646
14647 PR rtl-optimization/48235
14648 * sel-sched.c (code_motion_process_successors): Recompute the last
14649 insn in basic block if control flow changed.
14650 (code_motion_path_driver): Ditto. Recompute the first insn as well.
14651 Update condition for ilist_remove.
14652
ea4d630f
AM
146532011-04-08 Alexander Monakov <amonakov@ispras.ru>
14654
14655 PR rtl-optimization/48302
14656 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
14657 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
14658 it to record added preheader blocks.
14659 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
14660 on to sel_add_loop_preheaders.
14661 (sel_region_init): Move call to setup_current_loop_nest after
14662 sel_init_bbs.
14663
07643d76
AM
146642011-04-08 Alexander Monakov <amonakov@ispras.ru>
14665
14666 PR target/48273
14667 * cfgloop.h (loop_has_exit_edges): New helper.
14668 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
14669 non-clonable.
14670 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
14671 that have no exit edges.
14672
1f3b2b4e
AM
146732011-04-08 Alexander Monakov <amonakov@ispras.ru>
14674
14675 PR rtl-optimization/48442
14676 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
14677 all callers. Adjust assert.
14678
554f1948
JJ
146792011-04-08 Jakub Jelinek <jakub@redhat.com>
14680
14681 PR tree-optimization/48377
14682 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
14683 is_packed to true even for types with smaller TYPE_ALIGN than
14684 TYPE_SIZE.
14685
ddf72388
RG
146862011-04-08 Richard Guenther <rguenther@suse.de>
14687
14688 PR bootstrap/48513
14689 * doc/tm.texi: Re-generate.
14690
0c27e2d8
WG
146912011-04-08 Wei Guozhi <carrot@google.com>
14692
14693 PR target/47855
14694 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
14695 * config/arm/arm.c (arm_attr_length_push_multi): New function.
14696 * config/arm/arm.md (*push_multi): Change the length computation to
14697 call a C function.
14698
07c5f94e
AS
146992011-04-08 Anatoly Sokolov <aesok@post.ru>
14700
14701 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
14702 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
14703 * doc/tm.texi: Regenerate.
14704 * system.h (ASM_OUTPUT_BSS): Poison.
14705 * varasm.c (asm_output_bss): Remove function.
14706 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 14707
07c5f94e
AS
14708 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
14709 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
14710 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
14711 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14712 Likewise.
14713 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14714 Likewise.
14715 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14716 Likewise.
14717 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
14718
5f2c36e1
JM
147192011-04-07 Joseph Myers <joseph@codesourcery.com>
14720
14721 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
14722 EnumValue lines.
14723
39e7722b
JM
147242011-04-07 Joseph Myers <joseph@codesourcery.com>
14725
14726 * config/m68k/m68k.c (m68k_handle_option): Don't handle
14727 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
14728 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
14729 OPT_mcpu32.
14730 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14731 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
14732 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
14733 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
14734 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
14735 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
14736 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
14737 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
14738 options. Don't map other m68k options manually. Don't handle
14739 old-style options as canonical.
14740 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 14741 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 14742
cf103ca4
EB
147432011-04-07 Eric Botcazou <ebotcazou@adacore.com>
14744
14745 * basic-block.h (force_nonfallthru): Move to...
14746 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
14747 (force_nonfallthru): ...here.
14748 * cfghooks.c (force_nonfallthru): New function.
14749 * cfgrtl.c (force_nonfallthru): Rename into...
14750 (rtl_force_nonfallthru): ...this.
14751 (commit_one_edge_insertion): Do not set AUX field.
14752 (commit_edge_insertions): Do not discover new basic blocks.
14753 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
14754 (cfg_layout_rtl_cfg_hooks): Likewise.
14755 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
14756 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
14757 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
14758
14431f58
AS
147592011-04-07 Anatoly Sokolov <aesok@post.ru>
14760
14761 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
14762 Remove macros.
14763
3729983c
UB
147642011-04-07 Uros Bizjak <ubizjak@gmail.com>
14765
14766 * config/i386/sse.md: Update copyright year.
14767 (avxcvtvecmode): Remove.
14768 (sse_movhlps): Merge with *avx_movhlps.
14769 (sse_movlhps): Merge with *avx_movlhps.
14770 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
14771 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
14772 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
14773 (sse_loadhps): Merge with *avx_loadhps.
14774 (sse_storelps): Merge with *avx_storelps.
14775 (sse_loadlps): Merge with *avx_loadlps.
14776 (sse_movss): Merge with *avx_movss.
14777 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
14778 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
14779 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
14780 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
14781 (vec_set<mode>_0): Ditto.
14782 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
14783 (sse4_1_insertps): Merge with *avx_insertps.
14784 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
14785 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
14786 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
14787 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
14788 (sse2_storehpd): Merge with *avx_storehpd.
14789 (sse2_loadhpd): Merge with *avx_loadhpd.
14790 (sse2_loadlpd): Merge with *avx_loadlpd.
14791 (sse2_movsd): Merge with *avx_movsd.
14792 (*vec_concatv2df): Merge with *vec_concatv2df.
14793
4e626909
JJ
147942011-04-07 Jakub Jelinek <jakub@redhat.com>
14795
14796 PR debug/48343
14797 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 14798 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
14799 (try_combine): Add last_combined_insn parameter, pass it instead of
14800 i3 to propagate_for_debug.
14801
3729983c 148022011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
14803
14804 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
14805 to handle MDR <-> data register transfers.
14806 (movhi_internal): Likewise.
14807
20c03367
AM
148082011-04-07 Alan Modra <amodra@gmail.com>
14809
14810 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
14811 previous stack info.
14812
bf22920b
TV
148132011-04-07 Tom de Vries <tom@codesourcery.com>
14814
14815 PR target/43920
14816 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
14817 flow_find_cross_jump. Swap variables to implement backward replacement.
14818 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
14819
823918ae
TV
148202011-04-07 Tom de Vries <tom@codesourcery.com>
14821
14822 PR target/43920
14823 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
14824 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
14825 and bb2.
14826 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
14827 src1 or src2. Redirect edges to the last basic block. Update
14828 frequency and count on multiple basic blocks in case of fallthru.
823918ae 14829
472c95f5
TV
148302011-04-07 Tom de Vries <tom@codesourcery.com>
14831
14832 PR target/43920
14833 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
14834 function.
3729983c
UB
14835 (old_insns_match_p): Change return type. Replace return false/true
14836 with return dir_none/dir_both. Use can_replace_by.
14837 (flow_find_cross_jump): Add dir_p parameter. Init replacement
14838 direction from dir_p. Register replacement direction in dir, last_dir
14839 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
14840 merge_dir. Return replacement direction in dir_p.
14841 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
14842 return type of old_insns_match_p.
14843 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
14844 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
14845 flow_find_cross_jump.
14846 * basic-block.h (enum replace_direction): New type.
14847 (flow_find_cross_jump): Add parameter to declaration.
14848
a95d4000
UB
148492011-04-06 Uros Bizjak <ubizjak@gmail.com>
14850
14851 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
14852 (AVXMODEDCVTPS2DQ): Ditto.
14853 (VEC_FLOAT_MODE): Ditto.
14854 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
14855 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14856 (<any_logic:code><mode>3): Use VF mode iterator.
14857 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
14858 Use VF mode iterator.
14859 (copysign<mode>3): Use VF mode iterator.
14860 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
14861 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14862 (*<any_logic:code><MODEF:mode>3): Merge with
14863 *avx_<any_logic:code><MODEF:mode>3.
14864 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
14865 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
14866 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
14867 (avx_cvtdq2ps<avxmodesuffix>): Remove.
14868 (sse2_cvtdq2ps): Use %v modifier.
14869 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
14870 (avx_cvtps2dq<avxmodesuffix>): Remove.
14871 (sse2_cvtps2dq): Use %v modifier.
14872 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
14873 (avx_cvttps2dq<avxmodesuffix>): Remove.
14874 (sse2_cvttps2dq): Use %v modifier.
14875 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
14876 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
14877 (sse2_cvtsd2siq): Fix insn template.
14878 (sse2_cvtsd2siq_2): Ditto.
14879 (sse2_cvttsd2siq): Ditto.
14880 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
14881 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
14882
ad01c437
JM
148832011-04-06 Joseph Myers <joseph@codesourcery.com>
14884
14885 * gcov-io.c: Use GCC Runtime Library Exception.
14886
fe846284
JJ
148872011-04-06 Jakub Jelinek <jakub@redhat.com>
14888
14889 PR debug/48466
14890 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
14891 as base_reg whatever register reg has been eliminated to, instead
14892 of hardcoding STACK_POINTER_REGNUM.
14893
acce4e77
JM
148942011-04-06 Joseph Myers <joseph@codesourcery.com>
14895
14896 * doc/tm.texi.in: Document C target hooks as separate from general
14897 target hooks.
14898 * doc/tm.texi: Regenerate.
14899 * genhooks.c (struct hook_desc): Add docname field.
14900 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
14901 docname field.
14902 (hook_array): Include c-target.def.
14903 (emit_documentation): Use docname field in output.
14904 (emit_init_macros): Take docname argument. Only emit definitions
14905 for hooks matching docname.
14906 (main): Expect additional arguments in all cases. Pass argument
14907 to emit_init_macros.
14908 * target.def: Move initial macro definitions and comments to
14909 target-hooks-macros.h.
14910 (gcc_targetcm): Move to c-family/c-target.def.
14911 * target.h (targetcm): Move declaration to c-family/c-target.h.
14912 * targhooks.c (default_handle_c_option): Move to
14913 c-family/c-opts.c.
14914 * targhooks.h (default_handle_c_option): Move declaration to
14915 c-family/c-common.h.
14916 * target-hooks-macros.h: New file.
14917 * config.gcc (target_has_targetcm): Define and use to add to
14918 c_target_objs and cxx_target_objs.
14919 * config/default-c.c: New file.
14920 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
14921 of target.h and target-def.h.
14922 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
14923 (darwin_objc_construct_string, darwin_cfstring_ref_p,
14924 darwin_check_cfstring_format_arg): Make static.
14925 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14926 TARGET_STRING_OBJECT_REF_TYPE_P,
14927 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
14928 * config/darwin-protos.h (darwin_objc_construct_string,
14929 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
14930 declare.
14931 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14932 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 14933 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
14934 * config/t-darwin (darwin-c.o): Update dependencies.
14935 * system.h (TARGET_HAS_TARGETCM): Poison.
14936 * Makefile.in (TARGET_H): Update.
14937 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
14938 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
14939 (default-c.o): New target.
14940 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 14941 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
14942 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
14943 c-target.def.
14944 (build/genhooks.o): Update dependencies.
14945
275b4baa 149462011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 14947
275b4baa
RG
14948 * ipa-inline.c (enum inlining_mode): Remove.
14949 (cgraph_flatten): Use some other token.
14950 (cgraph_edge_early_inlinable_p): New function, split out from ...
14951 (cgraph_perform_always_inlining): New function, split out from ...
14952 (cgraph_decide_inlining_incrementally): ... here.
14953 (cgraph_mark_inline_edge): Adjust.
14954 (cgraph_early_inlining): Re-structure.
14955 (pass_early_inline): Require SSA form.
14956
f15b8bdf 149572011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
14958 Julian Brown <julian@codesourcery.com>
14959 Mark Shinwell <shinwell@codesourcery.com>
14960
14961 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
14962 LO_REGS only for Thumb-1.
14963 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
14964 be used in short instructions when optimising for size on Thumb-2.
14965
516426da
EB
149662011-04-06 Eric Botcazou <ebotcazou@adacore.com>
14967
14968 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
14969 associated with user returns to be preserved.
14970
96621ebf
TG
149712011-04-06 Tristan Gingold <gingold@adacore.com>
14972
f15b8bdf
EB
14973 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
14974 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
14975 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
14976 if XCOFF_DEBUGGING_INFO.
14977
07c0852e
UB
149782011-04-06 Uros Bizjak <ubizjak@gmail.com>
14979
14980 * config/i386/i386.md (attribute isa): New.
14981 (attribute enabled): New.
14982 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
14983 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
14984 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
14985 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
14986 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
14987 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14988 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
14989 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
14990
14991 * config/i386/sse.md (VF): New mode iterator.
14992 (VF1): Ditto.
14993 (VF2): Ditto.
14994 (VF_128): Ditto.
14995 (SSEMODEF4): Remove.
14996 (attribute sse): Handle V8SF and V4DF modes.
14997 (<absneg:code><mode>2): Use VF mode iterator.
14998 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
14999 mode iterator.
15000 (<plusminus_insn><mode>3): Use VF mode iterator.
15001 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
15002 Use VF mode iterator.
15003 (<sse>_vm<plusminus_insn><mode>3): Merge with
15004 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
15005 (mul<mode>3): Use VF mode iterator.
15006 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
15007 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
15008 mode iterator.
15009 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
15010 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
15011 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
15012 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
15013 mode iterator.
15014 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
15015 Use VF1 mode iterator.
15016 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
15017 (sqrt<VF2:mode>2): New expander.
15018 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
15019 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
15020 and sqrtv2df2. Use VF mode iterator.
15021 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
15022 mode iterator.
15023 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
15024 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
15025 Use VF1 mode iterator.
15026 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
15027 (<smaxmin:code><mode>3): Use VF mode iterator.
15028 (*<smaxmin:code><mode>3_finite): Merge with
15029 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
15030 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15031 (<sse>_vm<smaxmin:code><mode>2): Merge with
15032 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
15033 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
15034 mode iterator.
15035 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
15036 mode iterator.
15037 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
15038 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
15039 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
15040 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
15041 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
15042 VF mode iterator.
15043 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
15044 Use VF_128 mode iterator.
15045 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
15046 mode iterator.
15047 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
15048 VF_128 mode iterator.
15049 (vcond<mode>): Use VF mode iterator.
15050 * config/i386/predicates.md (sse_comparison_operator): Merge with
15051 avx_comparison_float_operator. Do not declare as special_predicate.
15052 * config/i386/i386.c (struct builtin_description): Update for renamed
15053 compare patterns.
15054 (ix86_expand_args_builtin): Ditto.
15055 (ix86_expand_sse_compare_mask): Ditto.
15056
ff5d142c
RG
150572011-04-06 Richard Guenther <rguenther@suse.de>
15058
15059 * tree-inline.c (estimate_num_insns): For calls simply account
15060 for all passed arguments and a used return value.
15061
d7d1d041 150622011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 15063
d7d1d041
RG
15064 PR tree-optimization/47663
15065 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
15066 call_stmt_time fields.
15067 (cgraph_edge_inlinable_p): Declare.
15068 (cgraph_edge_recursive_p): New inline function.
15069 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
15070 (cgraph_clone_edge): Copy it.
15071 * ipa-inline.c (cgraph_estimate_edge_time): New function.
15072 Account for call stmt time.
15073 (cgraph_estimate_time_after_inlining): Take edge argument.
15074 (cgraph_estimate_edge_growth): Account call stmt size.
15075 (cgraph_estimate_size_after_inlining): Take edge argument.
15076 (cgraph_mark_inline_edge): Adjust.
15077 (cgraph_check_inline_limits): Likewise.
15078 (cgraph_recursive_inlining_p): Remove.
15079 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
15080 (cgraph_decide_recursive_inlining): Take edge argument and
15081 adjust.
15082 (cgraph_decide_inlining_of_small_functions): Do not avoid
15083 diags for recursive inlining here.
15084 (cgraph_flatten): Adjust.
15085 (cgraph_decide_inlining_incrementally): Likewise.
15086 (estimate_function_body_sizes): Remove call cost handling.
15087 (compute_inline_parameters): Initialize caller edge call costs.
15088 (cgraph_estimate_edge_growth): New function.
15089 (cgraph_estimate_growth): Use it.
15090 (cgraph_edge_badness): Likewise.
15091 (cgraph_check_inline_limits): Take an edge argument.
15092 (cgraph_decide_inlining_of_small_functions): Adjust.
15093 (cgraph_decide_inlining): Likewise.
15094 * tree-inline.c (estimate_num_insns): Only account for call
15095 return value if it is used.
15096 (expand_call_inline): Avoid diagnostics on recursive inline
15097 functions here.
15098 * lto-cgraph.c (lto_output_edge): Output edge call costs.
15099 (input_edge): Input edge call costs.
15100
2feb95f7
RO
151012011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15102
15103 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
15104
26fbd9c2
JW
151052011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
15106
15107 * doc/invoke.texi (Spec Files): Fix typo.
15108
694dc0ca
EB
151092011-04-06 Eric Botcazou <ebotcazou@adacore.com>
15110
15111 * profile.c (branch_prob): Move declaration of local variable. Remove
15112 obsolete ??? comment. Expand the location explicitly instead of using
15113 the LOCATION_FILE and LOCATION_LINE macros.
15114
4925d0d5
WG
151152011-04-06 Wei Guozhi <carrot@google.com>
15116
15117 PR target/47855
15118 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
15119 (arm_cond_branch): Likewise.
15120 (arm_cond_branch_reversed): Likewise.
15121 (arm_jump): Likewise.
15122 (push_multi): Likewise.
15123 * config/arm/constraints.md (Py): New constraint.
15124
f55dfa2f
NF
151252011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15126
15127 PR bootstrap/48471
15128 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
15129 Move these...
15130 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
15131 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
15132 #ifdef DBX_DEBUGGING_INFO.
15133
fca96842
BS
151342011-04-05 Bernd Schmidt <bernds@codesourcery.com>
15135
15136 PR bootstrap/48403
15137 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
15138 if old and new states differ.
15139
30b83e38
JM
151402011-04-05 Joseph Myers <joseph@codesourcery.com>
15141
15142 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
15143 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
15144 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
15145 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
15146 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
15147 mcfv4e): Use Alias.
15148 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
15149 ColdFire options to -mcpu= options.
15150
277a9aa5
JL
151512011-04-05 Jeff Law <law@redhat.com>
15152
15153 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
15154 check if BB is a successor of LOOP->header and return
15155 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
15156
c1e2610e
SB
151572011-04-05 Steven Bosscher <steven@gcc.gnu.org>
15158
15159 * cprop.c (struct reg_use): Remove.
15160 (reg_use_table): Make an array of RTX.
15161 (find_used_regs, constprop_register, local_cprop_pass,
15162 bypass_block): Simplify users of reg_use_table.
15163 (cprop_insn): Likewise. Iterate if copy propagation succeeded
15164 on one of the uses found by find_used_regs.
15165
e532f586
NF
151662011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15167
15168 PR bootstrap/48469
15169 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
15170 declaration.
15171
3fb7c055
NF
151722011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15173
15174 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
15175 as an rtx.
15176 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
15177
b71b43d9
SB
151782011-04-05 Steven Bosscher <steven@gcc.gnu.org>
15179
15180 PR middle-end/48441
15181 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
15182
b405b274
NF
151832011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15184
15185 * combine.c: Include obstack.h.
15186 (struct insn_link): Define.
15187 (uid_log_links): Adjust type.
15188 (FOR_EACH_LOG_LINK): New macro.
15189 (insn_link_obstack): Declare.
15190 (alloc_insn_link): Define.
15191 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
15192 type of link variables.
15193 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
15194 (try_combine, record_promoted_values, distribute_notes): Likewise.
15195 (distribute_links): Likewise. Tweak prototype.
15196 (clear_log_links): Delete.
15197 (adjust_for_new_dest): Call alloc_insn_link.
15198 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
15199
6409abe3
NF
152002011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15201
15202 * gcse.c (modify_mem_list): Convert to an array of VECs.
15203 (canon_modify_mem_list, compute_transp): Tweak formatting.
15204 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
15205 (load_killed_in_block_p): Likewise.
15206 (record_last_mem_set_info): Likewise.
15207 (clear_modify_mem_tables): Likewise.
15208
170d8157
TV
152092011-04-05 Tom de Vries <tom@codesourcery.com>
15210
15211 PR middle-end/48461
15212 * function.c (emit_use_return_register_into_block): Only define if
15213 HAVE_return.
15214
c5911a55
EB
152152011-04-05 Eric Botcazou <ebotcazou@adacore.com>
15216
15217 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
15218
abd016e6
JM
152192011-04-05 Joseph Myers <joseph@codesourcery.com>
15220
15221 * config/rx/rx-opts.h: New.
15222 * config/rx/rx.c (rx_cpu_type): Remove.
15223 (rx_handle_option): Don't assert that global structures are in
15224 use. Access variables via opts pointer. Defer most handling of
15225 OPT_mint_register_. Use error_at.
15226 (rx_option_override): Handle deferred OPT_mint_register_ here.
15227 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
15228 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
15229 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
15230 (rx_cpu_types): New Enum and EnumValue entries.
15231 (mint-register=): Use Defer and use Var accordingly.
15232
1ed13f83
NF
152332011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15234
15235 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
15236 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
15237 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
15238 Move these...
15239 (debug_free_queue, debug_nesting, symbol_queue_index):
15240 ...and these...
15241 * dbxout.c: ...to here. Make static.
15242
6ce1edcf
NF
152432011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15244
15245 * gcse.c (modify_pair): Define. Define a VEC of it.
15246 (canon_modify_mem_list): Convert to an array of VECs.
15247 (free_insn_expr_list_list): Delete.
15248 (clear_modify_mem_tables): Call VEC_free instead.
15249 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
15250 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
15251 (canon_list_insert, compute_transp): Likewise.
15252
c201ac94
TV
152532011-04-05 Tom de Vries <tom@codesourcery.com>
15254
15255 PR target/43920
15256 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
15257 for size.
15258
4c029f40
TV
152592011-04-05 Tom de Vries <tom@codesourcery.com>
15260
15261 PR target/43920
15262 * function.c (emit_use_return_register_into_block): New function.
15263 (thread_prologue_and_epilogue_insns): Use
15264 emit_use_return_register_into_block.
15265
2a562b0a
TV
152662011-04-05 Tom de Vries <tom@codesourcery.com>
15267
15268 PR target/43920
15269 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
15270 insn.
15271
0248bceb
TV
152722011-04-05 Tom de Vries <tom@codesourcery.com>
15273
15274 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
15275
ffa94123
YZ
152762011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
15277
798dd0ba
UB
15278 * config/arm/arm.md (define_constants for unspec): Replace with
15279 define_c_enum.
15280 (define_constants for unspecv): Replace with define_c_enum.
15281 * config/arm/neon.md (define_constants for unspec): Replace with
15282 define_c_enum.
ffa94123 15283
3b8f9b46
RH
152842011-04-04 Richard Henderson <rth@redhat.com>
15285
720cf80f 15286 PR bootstrap/48400
3b8f9b46
RH
15287 * dwarf2out.c (output_line_info): Always emit line info from
15288 at least one section.
15289 (dwarf2out_init): Create text_section_line_info here ...
15290 (set_cur_line_info_table): ... not here.
15291
720cf80f 152922011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
15293
15294 PR target/48380
15295 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 15296 not called.
e5b0e1ca 15297
720cf80f 15298 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 15299
196565d4
SB
153002011-04-04 Steven Bosscher <steven@gcc.gnu.org>
15301
b77f9eab
SB
15302 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
15303 (expr_equiv_p): Remove.
15304 (insert_set_in_table): Look at <dest, src> pair instead of expr.
15305 (hash_scan_set): Update call to insert_set_in_table.
15306 (dump_hash_table): Dump <dest, src> pair.
15307 (lookup_set): Simplify. Lookup <dest, src> pair.
15308 (compute_transp): Remove, fold heavily simplified code into...
15309 (compute_local_properties): ...here. Expect COMP and TRANSP
15310 unconditionally.
15311 (find_avail_set): Take set directly from struct expr.
15312 (find_bypass-set): Likewise.
15313 (bypass_block): Likewise.
15314 (cprop_insn): Likewise. Remove redundant INSN_P test.
15315
384d7a55
SB
15316 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
15317 checks on form of COND from find_implicit_sets to here.
15318 (find_implicit_sets): Cleanup control flow. Split critical edges
15319 if it exposes implicit sets. Allocate/resize implicit_sets as
15320 necessary.
15321 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
15322 changed something. Run df_analyze after find_implicit_sets if any
15323 edges were split. Do not allocate implicit_sets here.
15324
3084ce69
SB
15325 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
15326 (gcse_obstack): Renamed to cprop_obstack.
15327 (GNEW, GNEWVEC, GNEWVAR): Remove.
15328 (gmalloc): Remove.
15329 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
15330 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
15331 (gcse_alloc): Likewise, and rename to cprop_alloc.
15332 (alloc_gcse_men, free_gcse_mem): Remove.
15333 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
15334 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
15335 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
15336
196565d4
SB
15337 * cprop.c (oprs_not_set_p): Remove.
15338 (mark_set, mark_clobber): Remove.
15339 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
15340 (reg_not_set_p): New function.
15341 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
15342 (cprop_insn): Likewise.
15343 (cprop_jump): Use FOR_EACH_EDGE.
15344
9b69cf83
BS
153452011-04-04 Bernd Schmidt <bernds@codesourcery.com>
15346
15347 PR bootstrap/48403
15348 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
15349 (rank_for_schedule): Use scheduled_insns vector instead of
15350 last_scheduled_insn.
15351 (ok_for_early_queue_removal): Likewise.
15352 (queue_to_ready): Search forward in nonscheduled_insns_begin if
15353 we have a dbg_cnt.
15354 (choose_ready): Likewise.
15355 (commit_schedule): Use VEC_iterate.
15356 (schedule_block): Initialize nonscheduled_insns_begin. If we have
15357 a dbg_cnt, use it and ensure the first insn is in the ready list.
15358 (haifa_sched_init): Allocate scheduled_insns.
15359 (sched_extend_ready_list): Don't allocate it; reserve space.
15360 (haifa_sched_finish): Free it.
15361
24f48c2f
JM
153622011-04-04 Joseph Myers <joseph@codesourcery.com>
15363
15364 * optc-gen.awk: Always remove type from Variable entry before
15365 recording in var_seen.
15366
8effe856
EB
153672011-04-04 Eric Botcazou <ebotcazou@adacore.com>
15368
15369 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
15370 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
15371 call to tidy_fallthru_edges.
15372
413519ae
JM
153732011-04-04 Joseph Myers <joseph@codesourcery.com>
15374
15375 * doc/options.texi (ToLower): Document.
3729983c 15376 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
15377 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
15378 * opts.h (cl_option): Add cl_tolower field.
15379 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
15380 arguments with lowercase strings.
15381 * config/rx/rx.opt (mcpu=): Add ToLower.
15382 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
15383 argument.
15384
7d34a1b0
RS
153852011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
15386
15387 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
15388
c30e7434
RS
153892011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
15390
15391 * config/vax/vax.c: Include reload.h.
15392
112a861d
AS
153932011-04-04 Anatoly Sokolov <aesok@post.ru>
15394
15395 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
15396 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
15397 (sparc_preferred_reload_class): New function.
15398
e8c6bb74
JJ
153992011-04-04 Jakub Jelinek <jakub@redhat.com>
15400
2aeaa366 15401 PR debug/48401
e8c6bb74
JJ
15402 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15403 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
15404
2c081caf
NF
154052011-04-03 Nathan Froyd <froydnj@codesourcery.com>
15406
15407 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
15408 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
15409
53802f27
AS
154102011-04-03 Anatoly Sokolov <aesok@post.ru>
15411
15412 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
15413 (ASM_OUTPUT_ALIGNED_BSS): Define.
15414
e89964e3
MM
154152011-04-03 Michael Matz <matz@suse.de>
15416
15417 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
15418 and next_slot members.
15419 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
15420 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
15421 (lto_streamer_cache_append): Declare.
15422 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
15423 unsigned index, remove offset parameter, ensure that we append
15424 or update existing entries.
15425 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
15426 parameter, update next_slot for append.
15427 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
15428 parameter.
15429 (lto_streamer_cache_insert_at): Likewise.
15430 (lto_streamer_cache_append): New function.
15431 (lto_streamer_cache_lookup): Use unsigned index.
15432 (lto_streamer_cache_get): Likewise.
15433 (lto_record_common_node): Don't test tree_node_can_be_shared.
15434 (preload_common_node): Adjust call to lto_streamer_cache_insert.
15435 (lto_streamer_cache_delete): Don't free offsets member.
15436 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
15437 (lto_output_string_with_length): Use lto_output_data_stream.
15438 (lto_output_tree_header): Remove ix parameter, don't write it.
15439 (lto_output_builtin_tree): Likewise.
15440 (lto_write_tree): Adjust callers to above, don't track and write
15441 offset, write unsigned index.
15442 (output_unreferenced_globals): Don't emit all global vars.
15443 (write_global_references): Use unsigned indices.
15444 (lto_output_decl_state_refs): Likewise.
15445 (write_symbol): Likewise.
15446 * lto-streamer-in.c (lto_input_chain): Move earlier.
15447 (input_function): Use unsigned index.
15448 (input_alias_pairs): Don't read and then ignore all global vars.
15449 (lto_materialize_tree): Remove ix_p parameter, don't read index,
15450 don't pass it back, use lto_streamer_cache_append.
15451 (lto_register_var_decl_in_symtab): Use unsigned index.
15452 (lto_register_function_decl_in_symtab): Likewise.
15453 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
15454 index.
15455 (lto_get_builtin_tree): Don't read index, use
15456 lto_streamer_cache_append.
15457 (lto_read_tree): Adjust call to lto_materialize_tree.
15458
15459 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
15460 don't use function calls in arguments to MIN.
15461
15462 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
15463 twice.
15464
15465 * gimple.c (gimple_type_leader_entry): Mark deletable.
15466
b9a5b5b2
AM
154672011-04-03 Alan Modra <amodra@gmail.com>
15468
15469 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
15470
ac6a641b
MM
154712011-04-03 Michael Matz <matz@suse.de>
15472
15473 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
15474 an integer.
15475 * tree.h (tree_decl_non_common.vindex): Adjust comment.
15476
0038d4e0
MM
154772011-04-03 Michael Matz <matz@suse.de>
15478
e9c18386 15479 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
15480 * gimple-fold.c (canonicalize_constructor_val): Accept being called
15481 without function context.
15482 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
15483 current_function_decl and cfun.
15484
91f2fae8
MM
154852011-04-03 Michael Matz <matz@suse.de>
15486
15487 * tree.c (decl_init_priority_insert): Don't create entry for
15488 default priority.
15489 (decl_fini_priority_insert): Ditto.
15490 (fields_compatible_p, find_compatible_field): Remove.
15491 * tree.h (fields_compatible_p, find_compatible_field): Remove.
15492 * gimple.c (gimple_compare_field_offset): Adjust block comment.
15493
da29e070
EB
154942011-04-03 Eric Botcazou <ebotcazou@adacore.com>
15495
15496 * combine.c (try_combine): Remove useless local variable.
15497
4979c28b 154982011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 15499 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
15500
15501 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
15502 non-variable offsets and compare the remaining bases of the two
15503 accesses instead of looking for exact same data-ref.
15504
b4ddcaee
KT
155052011-04-02 Kai Tietz <ktietz@redhat.com>
15506
f90298e1
KT
15507 PR target/48416
15508 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
15509
b4ddcaee
KT
15510 * i386.c (ix86_is_msabi_thiscall): New helper function.
15511 (ix86_is_type_thiscall): New helper function.
15512 (ix86_comp_type_attributes): Handle thiscall for method-functions
15513 special.
15514 (init_cumulative_args): Likewise.
15515 (find_drap_reg): Likewise.
15516 (ix86_static_chain): Likewise.
15517 (x86_this_parameter): Likewise.
15518 (x86_output_mi_thunk): Likewise.
15519
2a9d769a 155202011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
15521 Nicolas Setton <setton@adacore.com>
15522 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
15523
15524 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
15525 (add_gnat_descriptive_type_attribute): New function.
15526 (gen_array_type_die): Call it.
15527 (gen_enumeration_type_die): Likewise.
15528 (gen_struct_or_union_type_die): Likewise.
15529 (modified_type_die): Likewise.
15530 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
15531 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
15532 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
15533
15a03a11
JJ
155342011-04-01 Jakub Jelinek <jakub@redhat.com>
15535
15536 PR bootstrap/48148
15537 * dwarf2out.c (resolve_addr): Don't call force_decl_die
15538 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
15539
15540 Revert:
15541 2011-03-17 Richard Guenther <rguenther@suse.de>
15542
15543 PR bootstrap/48148
15544 * lto-cgraph.c (input_overwrite_node): Clear the abstract
15545 origin for decls in other ltrans units.
15546 (input_varpool_node): Likewise.
15547
19228b93
JJ
155482011-04-01 Jakub Jelinek <jakub@redhat.com>
15549
15550 PR middle-end/48335
15551 * expr.c (expand_assignment): Handle all possibilities
15552 if TO_RTX is CONCAT.
e9c18386 15553 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
15554 (store_split_bit_field): If SUBREG_REG (op0) or
15555 op0 itself has smaller mode than word, return it
15556 for offset 0 and const0_rtx for out-of-bounds stores.
15557 If word is const0_rtx, skip it.
15558
88cb339e
N
155592011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
15560
15561 * config/h8300/h8300.c (print_operand_address): Rename to...
15562 (h8300_print_operand_address): ...this. Make static. Adjust comments.
15563 Call h8300_print_operand and h8300_print_operand_address instead of
15564 print_operand and print_operand_address. Declare.
15565 (print_operand): Renake to...
15566 (h8300_print_operand): ...this. Make static. Adjust comments.
15567 Call h8300_print_operand instead of print_operand. Declare.
15568 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
15569 (h8300_register_move_cost): Likewise.
15570 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
15571 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
15572 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
15573 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
15574 * config/h8300/h8300-protos.h (print_operand): Delete.
15575 (print_operand_address): Delete.
15576
756d6ee9
RH
155772011-04-01 Richard Henderson <rth@redhat.com>
15578
15579 PR 48400
15580 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
15581 in strict mode before dwarf4. Re-order tests to early out
15582 before switching sections.
15583
ceaaaeab
NF
155842011-04-01 Nathan Froyd <froydnj@codesourcery.com>
15585
15586 * config/h8300/constraints.md: New file.
15587 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
15588 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
15589 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
15590 * config/h8300/predicates.md (bit_operand): Likewise.
15591 (incdec_operand): Use satisfies_constraint_M and
15592 satisfies_constraint_O. Don't use C code block.
15593 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
15594 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
15595 (compute_mov_length): Use satisfies_constraint_G.
15596 (fix_bit_operand): Use satisfies_constraint_U.
15597 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
15598 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
15599 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
15600 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
15601 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
15602 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
15603 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15604 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
15605 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
15606 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
15607 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
15608 (EXTRA_MEMORY_CONSTRAINT): Delete.
15609
08ae38e0
AP
156102011-04-01 Andrew Pinski <pinskia@gmail.com>
15611 Michael Meissner <meissner@linux.vnet.ibm.com>
15612
15613 PR target/48262
15614 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
15615 operands, as per the specifications.
15616
15617 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
15618 (vec_extract_evenv4sf): Ditto.
15619 (vec_extract_evenv8hi): Ditto.
15620 (vec_extract_evenv16qi): Ditto.
15621 (vec_extract_oddv4si): Ditto.
15622
bdb0b0f6
MW
156232011-03-31 Mark Wielaard <mjw@redhat.com>
15624
15625 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
15626 high_pc attribute if the CU has no associated code. Only output
15627 DW_AT_entry_pc for CU if not generating strict dwarf and
15628 dwarf_version < 4.
15629
722279e4
BS
156302011-04-01 Bernd Schmidt <bernds@codesourcery.com>
15631
15632 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
15633 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
15634 out of ...
15635 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
15636 * final.c (final_start_function): Call the new function rather
15637 than using a NULL argument for dwarf2out_frame_debug.
15638
c5dd277d
BS
15639 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
15640 that contains the prologue.
15641
ec4efea9
BS
15642 * haifa-sched.c (queue_insn): New arg REASON. All callers
15643 changed. Print it in debugging output.
15644
2a6a0d80
BS
15645 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
15646
86014d07
BS
15647 * sched-ebb.c (begin_schedule_ready): Remove second argument.
15648 Split most of the code into...
15649 (begin_move_insn): ... here. New function.
15650 (ebb_sched_info): Add a pointer to it.
15651 * haifa-sched.c (scheduled_insns): New static variable.
15652 (sched_extend_ready_list): Allocate it.
15653 (schedule_block): Use it to record the order of scheduled insns.
15654 Perform RTL changes to move insns only after all scheduling
15655 decisions have been made.
15656 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
15657 begin_move_insn field.
15658 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
15659 * sched-int.h (struct haifa_sched_info): Remove second argument
15660 from begin_schedule_ready hook. Add new member begin_move_insn.
15661 * sched-rgn.c (begin_schedule_ready): Remove second argument.
15662 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
15663
9d701248
BS
15664 * haifa-sched.c (prune_ready_list): New function, broken out of
15665 schedule_block.
15666 (schedule_block): Use it.
15667
1ca1dad5
UW
156682011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15669
15670 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
15671
49568e45
KT
156722011-04-01 Kai Tietz <ktietz@redhat.com>
15673
15674 * config.gcc (*-*-mingw*): Allow as option the
15675 posix threading model.
07c0852e 15676 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
15677 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
15678 definition.
15679 (CPP_SPEC): Add pthread/no-pthread handling.
15680 (LIB_SPEC): Likewise.
15681 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
15682 (LIB_SPEC): Likewise.
15683 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
15684 flag to pass -pthread option for shared libgcc build.
15685 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
15686 for shared libgcc build.
15687 * config/i386/t-mingw-pthread: New file.
15688 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
15689 New define to enable use of library pthread by default.
15690 * config/i386/mingw.opt (pthread): New driver option.
15691 (no-pthread): New driver option.
e9c18386 15692 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
15693 * config/i386/mingw-w64.opt: Likewise.
15694
748f7574 156952011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
15696
15697 * c-decl.c (grokdeclarator): Fix formatting.
15698
f04713ee
RS
156992011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15700
15701 * expr.c (emit_block_move_via_movmem): Use n_generator_args
15702 instead of n_operands.
15703 (set_storage_via_setmem): Likewise.
15704 * optabs.c (maybe_gen_insn): Likewise.
15705 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
15706 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
15707 (mips_expand_builtin_direct): Likewise.
15708 * config/spu/spu.c (expand_builtin_args): Likewise.
15709
b29387ee
RS
157102011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15711
15712 * recog.h (insn_data_d): Add n_generator_args.
15713 * genoutput.c (data): Likewise.
15714 (output_insn_data): Print it.
15715 (max_opno, num_dups): Delete.
15716 (scan_operands): Just fill in "d->operand[...]".
15717 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
15718
e792559a
RS
157192011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15720
15721 * gensupport.h (pattern_stats): New structure.
15722 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
15723 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
15724 (max_operand_1, max_operand_vec): Delete.
15725 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
15726
e8110d6f
NF
157272011-03-31 Nathan Froyd <froydnj@codesourcery.com>
15728
15729 * emit-rtl.c (emit_pattern_after_setloc): New function.
15730 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
15731 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
15732 (emit_pattern_after): New function.
15733 (emit_insn_after, emit_jump_insn_after): Call it.
15734 (emit_call_insn_after, emit_debug_insn_after): Likewise.
15735 (emit_pattern_before_setloc): New function.
15736 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
15737 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
15738 Likewise.
15739 (emit_pattern_before): New function.
15740 (emit_insn_before, emit_jump_insn_before): Call it.
15741 (emit_call_insn_before, emit_debug_insn_before): Likewise.
15742
576f85f1
RH
157432011-03-31 Richard Henderson <rth@redhat.com>
15744
15745 * dwarf2out.c (dw_separate_line_info_ref): Remove.
15746 (dw_separate_line_info_entry): Remove.
15747 (enum dw_line_info_opcode): New.
15748 (dw_line_info_entry): Use it.
15749 (dw_line_info_table, dw_line_info_table_p): New.
15750 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
15751 (line_info_table, line_info_label_num): Remove.
15752 (line_info_table_in_use): Remove.
15753 (separate_line_info_table): Remove.
15754 (separate_line_info_table_allocated): Remove.
15755 (separate_line_info_table_in_use): Remove.
15756 (LINE_INFO_TABLE_INCREMENT): Remove.
15757 (line_info_label_num): New.
15758 (cur_line_info_table): New.
15759 (text_section_line_info, cold_text_section_line_info): New.
15760 (separate_line_info): New.
15761 (SEPARATE_LINE_CODE_LABEL): Remove.
15762 (print_dwarf_line_table): Remove.
15763 (debug_dwarf): Don't dump it.
15764 (output_one_line_info_table): New.
15765 (output_line_info): Use it.
15766 (new_line_info_table): New.
15767 (set_cur_line_info_table): New.
15768 (dwarf2out_switch_text_section): Use it.
15769 (dwarf2out_begin_function): Likewise.
15770 (push_dw_line_info_entry): New.
15771 (dwarf2out_source_line): Rewrite for new line info tables.
15772 (dwarf2out_init): Remove dead initailizations.
15773
300d83d9
JM
157742011-03-31 Joseph Myers <joseph@codesourcery.com>
15775
15776 * opts.h (cl_option): Add comments to fields. Add bit-fields for
15777 various flags.
15778 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
15779 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
15780 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
15781 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
15782 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
15783 * opt-functions.awk (flag_init, switch_bit_fields): New.
15784 (switch_flags): Don't handle flags moved to bit-fields. Don't
15785 generate CL_MISSING_OK or CL_SAVE.
15786 * optc-gen.awk: Update to generate bit-field output as well as
15787 flags field.
15788 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
15789 bit-field instead of CL_REJECT_DRIVER flag.
15790 * opts-common.c (generate_canonical_option,
15791 decode_cmdline_option): Use bit-fields instead of CL_* flags.
15792 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
15793 instead of CL_REJECT_NEGATIVE flag.
15794 * toplev.c (print_switch_values): Use cl_report bit-field instead
15795 of CL_REPORT flag.
15796
d4d73ce2
EB
157972011-03-31 Eric Botcazou <ebotcazou@adacore.com>
15798
15799 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
15800 a zero minimum index only if it is redundant.
15801
b8faca75
VM
158022011-03-31 Vladimir Makarov <vmakarov@redhat.com>
15803
15804 PR rtl-optimization/48381
15805 * ira-color.c (assign_hard_reg): Use hard reg set intersection
15806 instead of ira_class_hard_reg_index for calculating conflicting
15807 hard registers.
15808
7d11cebe
SB
158092011-03-31 Steven Bosscher <steven@gcc.gnu.org>
15810
15811 * cprop.c: Clean up hash table building.
15812 (reg_avail_info): Remove.
15813 (oprs_available_p): Remove.
15814 (record_last_reg_set_info): Remove.
15815 (record_last_set_info): Remove.
15816 (reg_available_p): New function.
15817 (gcse_constant_p): Do not treat unfolded conditions as constants.
15818 (make_set_regs_unavailable): New function.
15819 (hash_scan_set): Simplify with new reg_available_p.
15820 (compute_hash_table_work): Traverse insns stream only once.
15821 Do not compute reg_avail_info. Traverse insns in reverse order.
15822 Record implicit sets after recording explicit sets from the block.
15823
98faf84f
MM
158242011-03-31 Michael Matz <matz@suse.de>
15825
e9c18386 15826 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 15827
f52d97da
AS
158282011-03-31 Anatoly Sokolov <aesok@post.ru>
15829
15830 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
15831 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
15832 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15833 (h8300_mode_dependent_address_p): New function.
15834 (h8300_get_index): Make static.
15835
e16b6fd0
JL
158362011-03-31 Jeff Law <law@redhat.com>
15837
10c51983
JL
15838 * reload1.c (elimination_effects): Fix typo in recent change.
15839
e9c18386 15840 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
15841 typo potentially leading to null pointer dereference.
15842
15843 * caller-save.c (new_saved_hard_reg): Eliminate return value.
15844 (setup_save_areas): Corresponding changes to avoid useless
15845 assignments.
15846
15847 * jump.c (reversed_comparison_code_parts): Avoid successive return
15848 statements when REVERSE_CONDITION is defined.
15849
15850 * expr.c (expand_assignment): Avoid useless assignments.
15851 (expand_expr_real_1): Likewise.
15852 (expand_expr_real_2): Avoid useless statements.
15853
15854 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
15855
15856 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15857
15858 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
15859 statements.
15860
15861 * stmt.c (expand_expr_stmt): Avoid useless assignment.
15862
eb1eb914
JM
158632011-03-31 Joseph Myers <joseph@codesourcery.com>
15864
15865 PR target/47109
15866 * doc/tm.texi.in (TARGET_VERSION): Remove.
15867 * doc/tm.texi: Regenerate.
15868 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
15869 * collect2.c (main): Don't use TARGET_VERSION.
15870 * mips-tdump.c (main): Don't use TARGET_VERSION.
15871 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 15872 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
15873 * config/rs6000/vxworksae.h: Remove.
15874 * config/alpha/alpha.h (TARGET_VERSION): Remove.
15875 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
15876 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
15877 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
15878 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15879 * config/arm/arm.h (TARGET_VERSION): Remove.
15880 * config/arm/coff.h (TARGET_VERSION): Remove.
15881 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
15882 * config/arm/elf.h (TARGET_VERSION): Remove.
15883 * config/arm/freebsd.h (TARGET_VERSION): Remove.
15884 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
15885 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
15886 * config/arm/pe.h (TARGET_VERSION): Remove.
15887 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
15888 * config/arm/semi.h (TARGET_VERSION): Remove.
15889 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
15890 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
15891 * config/arm/vxworks.h (TARGET_VERSION): Remove.
15892 * config/avr/avr.h (TARGET_VERSION): Remove.
15893 * config/bfin/bfin.h (TARGET_VERSION): Remove.
15894 * config/fr30/fr30.h (TARGET_VERSION): Remove.
15895 * config/frv/frv.h (TARGET_VERSION): Remove.
15896 * config/h8300/h8300.h (TARGET_VERSION): Remove.
15897 * config/i386/cygwin.h (TARGET_VERSION): Remove.
15898 * config/i386/darwin.h (TARGET_VERSION): Remove.
15899 * config/i386/darwin64.h (TARGET_VERSION): Remove.
15900 * config/i386/djgpp.h (TARGET_VERSION): Remove.
15901 * config/i386/freebsd.h (TARGET_VERSION): Remove.
15902 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
15903 * config/i386/gnu.h (TARGET_VERSION): Remove.
15904 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
15905 * config/i386/i386elf.h (TARGET_VERSION): Remove.
15906 * config/i386/linux.h (TARGET_VERSION): Remove.
15907 * config/i386/linux64.h (TARGET_VERSION): Remove.
15908 * config/i386/lynx.h (TARGET_VERSION): Remove.
15909 * config/i386/mingw32.h (TARGET_VERSION): Remove.
15910 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
15911 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
15912 * config/i386/netware.h (TARGET_VERSION): Remove.
15913 * config/i386/nto.h (TARGET_VERSION): Remove.
15914 * config/i386/openbsd.h (TARGET_VERSION): Remove.
15915 * config/i386/vxworks.h (TARGET_VERSION): Remove.
15916 * config/ia64/elf.h (TARGET_VERSION): Remove.
15917 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
15918 * config/ia64/hpux.h (TARGET_VERSION): Remove.
15919 * config/ia64/linux.h (TARGET_VERSION): Remove.
15920 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15921 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
15922 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15923 * config/lm32/lm32.h (TARGET_VERSION): Remove.
15924 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
15925 * config/m32c/m32c.h (TARGET_VERSION): Remove.
15926 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
15927 * config/m32r/m32r.h (TARGET_VERSION): Remove.
15928 * config/m68k/linux.h (TARGET_VERSION): Remove.
15929 * config/m68k/m68k.h (TARGET_VERSION): Remove.
15930 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
15931 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
15932 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
15933 * config/mep/mep.h (TARGET_VERSION): Remove.
15934 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
15935 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15936 * config/mips/iris6.h (MACHINE_TYPE): Remove.
15937 * config/mips/linux.h (TARGET_VERSION): Remove.
15938 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
15939 * config/mips/vxworks.h (TARGET_VERSION): Remove.
15940 * config/mmix/mmix.h (TARGET_VERSION): Remove.
15941 * config/mn10300/linux.h (TARGET_VERSION): Remove.
15942 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
15943 * config/pa/pa.h (TARGET_VERSION): Remove.
15944 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
15945 * config/picochip/picochip.h (TARGET_VERSION): Remove.
15946 * config/rs6000/aix.h (TARGET_VERSION): Remove.
15947 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
15948 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
15949 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
15950 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
15951 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
15952 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
15953 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
15954 * config/rs6000/linux.h (TARGET_VERSION): Remove.
15955 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
15956 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
15957 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
15958 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
15959 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
15960 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
15961 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
15962 * config/s390/linux.h (TARGET_VERSION): Remove.
15963 * config/s390/s390.h (TARGET_VERSION): Remove.
15964 * config/s390/tpf.h (TARGET_VERSION): Remove.
15965 * config/score/score.h (TARGET_VERSION): Remove.
15966 * config/sh/linux.h (TARGET_VERSION): Remove.
15967 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
15968 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
15969 * config/sh/sh.h (TARGET_VERSION): Remove.
15970 * config/sh/sh64.h (TARGET_VERSION): Remove.
15971 * config/sh/superh.h (TARGET_VERSION): Remove.
15972 * config/sh/vxworks.h (TARGET_VERSION): Remove.
15973 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
15974 * config/sparc/linux.h (TARGET_VERSION): Remove.
15975 * config/sparc/linux64.h (TARGET_VERSION): Remove.
15976 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
15977 TARGET_NAME32, TARGET_NAME): Remove.
15978 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
15979 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
15980 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
15981 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
15982 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
15983 * config/spu/spu.h (TARGET_VERSION): Remove.
15984 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
15985 * config/v850/v850.h (TARGET_VERSION): Remove.
15986 * config/vax/linux.h (TARGET_VERSION): Remove.
15987 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
15988 * config/xtensa/elf.h (TARGET_VERSION): Remove.
15989 * config/xtensa/linux.h (TARGET_VERSION): Remove.
15990
ace31bca
EB
159912011-03-31 Eric Botcazou <ebotcazou@adacore.com>
15992
15993 PR target/48142
15994 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
15995 frame-related from frame-unrelated adjustments to the stack pointer.
15996
76f9db36
JJ
159972011-03-31 Jakub Jelinek <jakub@redhat.com>
15998
15999 * common.opt (fdebug-types-section): Move earlier.
16000 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
16001
b7826465
AT
160022011-03-31 Andreas Tobler <andreast@fgznet.ch>
16003
16004 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
16005 var.
16006
1290e54c
NF
160072011-03-30 Nathan Froyd <froydnj@codesourcery.com>
16008
16009 * tree.h (CASE_CHAIN): Define.
16010 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
16011 (gimple_redirect_edge_and_branch): Likewise.
16012
bddc98e1
VM
160132011-03-30 Vladimir Makarov <vmakarov@redhat.com>
16014
16015 PR middle-end/48367
16016 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
16017 calculation.
16018
c865e437
JL
160192011-03-30 Jeff Law <law@redhat.com>
16020
b3750213 16021 * PR bootstrap/48371
c865e437
JL
16022 * reload1.c (reload): Fix botch in last change.
16023
16024 * reload.h (struct reload): Fix typo introduced in last change.
16025
2cdf9574
JM
160262011-03-30 Joseph Myers <joseph@codesourcery.com>
16027
16028 * config/arm/arm.opt (mhard-float, msoft-float): Mark
16029 Undocumented. Remove help text.
16030 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
16031 -mhard-float.
16032
666a21a2
JM
160332011-03-30 Joseph Myers <joseph@codesourcery.com>
16034
16035 * doc/options.texi (NegativeAlias): Document.
16036 (Alias): Mention NegativeAlias.
16037 * opt-functions.awk: Handle NegativeAlias.
e9c18386 16038 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
16039 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
16040 * opts.h (CL_NEGATIVE_ALIAS): Define.
16041 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
16042 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
16043 OPT_mspe_.
16044 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
16045 Alias entries.
16046 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
16047 mno-spe and mno-isel instead of mspe=no and -misel=no.
16048
0fa4e351
MW
160492011-03-29 Mark Wielaard <mjw@redhat.com>
16050
16051 * common.opt (fdebug-types-section): New flag.
16052 * doc/invoke.texi: Document new -fno-debug-types-section flag.
16053 * dwarf2out.c (use_debug_types): New define.
16054 (struct die_struct): Mark die_id with GTY desc use_debug_types.
16055 (print_die): Guard output of type unit signatures using
16056 use_debug_types.
16057 (build_abbrev_table): Replace assert of dwarf_version >= 4
16058 with assert on use_debug_types.
16059 (size_of_die): Likewise.
16060 (unmark_dies): Likewise.
16061 (value_format): Decide AT_ref_external form on use_debug_types.
16062 (output_die): Replace dwarf_version version check guard with
16063 use_debug_types where appropriate.
16064 (modified_type_die): Likewise.
16065 (gen_reference_type_die): Likewise.
16066 (dwarf2out_start_source_file): Likewise.
16067 (dwarf2out_end_source_file): Likewise.
16068 (prune_unused_types_walk_attribs): Likewise.
16069 (dwarf2out_finish): Likewise.
16070
4648deb4
VM
160712011-03-30 Vladimir Makarov <vmakarov@redhat.com>
16072
16073 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
16074
4f431835
RS
160752011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
16076
16077 PR rtl-optimization/48332
16078 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
16079 mode of input operand N and modeN to its actual mode.
16080
f2034d06
JL
160812011-03-30 Jeff Law <law@redhat.com>
16082
16083 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
16084 define accessor macro.
16085 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
16086 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
16087 (reg_equiv_init): Likewise.
16088 (reg_equivs_size): New variable.
16089 (reg_equiv_init_size): Remove.
16090 (allocate_initial_values): Move prototype to here from....
16091 * integrate.h (allocate_initial_values): Remove prototype.
16092 * integrate.c: Include reload.h.
16093 (allocate_initial_values): Corresponding changes.
16094 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
16095 (fix_reg_equiv_init, no_equiv): Corresponding changes.
16096 (update_equiv_regs): Corresponding changes.
16097 (ira): Corresponding changes.
16098 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
16099 (push_secondary_reload): Corresponding changes.
16100 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
16101 (make_memloc, find_reloads_address): Corresponding changes.
16102 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
16103 (find_reloads_address_1): Corresponding changes.
16104 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
16105 (refers_to_regno_for_reload_p): Corresponding changes.
16106 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
16107 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
16108 * reload1.c: Include ggc.h.
16109 (grow_reg_equivs): New function.
16110 (replace_pseudos_in, reload): Corresponding changes.
16111 (calculate_needs_all_insns, alter_regs): Corresponding changes.
16112 (eliminate_regs_1, elimination_effects): Corresponding changes.
16113 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
16114 (delete_output_reload): Likewise.
16115 * caller-save.c (mark_referenced_regs): Corresponding changes.
16116 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
16117 * frv/predicates.md (frv_load_operand): Corresponding changes.
16118 * microblaze/microblaze.c (double_memory_operand): Corresponding
16119 changes.
16120 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
16121 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 16122 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
16123 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
16124 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
16125 changes.
16126 * pa/pa.c (emit_move_sequence): Corresponding changes.
16127 * vax/vax.c (nonindexed_address_p): Corresponding changes.
16128
159b81b0
RS
161292011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
16130
16131 PR target/47551
16132 * config/arm/arm.c (coproc_secondary_reload_class): Handle
16133 structure modes. Don't check neon_vector_mem_operand for
16134 vector or structure modes.
16135
a6217191
RS
161362011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
16137 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
16138
16139 PR target/43590
16140 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
16141 operand 1 and reshuffle the operands to match.
16142 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
16143
bd837408
CS
161442011-03-30 Christian Schüler <cschueler@gmx.de>
16145
6955d771 16146 PR driver/48208
bd837408 16147 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 16148
6955d771 16149 PR driver/48260
bd837408
CS
16150 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
16151 handler function.
16152 * config/darwin.opt: Added '-arch' option.
16153
e9c0470a
NC
161542011-03-30 Nick Clifton <nickc@redhat.com>
16155
16156 * config/rx/rx.md: Add peepholes and patterns to combine
16157 extending loads and simple arithmetic instructions.
16158 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
16159 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
16160 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 16161 modes to use pre-decrement and post-increment addressing.
e9c18386 16162 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 16163 addresses.
e9c18386
UB
16164 (rx_print_operand): Add support for %Q. Fix handling of %Q.
16165 (rx_memory_move_cost): Adjust cost of stores.
16166 (rx_adjust_insn_length): New function.
e9c0470a 16167
8a87e7ab
JJ
161682011-03-30 Jakub Jelinek <jakub@redhat.com>
16169
16170 PR c/48305
16171 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
16172 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
16173 matching arg00/arg01 types.
16174
12486e03
EB
161752011-03-30 Eric Botcazou <ebotcazou@adacore.com>
16176
16177 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
16178 last_location to UNKNOWN_LOCATION.
16179
0b99eef6
L
161802011-03-30 H.J. Lu <hongjiu.lu@intel.com>
16181
16182 PR target/48349
16183 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
16184 FLOAT_SSE_REGS.
16185
023592aa
JM
161862011-03-30 Joseph Myers <joseph@codesourcery.com>
16187 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16188
16189 PR bootstrap/48337
16190 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
16191 Init(PROCESSOR_V7).
16192 (sparc_cpu): Likewise.
16193 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
16194 PROCESSOR_V7.
16195
ad3b266b
VM
161962011-03-29 Vladimir Makarov <vmakarov@redhat.com>
16197
16198 PR target/48336
16199 PR middle-end/48342
16200 PR rtl-optimization/48345
16201 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
16202 hard regs for given mode from profitable regs when doing secondary
16203 allocation.
16204
633c9126
JL
162052011-03-29 Jeff Law <law@redhat.com>
16206
16207 PR bootstrap/48327
16208 * tree-ssa-threadupdate.c (struct redirection_data): Remove
16209 do_not_duplicate field.
16210 (lookup_redirection_data): Corresponding changes.
16211 (create_duplicates): Always create a template block.
16212 (redirect_edges): Remove code which reused the original block
16213 when it was going to become unreachable code.
16214 (thread_block): Don't set do_not_duplicate field.
16215
eb50f63a
JM
162162011-03-29 Joseph Myers <joseph@codesourcery.com>
16217
16218 * lto-opts.c (register_user_option_p, lto_register_user_option):
16219 Make type argument unsigned.
16220 * lto-streamer.h (lto_register_user_option): Make type argument
16221 unsigned.
16222 * opth-gen.awk: Make CL_* macros unsigned.
16223 * opts-common.c (find_opt): Make lang_mask argument unsigned.
16224 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
16225 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
16226 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
16227 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
16228 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
16229 (find_opt): Make lang_mask argument unsigned.
16230
76763a6d
VM
162312011-03-29 Vladimir Makarov <vmakarov@redhat.com>
16232
16233 PR rtl-optimization/48331
16234 PR rtl-optimization/48334
16235 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
16236 for any used algorithm.
16237
5c82436e
VM
162382011-03-29 Vladimir Makarov <vmakarov@redhat.com>
16239
16240 * ira-conflicts.c (build_object_conflicts): Add unused attribute
16241 to parent_max.
16242
7a81008b
UB
162432011-03-29 Uros Bizjak <ubizjak@gmail.com>
16244
16245 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
16246 (alpha_option_override): Don't set alpha_sr_alias_set.
16247 (emit_frame_store_1): Use gen_frame_mem rather than calling
16248 set_mem_alias_set.
16249 (alpha_expand_epilogue): Ditto.
16250
86c8d1f6
IR
162512011-03-29 Ira Rosen <ira.rosen@linaro.org>
16252
16253 PR tree-optimization/48290
16254 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
16255 vectorization, check that relevant phis in the basic block after
16256 the inner loop are really inner loop's exit phis.
16257
0d12220f
RS
162582011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
16259
e8cf17e7 16260 PR debug/48190
0d12220f
RS
16261 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
16262 (cached_dw_loc_list_def): New structure.
16263 (cached_dw_loc_list): New typedef.
16264 (cached_dw_loc_list_table): New variable.
16265 (cached_dw_loc_list_table_hash): New function.
16266 (cached_dw_loc_list_table_eq): Likewise.
16267 (add_location_or_const_value_attribute): Take a bool cache_p.
16268 Cache the list when the parameter is true.
16269 (gen_formal_parameter_die): Update caller.
16270 (gen_variable_die): Likewise.
16271 (dwarf2out_finish): Likewise.
16272 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
16273 while generating debug info for the decl.
16274 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
16275 (dwarf2out_init): Initialize cached_dw_loc_list_table.
16276 (resolve_addr): Cache the result of resolving a chain of
16277 location lists.
16278
1756cb66
VM
162792011-03-28 Vladimir Makarov <vmakarov@redhat.com>
16280
16281 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
16282 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 16283
1756cb66
VM
16284 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
16285 after regstat_init_n_sets_and_refs.
16286
16287 * ira.c: Add more comments at the top.
16288 (setup_stack_reg_pressure_class, setup_pressure_classes):
16289 Add comments how we compute the register pressure classes.
16290 (setup_allocno_and_important_classes): Add more comments.
16291 (setup_class_translate_array, reorder_important_classes)
16292 (setup_reg_class_relations): Add comments.
16293
16294 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
16295 start of the file.
16296
16297 * ira-color.c: Add 2011 to the Copyright line.
16298 (assign_hard_reg): Add more comments.
16299 (improve_allocation): Ditto.
16300
16301 * ira-costs.c: Add 2011 to the Copyright line.
16302 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
16303 comments.
16304 (setup_regno_cost_classes_by_mode): Ditto.
16305
16306 Initial patches from ira-improv branch:
16307
16308 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
16309
f60c2554 16310 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
16311 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
16312 (ira_create_allocno): Remove initialization of
16313 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
16314 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
16315 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16316 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
16317 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
16318 Initialize ALLOCNO_ADD_DATA.
16319 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
16320 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
16321 ALLOCNO_REG.
16322 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
16323 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
16324
16325 * ira.c (ira_reallocate): Remove.
16326 (setup_pressure_classes): Call
16327 ira_init_register_move_cost_if_necessary. Use
16328 ira_register_move_cost instead of ira_get_register_move_cost.
16329 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
16330 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
16331
16332 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
16333 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16334 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
16335 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
16336 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
16337 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
16338 Fix formatting.
7a81008b 16339 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
16340 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
16341 (struct allocno_color_data): New.
16342 (allocno_color_data_t): New typedef.
16343 (allocno_color_data): New definition.
16344 (ALLOCNO_COLOR_DATA): New macro.
16345 (struct object_color_data): New.
16346 (object_color_data_t): New typedef.
16347 (object_color_data): New definition.
16348 (OBJECT_COLOR_DATA): New macro.
16349 (update_copy_costs, calculate_allocno_spill_cost): Call
16350 ira_init_register_move_cost_if_necessary. Use
16351 ira_register_move_cost instead of ira_get_register_move_cost.
16352 (move_spill_restore, update_curr_costs): Ditto.
16353 (allocno_spill_priority): Make it inline.
7a81008b 16354 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
16355 (struct coalesce_data, coalesce_data_t): New.
16356 (allocno_coalesce_data): New definition.
16357 (ALLOCNO_COALESCE_DATA): New macro.
16358 (merge_allocnos, coalesced_allocno_conflict_p): Use
16359 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
16360 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
16361 (coalesce_allocnos): Ditto.
16362 (setup_coalesced_allocno_costs_and_nums): Ditto.
16363 (collect_spilled_coalesced_allocnos): Ditto.
16364 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
16365 (setup_slot_coalesced_allocno_live_ranges): Ditto.
16366 (coalesce_spill_slots): Ditto.
16367 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
16368 free allocno_coalesce_data.
16369
16370 * ira-conflicts.c: Fix formatting.
16371 (process_regs_for_copy): Call
16372 ira_init_register_move_cost_if_necessary. Use
16373 ira_register_move_cost instead of ira_get_register_move_cost.
16374 (build_object_conflicts): Optimize.
16375
16376 * ira-costs.c (record_reg_classes): Optimize. Call
16377 ira_init_register_move_cost_if_necessary. Use
16378 ira_register_move_cost, ira_may_move_in_cost, and
16379 ira_may_move_out_cost instead of ira_get_register_move_cost and
16380 ira_get_may_move_cost.
16381 (record_address_regs): Ditto.
16382 (scan_one_insn): Optimize.
16383 (find_costs_and_classes): Optimize.
16384 (process_bb_node_for_hard_reg_moves): Call
16385 ira_init_register_move_cost_if_necessary. Use
16386 ira_register_move_cost instead of ira_get_register_move_cost.
16387
16388 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
16389 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
16390 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
16391 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
16392 definitions.
16393 (ira_initiate_emit_data, ira_finish_emit_data)
16394 (create_new_allocno): New functions.
7a81008b 16395 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
16396 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
16397 Use ira_register_move_cost instead of ira_get_register_move_cost.
16398
16399 * ira-int.h: Fix some comments.
7a81008b
UB
16400 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
16401 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
16402 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
16403 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
16404 add_data.
16405 (struct ira_allocno): Make mode and aclass a bitfield. Move other
16406 bitfield after mode. Make hard_regno a short int. Make
16407 hard_regno short. Remove first_coalesced_allocno and
16408 next_coalesced_allocno. Move mem_optimized_dest_p,
16409 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
16410 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
16411 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
16412 temp, colorable_p. Add new member add_data.
16413 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
16414 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
16415 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
16416 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
16417 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
16418 (ALLOCNO_ADD_DATA): New macro.
16419 (ira_emit_data_t): New typedef.
16420 (struct ira_emit_data): New. Move mem_optimized_dest_p,
16421 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
16422 from struct ira_allocno.
16423 (ALLOCNO_EMIT_DATA): New macro.
16424 (ira_allocno_emit_data, allocno_emit_reg): New.
16425 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 16426 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
16427 (OBJECT_ADD_DATA): New macro.
16428 (ira_reallocate): Remove.
16429 (ira_initiate_emit_data, ira_finish_emit_data): New.
16430 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
16431 (ira_init_register_move_cost_if_necessary): New.
16432 (ira_object_conflict_iter_next): Merge into
16433 ira_object_conflict_iter_cond.
7a81008b 16434 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 16435
f60c2554 16436 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
16437 ira_init_register_move_cost_if_necessary. Use
16438 ira_register_move_cost instead of ira_get_register_move_cost.
16439
16440 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
16441
16442 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
16443
16444 * ira-costs.c: Fix formatting.
16445 (cost_classes, cost_classes_num): Remove.
16446 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
16447 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
16448 (cost_classes_del, cost_classes_htab): New.
16449 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
16450 (initiate_regno_cost_classes, setup_cost_classes): New.
16451 (setup_regno_cost_classes_by_aclass): New.
7a81008b 16452 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
16453 (record_reg_classes): Use regno_cost_classes instead of
16454 cost_classes. Move checking opposite operand up.
16455 (record_address_regs): Use regno_cost_classes
16456 instead of cost_classes.
16457 (scan_one_insn): Ditto. Use always general register.
16458 (print_allocno_costs): Use regno_cost_classes instead of
16459 cost_classes.
16460 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
16461 (find_costs_and_classes): Set up cost classes for each registers.
16462 Use also their mode for this. Use regno_cost_classes instead of
16463 cost_classes.
16464 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
16465 cost_classes.
16466 (free_ira_costs, ira_init_costs): Don't use cost_classes.
16467 (ira_costs, ira_set_pseudo_classes): Call
16468 initiate_regno_cost_classes and finish_regno_cost_classes.
16469
16470 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
16471
16472 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
16473
16474 * target.def (ira_cover_classes): Remove.
16475
7a81008b 16476 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
16477
16478 * doc/tm.texi.in: Ditto.
16479
16480 * ira-conflicts.c: Remove mentioning cover classes from the file.
16481 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 16482 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
16483
16484 * targhooks.c (default_ira_cover_classes): Remove.
16485
16486 * targhooks.h (default_ira_cover_classes): Ditto.
16487
16488 * haifa-sched.c: Remove mentioning cover classes from the file.
16489 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
16490 ira_pressure_classes and ira_pressure_classes_num instead of
16491 ira_reg_class_cover_size and ira_reg_class_cover. Use
16492 sched_regno_pressure_class instead of sched_regno_cover_class.
16493 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
16494 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16495
16496 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
16497 classes from the file.
16498 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
16499 (struct object_hard_regs, struct object_hard_regs_node): New.
16500 (struct ira_object): New members profitable_hard_regs,
16501 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
16502 (struct ira_allocno): Rename cover_class to aclass. Rename
16503 cover_class_cost and updated_cover_class_cost to class_cost and
16504 updated_class_cost. Remove splay_removed_p and
16505 left_conflict_size. Add new members colorable_p.
16506 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
16507 (ALLOCNO_COLORABLE_P): New macro.
16508 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
16509 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
16510 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
16511 (OBJECT_...): Rename parameter C to O.
16512 (OBJECT_PROFITABLE_HARD_REGS): New macro.
16513 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
16514 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
16515 (struct target_ira_int): New members x_ira_max_memory_move_cost,
16516 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
16517 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
16518 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
16519 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
16520 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
16521 x_ira_reg_class_subunion.
16522 (ira_max_memory_move_cost, ira_max_register_move_cost)
16523 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
16524 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
16525 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 16526 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
16527 (ira_reg_class_union): Rename to ira_reg_class_subunion.
16528 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16529 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16530 (ira_tune_allocno_costs_and_cover_classes): Rename to
16531 ira_tune_allocno_costs.
16532 (ira_debug_hard_regs_forest): New.
16533 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
16534 (ira_object_conflict_iter_next): Fix comments.
7a81008b 16535 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
16536 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
16537 cover_class to aclass.
16538 (ira_allocate_and_accumulate_costs): Ditto.
16539 (ira_allocate_and_set_or_copy_costs): Ditto.
16540
16541 * opts.c (decode_options): Remove ira_cover_class check.
16542
16543 * ira-color.c: Remove mentioning cover classes from the file. Use
16544 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
16545 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
16546 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
16547 (splay-tree.h): Remove include.
16548 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
16549 before copy_freq_compare_func.
16550 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
16551 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
16552 New definitions.
16553 (hard_regs_roots, hard_regs_node_vec): Ditto.
16554 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
16555 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
16556 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
16557 (create_new_object_hard_regs_node): Ditto.
16558 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 16559 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
16560 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
16561 Ditto.
16562 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
16563 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
16564 (remove_unused_object_hard_regs_nodes): Ditto.
16565 (enumerate_object_hard_regs_nodes): Ditto.
16566 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
16567 (object_hard_regs_subnode_t): Ditto.
16568 (struct object_hard_regs_subnode): Ditto.
16569 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
16570 (setup_object_hard_regs_subnode_index): Ditto.
16571 (get_object_hard_regs_subnodes_num): Ditto.
16572 (form_object_hard_regs_nodes_forest): Ditto.
16573 (finish_object_hard_regs_nodes_tree): Ditto.
16574 (finish_object_hard_regs_nodes_forest): Ditto.
16575 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 16576 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
16577 (pseudos_have_intersected_live_ranges_p): Rename to
16578 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
16579 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
16580 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
16581 (update_copy_costs): Remove assert. Skip cost update if the hard
16582 reg does not belong the class.
16583 (assign_hard_reg): Process only profitable hard regs.
16584 (uncolorable_allocnos_num): Make it scalar.
16585 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
16586 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
16587 and ira_reg_class_max_nregs.
16588 (bucket_allocno_compare_func): Check frequency first.
16589 (sort_bucket): Add compare function as a parameter.
16590 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
16591 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
16592 (push_allocno_to_stack): Rewrite for checking new allocno
16593 colorability.
7a81008b 16594 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
16595 (push_only_colorable): Pass new parameter to sort_bucket.
16596 (push_allocno_to_spill): Remove.
16597 (allocno_spill_priority_compare): Make it inline and rewrite.
16598 (splay_tree_allocate, splay_tree_free): Remove.
16599 (allocno_spill_sort_compare): New function.
16600 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
16601 build and use splay tree. Choose first allocno in uncolorable
16602 allocno bucket to spill. Remove setting spill cost.
16603 (all_conflicting_hard_regs): Remove.
16604 (setup_allocno_available_regs_num): Check only profitable hard
16605 regs. Print info about hard regs nodes.
16606 (setup_allocno_left_conflicts_size): Remove.
16607 (put_allocno_into_bucket): Don't call
7a81008b 16608 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
16609 (improve_allocation): New.
16610 (color_allocnos): Call setup_profitable_hard_regs,
16611 form_object_hard_regs_nodes_forest, improve_allocation,
16612 finish_object_hard_regs_nodes_forest. Setup spill cost.
16613 (print_loop_title): Use pressure classes.
16614 (color_allocnso): Ditto.
16615 (do_coloring): Remove allocation and freeing splay_tree_node_pool
16616 and allocnos_for_spilling.
16617 (ira_sort_regnos_for_alter_reg): Don't setup members
16618 {first,next}_coalesced_allocno.
16619 (color): Remove allocating and freeing removed_splay_allocno_vec.
16620 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
16621 prohibited_class_mode_regs.
16622
16623 * ira-lives.c: Remove mentioning cover classes from the file. Fix
16624 formatting.
16625 (update_allocno_pressure_excess_length): Use pressure classes.
16626 (inc_register_pressure, dec_register_pressure): Check for pressure
16627 class.
16628 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
16629 pressure class. Use ira_reg_class_nregs instead of
16630 ira_reg_class_max_nregs.
16631 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
16632 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
16633 (single_reg_class): Use ira_reg_class_nregs instead of
16634 ira_reg_class_max_nregs.
16635 (process_bb_node_lives): Use pressure classes.
16636
16637 * ira-emit.c: Remove mentioning cover classes from the file. Use
16638 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
16639 (change_loop): Use pressure classes.
16640 (modify_move_list): Call ira_set_allocno_class instead of
16641 ira_set_allocno_cover_class.
16642
16643 * ira-build.c: Remove mentioning cover classes from the file. Use
16644 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
16645 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
16646 ALLOCNO_UPDATED_CLASS_COST instead of
16647 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
16648 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
16649 (ira_create_allocno): Remove initialization of
16650 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
16651 ALLOCNO_COLORABLE_P.
16652 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16653 Update conflict regs for the objects.
16654 (create_cap_allocno): Remove assert. Don't propagate
16655 ALLOCNO_AVAILABLE_REGS_NUM.
16656 (ira_free_allocno_costs): New function.
16657 (finish_allocno): Change a part of code into call of
16658 ira_free_allocno_costs.
16659 (low_pressure_loop_node_p): Use pressure classes.
16660 (object_range_compare_func): Don't compare classes.
16661 (setup_min_max_conflict_allocno_ids): Ditto.
16662
16663 * loop-invariant.c: Remove mentioning cover classes from the file.
16664 Use ira_pressure_classes and ira_pressure_classes_num instead of
16665 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
16666 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
16667 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16668 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
16669 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
16670 STACK_REG_COVER_CLASS.
16671 (get_regno_cover_class): Rename to get_regno_pressure_class.
16672 (move_loop_invariants): Initialize and finalize regstat.
16673
16674 * ira.c: Remove mentioning cover classes from the file. Add
16675 comments about coloring without cover classes. Use ALLOCNO_CLASS
16676 instead of ALLOCNO_COVER_CLASS. Fix formatting.
16677 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
16678 setup_class_subset_and_memory_move_costs.
16679 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
16680 (setup_cover_and_important_classes): Rename to
16681 setup_allocno_and_important_classes.
16682 (setup_class_translate_array): New.
16683 (setup_class_translate): Call it for allocno and pressure classes.
16684 (cover_class_order): Rename to allocno_class_order.
16685 (comp_reg_classes_func): Use ira_allocno_class_translate instead
16686 of ira_class_translate.
16687 (reorder_important_classes): Set up ira_important_class_nums.
16688 (setup_reg_class_relations): Set up ira_reg_class_superunion.
16689 (print_class_cover): Rename to print_classes. Add parameter.
16690 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16691 Print pressure classes too.
16692 (find_reg_class_closure): Rename to find_reg_classes. Don't call
16693 setup_reg_subclasses.
7a81008b 16694 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
16695 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16696 (setup_prohibited_class_mode_regs): Use
7a81008b 16697 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
16698 (clarify_prohibited_class_mode_regs): New function.
16699 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
16700 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
16701 (ira_init_once): Initialize them.
16702 (free_register_move_costs): Process them.
16703 (ira_init): Move calls of find_reg_classes and
16704 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
16705 Call clarify_prohibited_class_mode_regs.
16706 (ira_no_alloc_reg): Remove.
16707 (too_high_register_pressure_p): Use pressure classes.
16708
16709 * sched-deps.c: Remove mentioning cover classes from the file.
16710 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
16711 ira_pressure_classes and ira_pressure_classes_num instead of
16712 ira_reg_class_cover_size and ira_reg_class_cover.
16713 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
16714 sched_regno_pressure_class instead of sched_regno_cover_class.
16715 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
16716 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16717
16718 * ira.h: Add 2010 to Copyright.
16719 (ira_no_alloc_reg): Remove external.
16720 (struct target_ira): Rename x_ira_hard_regno_cover_class,
16721 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
16722 x_ira_class_translate to x_ira_hard_regno_allocno_class,
16723 x_ira_allocno_classes_num, x_ira_allocno_classes, and
16724 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
16725 x_ira_pressure_classes, x_ira_pressure_class_translate, and
16726 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
16727 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
16728 x_ira_no_alloc_regs.
7a81008b 16729 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
16730 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
16731 ira_allocno_classes_num and ira_allocno_classes.
16732 (ira_class_translate): Rename to ira_allocno_class_translate.
16733 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
16734 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
16735 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16736 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
16737 (ira_no_alloc_regs): New.
16738
16739 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
16740 classes from the file. Use ALLOCNO_CLASS instead of
16741 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
16742 ALLOCNO_COVER_CLASS_COST.
16743 (regno_cover_class): Rename to regno_aclass.
16744 (record_reg_classes): Use ira_reg_class_subunion instead of
16745 ira_reg_class_union.
16746 (record_address_regs): Check overflow.
16747 (scan_one_insn): Ditto.
7a81008b 16748 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
16749 (print_pseudo_costs): Use REG_N_REFS.
16750 (find_costs_and_classes): Use classes intersected with them on the
16751 1st pass. Check overflow. Use ira_reg_class_subunion instead of
16752 ira_reg_class_union. Use ira_allocno_class_translate and
16753 regno_aclass instead of ira_class_translate and regno_cover_class.
16754 Modify code for finding regno_aclass. Setup preferred classes for
16755 the next pass.
16756 (setup_allocno_cover_class_and_costs): Rename to
16757 setup_allocno_class_and_costs. Use regno_aclass instead of
16758 regno_cover_class. Use ira_set_allocno_class instead of
16759 ira_set_allocno_cover_class.
16760 (init_costs, finish_costs): Use regno_aclass instead of
16761 regno_cover_class.
16762 (ira_costs): Use setup_allocno_class_and_costs instead of
16763 setup_allocno_cover_class_and_costs.
16764 (ira_tune_allocno_costs_and_cover_classes): Rename to
16765 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
16766 by processing objects. Use ira_reg_class_max_nregs instead of
16767 ira_reg_class_nregs.
16768
16769 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
16770
16771 * sched-int.h: Remove mentioning cover classes from the file.
16772 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
16773
16774 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
16775 classes from the file.
16776 (struct reg_pref): Rename coverclass into allocnoclass.
16777 (reg_cover_class): Rename to reg_allocno_class.
16778
7a81008b 16779 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
16780
16781 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
16782
16783 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
16784
16785 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
16786
16787 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
16788
16789 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
16790
16791 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
16792
16793 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
16794
16795 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
16796
16797 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
16798
16799 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
16800 (i386_ira_cover_classes): Ditto.
16801
16802 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
16803
16804 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
16805
16806 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
16807
16808 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
16809
16810 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
16811
16812 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
16813
16814 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
16815 (mips_ira_cover_classes): Ditto.
16816
16817 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
16818
16819 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
16820
16821 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
16822
16823 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
16824
16825 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
16826
16827 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
16828 (IRA_COVER_CLASSES_VSX): Ditto.
16829
16830 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
16831 (rs6000_ira_cover_classes): Ditto.
16832
16833 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
16834
16835 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
16836
16837 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
16838
16839 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
16840
16841 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
16842
16843 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
16844
16845 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
16846
16847 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
16848
16849 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
16850
16851 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
16852
2b80199f
JJ
168532011-03-29 Jakub Jelinek <jakub@redhat.com>
16854
71dae1fe
JJ
16855 PR debug/48253
16856 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
16857 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
16858 dw_fde_unlikely_section_end_label, cold_in_std_section,
16859 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
16860 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
16861 fields.
16862 (output_fde): Use dw_fde_second_{begin,end} if second is
16863 true, otherwise dw_fde_{begin,end}.
16864 (output_call_frame_info): Test dw_fde_second_begin != NULL
16865 instead of dw_fde_switched_sections.
16866 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
16867 fields, initialize new fields. Initialize in_std_section
16868 unconditionally from the first partition.
16869 (dwarf2out_end_epilogue): Don't override dw_fde_end when
16870 dw_fde_second_begin is non-NULL.
16871 (dwarf2out_switch_text_section): Stop initializing removed
16872 dw_fde_struct fields, initialize new fields, initialize
16873 also dw_fde_end here. Set dw_fde_switch_cfi even when
16874 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
16875 (struct var_loc_list_def): Add last_before_switch field.
16876 (arange_table, arange_table_allocated, arange_table_in_use,
16877 ARANGE_TABLE_INCREMENT, add_arange): Removed.
16878 (size_of_aranges): Count !in_std_section and !second_in_std_section
16879 hunks in fdes, instead of looking at arange_table_in_use.
16880 (output_aranges): Add aranges_length argument, don't call
16881 size_of_aranges here. Instead of using aranges_table*
16882 emit ranges for fdes when !in_std_section resp.
16883 !second_in_std_section.
16884 (dw_loc_list): Break ranges crossing section switch.
16885 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 16886 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
16887 (gen_subprogram_die): Don't call add_arange. Use
16888 dw_fde_{begin,end} for first partition and if switched
16889 section dw_fde_second_{begin,end} for the second.
16890 (var_location_switch_text_section_1,
16891 var_location_switch_text_section): New functions.
16892 (dwarf2out_begin_function): Initialize cold_text_section even
16893 when function_section () isn't text_section.
16894 (prune_unused_types): Don't walk arange_table.
16895 (dwarf2out_finish): Don't needlessly test
16896 flag_reorder_blocks_and_partition when testing cold_text_section_used.
16897 If info_section_emitted, call size_of_aranges and if it indicates
16898 non-empty .debug_aranges, call output_aranges with the computed
16899 size. Stop using removed dw_fde_struct fields, use
16900 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
16901 for second.
16902
2b80199f
JJ
16903 PR debug/48203
16904 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
16905 create ENTRY_VALUE if incoming or address of incoming's MEM
16906 is a hard REG.
16907 * dwarf2out.c (mem_loc_descriptor): Don't emit
16908 DW_OP_GNU_entry_value of DW_OP_fbreg.
16909 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
16910 on ENTRY_VALUE is able to find the canonical parameter VALUE.
16911 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
16912 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
16913 ENTRY_VALUE_EXPs.
16914 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
16915 is a REG_P or MEM_P with REG_P address, compute hash directly
16916 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
16917 (preserve_only_constants): Don't clear VALUES forwaring
16918 ENTRY_VALUE to some other VALUE.
16919
8a445129
RS
169202011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
16921
16922 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
16923 instead of GEN_INT.
16924
c82fee88
EB
169252011-03-28 Eric Botcazou <ebotcazou@adacore.com>
16926
16927 * cfgexpand.c (expand_gimple_cond): Always set the source location and
16928 block before expanding the statement.
16929 (expand_gimple_stmt_1): Likewise. Set them here...
16930 (expand_gimple_stmt): ...and not here. Tidy.
16931 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
16932 unknown.
16933
e45425ec
SB
169342011-03-28 Steven Bosscher <steven@gcc.gnu.org>
16935
16936 * Makefile.in: New rule for cprop.o.
16937 * gcse.c: Move constant/copy propagation to cprop.c.
16938 (compute_local_properties): Only handle expression tables.
16939 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
16940 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
16941 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
16942 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 16943 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
16944 compute_cprop_data, find_used_regs, try_replace_reg,
16945 find_avail_set, cprop_jump, constprop_register, cprop_insn,
16946 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
16947 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
16948 find_bypass_set, reg_killed_on_edge, bypass_block,
16949 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
16950 execute_rtl_cprop, pass_rtl_cprop): Move to...
16951 * cprop.c: ...here. New file, constant/copy propagation for RTL
16952 moved from gcse.c to here with minor cleanups in duplicated code.
16953
c09d5426
L
169542011-03-28 H.J. Lu <hongjiu.lu@intel.com>
16955
16956 * config/i386/i386.c (flag_opts): Fix a typo in
16957 -mavx256-split-unaligned-store.
16958
9eaa7740
AS
169592011-03-28 Anatoly Sokolov <aesok@post.ru>
16960
16961 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
16962 LIBCALL_VALUE): Remove macros.
16963 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16964 TARGET_FUNCTION_VALUE_REGNO_P): Define.
16965 (h8300_function_value, h8300_libcall_value,
16966 h8300_function_value_regno_p): New functions.
16967
dcec2be2
AS
169682011-03-28 Anatoly Sokolov <aesok@post.ru>
16969
16970 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
16971
520af9ec
JL
169722011-03-28 Jeff Law <law@redhat.com>
16973
16974 * tree-ssa-threadupdate.c (redirect_edges): Call
16975 create_edge_and_update_destination_phis as needed.
16976 (create_edge_and_update_destination_phis): Accept new BB argument.
16977 All callers updated.
16978 (thread_block): Do not update the profile when threading around
16979 intermediate blocks.
16980 (thread_single_edge): Likewise.
16981 (determine_bb_domination_status): If BB is not a successor of the
16982 loop header, return NONDOMINATING.
16983 (register_jump_thread): Note when we register a jump thread around
16984 an intermediate block.
16985 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
16986 (thread_across_edge): Use it.
16987
7450b54f
TG
169882011-03-28 Tristan Gingold <gingold@adacore.com>
16989
16990 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
16991 when for_return is 2.
16992
649beb33
JL
169932011-03-28 Jeff Law <law@redhat.com>
16994
16995 * var-tracking.c (canonicalize_values_mark): Delete unused
16996 lhs assignment.
16997 (canonicalize_values_star, set_variable_part): Likewise.
16998 (clobber_variable_part, delete_variable_part): Likewise.
16999
d5b8da97
SB
170002011-03-28 Steven Bosscher <steven@gcc.gnu.org>
17001
17002 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
17003
322dd859
MJ
170042011-03-28 Martin Jambor <mjambor@suse.cz>
17005
17006 * tree-inline.c (expand_call_inline): Do not check that destination
17007 node is analyzed.
17008 (optimize_inline_calls): Assert that destination node is analyzed.
17009 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
17010 not call tree_lowering_passes.
17011 * cgraph.h (cgraph_analyze_function): Declare.
17012 * cgraphunit.c (cgraph_analyze_function): Make public.
17013
aa53e58b
JM
170142011-03-28 Joseph Myers <joseph@codesourcery.com>
17015
17016 * config/sparc/sparc-opts.h: New.
17017 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
17018 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
17019 (sparc_option_override): Store processor_type enumeration rather
17020 than string in cpu_default. Remove name and enumeration from
17021 cpu_table. Directly default -mcpu then default -mtune from -mcpu
17022 without using sparc_select. Use target_flags_explicit instead of
17023 fpu_option_set.
17024 * config/sparc/sparc.h (enum processor_type): Move to
17025 sparc-opts.h.
17026 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
17027 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
17028 HeaderInclude entry.
17029 (mcpu=, mtune=): Use Var and Enum.
17030 (sparc_processor_type): New Enum and EnumValue entries.
17031
dd350eba
RO
170322011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17033 Iain Sandoe <iains@gcc.gnu.org>
17034
17035 PR target/48245
17036 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
17037
1b29f05e
EB
170382011-03-28 Eric Botcazou <ebotcazou@adacore.com>
17039
17040 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
17041 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
17042 Insert new statements at it in lieu of STMT.
17043 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
17044 * tree-vect-stmts.c (vectorizable_store): Likewise.
17045 (vectorizable_load): Likewise.
17046
506e6808
UB
170472011-03-28 Uros Bizjak <ubizjak@gmail.com>
17048
17049 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
17050 (divtf3): Ditto.
17051 (multf3): Ditto.
17052 (subtf3): Ditto.
17053
2e939ee9
L
170542011-03-27 H.J. Lu <hongjiu.lu@intel.com>
17055
17056 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
17057 unaligned 256bit load/store.
17058 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
17059 (*avx_movdqu<avxmodesuffix>): Likewise.
17060
5e85ab88
JDA
170612011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17062
17063 PR target/48288
17064 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
17065 * config/pa/pa.md (iordi3): Use new predicate in expander.
17066 (iorsi3): Likewise.
17067
47be3d6d
AS
170682011-03-27 Anatoly Sokolov <aesok@post.ru>
17069
506e6808 17070 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 17071 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
17072 * config/mips/mips-protos.h (mips_function_value): Remove.
17073 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
17074 (mips_function_value_1): ... this. Make static. Handle receiving
17075 the function type in 'fn_decl_or_type' argument.
17076 (mips_function_value, mips_libcall_value,
17077 mips_function_value_regno_p): New function.
17078 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17079 TARGET_FUNCTION_VALUE_REGNO_P): Define.
17080
d253656a
L
170812011-03-27 H.J. Lu <hongjiu.lu@intel.com>
17082
17083 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
17084 and -mavx256-split-unaligned-store.
17085 (ix86_option_override_internal): Split 32-byte AVX unaligned
17086 load/store by default.
17087 (ix86_avx256_split_vector_move_misalign): New.
17088 (ix86_expand_vector_move_misalign): Use it.
17089
17090 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
17091 -mavx256-split-unaligned-store.
17092
17093 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
17094 256bit load/store. Generate unaligned store on misaligned memory
17095 operand.
17096 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
17097 256bit load/store.
17098 (*avx_movdqu<avxmodesuffix>): Likewise.
17099
17100 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
17101 -mavx256-split-unaligned-store.
17102
1ea9206a
RS
171032011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
17104
17105 PR target/38598
17106 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
17107 Update commentary.
17108
b99ce2a8
RS
171092011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
17110
17111 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
17112 opno arguments with an expand_operand. Use create_input_operand.
17113 (mips_prepare_builtin_target): Delete.
17114 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
17115 functions.
17116 (mips_expand_builtin_direct): Use create_output_operand and
17117 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
17118 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
17119 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
17120
69d52339
IR
171212011-03-27 Ira Rosen <ira.rosen@linaro.org>
17122
17123 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
17124 function.
17125 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
17126
ba5e9aca
EB
171272011-03-26 Eric Botcazou <ebotcazou@adacore.com>
17128
17129 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
17130 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
17131 basic blocks and call commit_edge_insertions directly.
17132 (fixup_abnormal_edges): Move from here to...
17133 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
17134 on the edges and return whether some have actually been inserted.
17135 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
17136 compensation code.
17137
5d369d58
AB
171382011-03-26 Andrey Belevantsev <abel@ispras.ru>
17139
17140 PR rtl-optimization/48144
17141 * sel-sched-ir.c (merge_history_vect): Factor out from ...
17142 (merge_expr_data): ... here.
17143 (av_set_intersect): Rename to av_set_code_motion_filter.
17144 Update all callers. Call merge_history_vect when an expression
17145 is found in both sets.
17146 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
17147
f082c000
AM
171482011-03-26 Alan Modra <amodra@gmail.com>
17149
17150 * config/rs6000/predicates.md (word_offset_memref_op): Handle
17151 cmodel medium addresses.
17152 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
17153 64-bit gpr loads and stores.
17154 (rs6000_secondary_reload_ppc64): New function.
17155 * config/rs6000/rs6000-protos.h: Declare it.
17156 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
17157
8ac5e12e
AM
171582011-03-26 Alan Modra <amodra@gmail.com>
17159
17160 PR target/47487
17161 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
17162 GNU Go in traceback table.
17163
c2654ded
RH
171642011-03-25 Richard Henderson <rth@redhat.com>
17165
17166 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
17167 if there are exactly 6 operands.
17168 (set_storage_via_setmem): Similarly.
17169
ba78087b
KT
171702011-03-25 Kai Tietz <ktietz@redhat.com>
17171
17172 * collect2.c (write_c_file_stat): Handle backslash
17173 as right-hand directory separator.
17174 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
17175 checking just for slash.
17176 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
17177 instead of checking for trailing slash.
17178 * gcc.c (record_temp_file): Use filename_cmp instead
17179 of strcmp.
17180 (do_spec_1): Likewise.
17181 (replace_outfile_spec_function): Likewise.
17182 (is_directory): Use filename_ncmp instead of strncmp.
17183 (print_multilib_info): Likewise.
17184 * gcov.c (find_source): Use filename_cmp instead
17185 instead of strcmp.
17186 (make_gcov_file_name): Fix order of slash/backslash
17187 checks.
17188 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
17189 (add_standard_paths): Likewise.
17190 * mips-tfile.c (saber_stop): Handle backslash.
17191 * prefix.c (update_path): Use filename_ncmp instead of
17192 strncmp.
17193 * profile.c (output_location): Use filename_cmp instead
17194 of strcmp.
17195 * read-md.c (handle_toplevel_file): Handle backslash.
17196 * tlink.c (frob_extension): Likewise.
17197 * tree-cfg.c (same_line_p): Use filename_cmp instead of
17198 strcmp.
17199 * tree-dump.c (dequeue_and_dump): Handle backslash.
17200 * tree.c (get_file_function_name): Likewise.
17201 * gengtype.c (read_input_list): Likewise.
17202 (get_file_realbasename): Likewise.
17203 (get_output_file_with_visibility): Use filename_cmp
17204 instead of strcmp.
17205
75f6ec9a
RS
172062011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
17207
17208 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
17209 case to VFPv1.
17210
6c4e2997
NF
172112011-03-25 Nathan Froyd <froydnj@codesourcery.com>
17212
17213 * fold-const.c (expr_location_or): New function.
17214 (fold_truth_not_expr): Call it.
17215
0edf1bb2
JL
172162011-03-25 Jeff Law <law@redhat.com>
17217
17218 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
17219 va_end.
17220 * c-family/c-common.c (def_fn_type): Likewise.
17221 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
17222 * emit-rtl.c (gen_rtvec): Likewise.
17223 * lto/lto-lang.c (def_fn_type): Likewise.
17224
fdc2de95
RG
172252011-03-25 Richard Guenther <rguenther@suse.de>
17226
17227 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
17228 also generate copies.
17229 (fini_copy_prop): Handle constant values properly.
17230
21385db0
JJ
172312011-03-25 Jakub Jelinek <jakub@redhat.com>
17232
17233 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
17234 mode size instead of bitsize with DWARF2_ADDR_SIZE.
17235 (hash_loc_operands, compare_loc_operands): Handle
17236 DW_OP_GNU_entry_value.
17237
6510e8bb
KT
172382011-03-25 Kai Tietz <ktietz@redhat.com>
17239
17240 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
17241 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
17242 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
17243 comment and use macro TARGET_64BIT_MS_ABI instead.
17244 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
17245 and change default behavior for 32-bit MS_ABI.
17246 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
17247 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
17248 32-bit, too.
17249 (ix86_cfun_abi): Likewise.
17250 (ix86_maybe_switch_abi): Adjust comment.
17251 (init_cumulative_args): Check for bit-ness in MS_ABI case.
17252 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
17253 instead of checking for SYSV_ABI.
17254 (ix86_nsaved_sseregs): Likewise.
17255 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
17256 to 16 bytes.
17257 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
17258 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
17259 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
17260 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
17261 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
17262
34019e28
RG
172632011-03-25 Richard Guenther <rguenther@suse.de>
17264
17265 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
17266 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17267 (verify_gimple): Remove.
17268 * tree-cfg.c (verify_gimple_call): Merge verification
17269 from verify_stmts.
17270 (verify_gimple_phi): Merge verification from verify_stmts.
17271 (verify_gimple_label): New function.
17272 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
17273 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17274 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
17275 (verify_stmts): Rename to verify_gimple_in_cfg.
17276 (verify_gimple_in_cfg): New function.
17277 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
17278 * tree-ssa.c (verify_ssa): Likewise.
17279 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
17280
605896f5
RG
172812011-03-25 Richard Guenther <rguenther@suse.de>
17282
17283 * passes.c (init_optimization_passes): Add FRE pass after
17284 early SRA.
17285
7baa7c13
BS
172862011-03-25 Bernd Schmidt <bernds@codesourcery.com>
17287 Andrew Stubbs <ams@codesourcery.com>
17288
17289 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
17290 for Cortex-A8.
17291 (arm_movdi_vfp_cortexa8): New pattern.
17292 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
17293 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
17294 instructions when tuning for Cortex-A8. Set attribute "arch".
17295 * config/arm/arm.md: Move include arm-tune.md up a bit.
17296 (define_attr "arch"): Add "onlya8" and "nota8" values.
17297 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
17298
45dbce1b
NF
172992011-03-25 Nathan Froyd <froydnj@codesourcery.com>
17300
4ff08abf 17301 PR bootstrap/48282
45dbce1b
NF
17302 Revert:
17303 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17304
17305 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17306 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
17307 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17308 * passes.c (init_optimization_passes): Move
17309 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17310
ac9a30ae
KT
173112011-03-25 Kai Tietz <ktietz@redhat.com>
17312
17313 * c-typeck.c (comptypes_internal): Replace target
17314 hook call of comp_type_attributes by version in tree.c file.
17315 * gimple.c (gimple_types_compatible_p_1): Likewise.
17316 * tree-ssa.c (useless_type_conversion_p): Likewise.
17317 * tree.c (build_type_attribute_qual_variant): Likewise.
17318 (attribute_value_equal): New static helper function.
17319 (comp_type_attributes): New function.
17320 (merge_attributes): Use attribute_value_equal for comparison.
17321 (attribute_list_contained): Likewise.
17322 * tree.h (comp_type_attributes): New prototype.
17323
afdac116
RG
173242011-03-25 Richard Guenther <rguenther@suse.de>
17325
17326 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
17327 of complex types at -O0.
17328 (verify_gimple_assign_binary): Likewise.
17329 (verify_gimple_assign_ternary): Likewise.
17330
ec6165f8
MW
173312011-03-24 Mark Wielaard <mjw@redhat.com>
17332
17333 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
17334 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
17335
2a5ac39a
MW
173362011-03-24 Mark Wielaard <mjw@redhat.com>
17337
17338 PR debug/48041
17339 * dwarf2out.c (output_abbrev_section): Only write table when
17340 abbrev_die_table_in_use > 1.
17341
e533b2a4
RH
173422011-02-24 Richard Henderson <rth@redhat.com>
17343
17344 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
17345 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
17346 (alpha_expand_unaligned_load_words): Use extql.
17347 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
17348 (emit_insxl): Handle all modes for consistency.
17349
0b2a7367
RH
173502011-02-24 Richard Henderson <rth@redhat.com>
17351
17352 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
17353 (alpha_expand_unaligned_load): Likewise.
17354 (alpha_expand_unaligned_store): Likewise.
17355 (alpha_expand_unaligned_load_words): Likewise.
17356 (alpha_expand_unaligned_store_words): Likewise.
17357 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
17358 (alpha_split_lock_test_and_set_12): Likewise.
17359 (print_operand, alpha_fold_builtin_extxx): Likewise.
17360 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
17361 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
17362 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
17363 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
17364 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
17365 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
17366 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
17367 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
17368 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
17369 (extwl, extll, extql): Similarly.
17370 (inswh, inslh, insqh): Similarly.
17371 (mskbl, mskwl, mskll, mskql): Similarly.
17372 (mskwh, msklh, mskqh): Similarly.
17373
315b2bef
RH
173742011-02-24 Richard Henderson <rth@redhat.com>
17375
17376 * config/alpha/alpha.md (attribute isa): Add er, ner.
17377 (attribute enabled): Handle them.
17378 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
17379
67102517
RH
173802011-02-24 Richard Henderson <rth@redhat.com>
17381
17382 * config/alpha/alpha.md (attribute isa): Add vms.
17383 (attribute enabled): Handle it.
17384 (*movsf): Merge *movsf_{nofix,fix,nofp}.
17385 (*movdf): Merge *movdf_{nofix,fix,nofp}.
17386 (*movtf): Rename from *movtf_internal for consistency.
17387 (*movsi): Merge with *movsi_nt_vms.
17388 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
17389 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
17390 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
17391 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
17392
6aba5cb4
RH
173932011-02-24 Richard Henderson <rth@redhat.com>
17394
17395 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
17396 (extendqisi2, extendhisi2): Likewise.
17397 (extendqidi2): Simplify BWX/non-BWX expansions.
17398 (extendhidi2): Similarly.
17399
bdfb351b
RH
174002011-02-24 Richard Henderson <rth@redhat.com>
17401
17402 * config/alpha/alpha.md (attribute isa): New.
17403 (attribute enabled): New.
17404 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
17405 (zero_extendqisi2, zero_extendqidi2): Similarly.
17406 (zero_extendhisi2, zero_extendhidi2): Similarly.
17407 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
17408
6abe71eb
RH
174092011-02-24 Richard Henderson <rth@redhat.com>
17410
17411 * config/alpha/predicates.md (input_operand): Revert last change;
17412 update comment to mention 32-bit VMS rather than Windows.
17413
7114321e
NF
174142011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17415
17416 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17417 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
17418 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17419 * passes.c (init_optimization_passes): Move
17420 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17421
c8679567
EB
174222011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17423
17424 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
17425
27173058
UB
174262011-03-24 Uros Bizjak <ubizjak@gmail.com>
17427
17428 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
17429 correctly.
17430
6f0c9f06
JJ
174312011-03-24 Jakub Jelinek <jakub@redhat.com>
17432
17433 PR debug/48204
17434 * simplify-rtx.c (simplify_const_unary_operation): Call
17435 real_convert when changing mode class with FLOAT_EXTEND.
17436
662666e5
NC
174372011-03-24 Nick Clifton <nickc@redhat.com>
17438
17439 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
17440 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
17441 * config/rx/rx.c (rx_option_override): Set align_jumps,
17442 align_loops and align_labels if not set by the user.
17443 (rx_align_for_label): New function.
17444 (rx_max_skip_for_label): New function.
17445 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
17446 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
17447 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
17448 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
17449 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
17450
2b99b2b8
RS
174512011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17452
17453 PR rtl-optimization/48263
17454 * optabs.c (expand_binop_directly): Reinstate convert_modes code
17455 and original commutative_p handling. Use maybe_gen_insn.
17456
ccecd6ea
AK
174572011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17458
17459 * reload.c (find_reloads_subreg_address): Add address_reloaded
17460 parameter and return true there if the full address has been
17461 reloaded.
17462 (find_reloads_toplev): Pass address_reloaded flag.
17463 (find_reloads_address_1): Don't use address_reloaded parameter.
17464
67295642
JL
174652011-03-24 Jeff Law <law@redhat.com>
17466
17467 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
17468 unused variable "ann".
17469 (remove_unused_locals): Likewise.
17470
17471 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
17472 statement.
17473
17474 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
17475 after it is freed.
17476
212aa74f
AK
174772011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17478
17479 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
17480 for invalid symbolic addresses.
17481 (s390_secondary_reload): Don't use s390_check_symref_alignment for
17482 larl operands.
17483
fe784e0d
EB
174842011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17485
17486 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
17487 the argument in calls to fold_truth_not_expr.
17488
63ee8641
NF
174892011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17490
17491 * tree.c (record_node_allocation_statistics): New function.
17492 (make_node_stat, copy_node_stat, build_string): Call it.
17493 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
17494 (build1_stat, build_omp_clause): Likewise.
17495
61be2a1c
RS
174962011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17497
17498 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
17499 last commit.
17500
a881aaa7
RG
175012011-03-24 Richard Guenther <rguenther@suse.de>
17502
17503 PR tree-optimization/48271
17504 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
17505 blocks that still exist.
17506
dbaa912c
RG
175072011-03-24 Richard Guenther <rguenther@suse.de>
17508
17509 PR tree-optimization/48270
17510 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
17511 not free datarefs before ddrs.
17512
1d60cc55
EB
175132011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17514
17515 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
17516 from the address built for a reference with variable offset.
17517
c78dd519
UB
175182011-03-24 Uros Bizjak <ubizjak@gmail.com>
17519
17520 PR target/48237
17521 * config/i386/i386.md (*movdf_internal_rex64): Do not split
17522 alternatives that can be handled with movq or movabsq insn.
17523 (*movdf_internal): Disable for !TARGET_64BIT.
17524 (*movdf_internal_nointeger): Ditto.
17525 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
17526
b25b9e8f
NF
175272011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17528
17529 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17530 (FUNCTION_ARG_ADVANCE): Likewise.
17531 * tm.texi.in: Change references to them to hook references.
17532 * tm.texi: Regenerate.
c78dd519 17533 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
17534 (default_function_incoming_arg): Likewise.
17535 (default_function_arg_advance): Likewise.
c78dd519 17536 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
17537 (function_arg_advance): Likewise.
17538 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17539
190b2187
RG
175402011-03-24 Richard Guenther <rguenther@suse.de>
17541
17542 PR middle-end/48269
17543 * tree-object-size.c (addr_object_size): Do not double-account
17544 for MEM_REF offsets.
17545
a183b5c7
DN
175462011-03-24 Diego Novillo <dnovillo@google.com>
17547
17548 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 17549 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
17550 (lto_input_data_block): Move from lto-opts.c. Make extern.
17551 Update all users.
17552 (lto_input_string): Rename from input_string. Make extern.
17553 Update all users.
17554 * lto-streamer-out.c (lto_output_string_with_length): Rename from
17555 output_string_with_length.
17556 Output 0 to indicate a non-NULL string. Update all callers to
17557 not emit 0.
17558 (lto_output_string): Rename from output_string. Make extern.
17559 Update all users.
17560 (lto_output_decl_state_streams): Make extern.
17561 (lto_output_decl_state_refs): Make extern.
17562 * lto-streamer.h (lto_input_string): Declare.
17563 (lto_input_data_block): Declare.
17564 (lto_output_string): Declare.
17565 (lto_output_string_with_length): Declare.
17566 (lto_output_decl_state_streams): Declare.
17567 (lto_output_decl_state_refs): Declare.
17568
cfef45c8
RG
175692011-03-24 Richard Guenther <rguenther@suse.de>
17570
17571 PR tree-optimization/46562
17572 * tree.c (build_invariant_address): New function.
17573 * tree.h (build_invariant_address): Declare.
17574 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
17575 a renamed function moved ...
17576 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
17577 Take valueization callback parameter.
17578 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
17579 * gimple-fold.h: New file.
17580 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
17581 (ccp_fold, fold_const_aggregate_ref,
17582 fold_ctor_reference, fold_nonarray_ctor_reference,
17583 fold_array_ctor_reference, fold_string_cst_ctor_reference,
17584 get_base_constructor): Move ...
17585 * gimple-fold.c: ... here.
17586 (gimple_fold_stmt_to_constant_1): New function
17587 split out from ccp_fold. Take a valueization callback parameter.
17588 Valueize all operands.
17589 (gimple_fold_stmt_to_constant): New wrapper function.
17590 (fold_const_aggregate_ref_1): New function split out from
17591 fold_const_aggregate_ref. Take a valueization callback parameter.
17592 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
17593 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
17594 invariant POINTER_PLUS_EXPRs to invariant form.
17595 (vn_valueize): New function.
17596 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
17597 * tree-vrp.c (vrp_valueize): New function.
17598 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
17599 to fold statements to constants.
17600 * tree-ssa-pre.c (eliminate): Properly guard propagation of
17601 function declarations.
17602 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
17603 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
17604
5e0a7e40
RS
176052011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17606
17607 * config/h8300/predicates.md (jump_address_operand): Fix register
17608 mode check.
17609
bfe068c3
IR
176102011-03-24 Ira Rosen <ira.rosen@linaro.org>
17611
17612 * doc/invoke.texi (max-stores-to-sink): Document.
17613 * params.h (MAX_STORES_TO_SINK): Define.
17614 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
17615 if either vectorization or if-conversion is disabled.
17616 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
17617 tree-vect-data-refs.c vect_equal_offsets.
17618 (dr_equal_offsets_p): New function.
17619 (find_data_references_in_bb): Remove static.
17620 * tree-data-ref.h (find_data_references_in_bb): Declare.
17621 (dr_equal_offsets_p): Likewise.
17622 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
17623 (vect_drs_dependent_in_basic_block): Update calls to
17624 vect_equal_offsets.
17625 (vect_check_interleaving): Likewise.
17626 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
17627 (cond_if_else_store_replacement): Rename to...
17628 (cond_if_else_store_replacement_1): ... this. Change arguments and
17629 documentation.
17630 (cond_if_else_store_replacement): New function.
17631 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
17632 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
17633
4908b0bf
CLT
176342011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
17635
17636 PR target/46934
17637 * config/arm/arm.md (casesi): Use the gen_int_mode() function
17638 to subtract lower bound instead of GEN_INT().
17639
2be478a2
JW
176402011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
17641
17642 PR other/48179
17643 PR other/48221
17644 PR other/48234
17645 * doc/extend.texi (Alignment): Move section to match order in TOC.
17646 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
17647 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
17648
0c617be4
JL
176492011-03-23 Jeff Law <law@redhat.com>
17650
17651 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
17652 before removing the edge.
17653
17654 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
17655 it may have been freed by redirect_branch_edge or
17656 redirect_edge_succ_nodup.
17657
58da96fe
RG
176582011-03-23 Richard Guenther <rguenther@suse.de>
17659
c78dd519 17660 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
17661 (check_va_list_escapes): Likewise.
17662 (check_all_va_list_escapes): Likewise.
17663
b8beb4d1
RG
176642011-03-23 Richard Guenther <rguenther@suse.de>
17665
17666 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
17667 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
17668 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
17669 (alias.o): Likewise.
17670 (ipa-type-escape.o): Remove.
17671 (ipa-struct-reorg.o): Likewise.
17672 (GTFILES): Remove ipa-struct-reorg.c.
17673 * alias.c: Do not include ipa-type-escape.h.
17674 * tree-ssa-alias.c: Likewise.
17675 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
17676 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
17677 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
17678 and ipa-type-escape passes.
17679 * tree-pass.h (pass_ipa_type_escape): Remove.
17680 (pass_ipa_struct_reorg): Likewise.
17681 * ipa-struct-reorg.h: Remove.
17682 * ipa-struct-reorg.c: Likewise.
17683 * ipa-type-escape.h: Likewise.
17684 * ipa-type-escape.c: Likewise.
17685 * doc/invoke.texi (-fipa-struct-reorg): Remove.
17686 (--param struct-reorg-cold-struct-ratio): Likewise.
17687 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17688 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17689 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
17690
f137aa63
AK
176912011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17692
17693 * config/s390/2084.md: Enable all insn reservations also for z9_ec
17694 cpu attribute value.
17695 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
17696 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
17697 * config/s390/s390.c (processor_flags_table): New constant array.
17698 (s390_handle_arch_option): Remove.
17699 (s390_handle_option): Remove s390_handle_arch_option invocations
17700 and OPT_mwarn_framesize_ handling.
17701 (s390_option_override): Remove s390_handle_arch_option invocation.
17702 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
17703 warnings.
17704 * config/s390/s390.md (cpu attribute): Add z9_ec value.
17705 * config/s390/s390.opt (s390_tune, s390_arch)
17706 (march=): Replace s390_arch_option enum and values with
17707 processor_type. Set variable name to s390_arch. Set
17708 initialization value.
17709 (mtune=): Replace s390_arch_option with processor_type. Set
17710 variable name to s390_tune. Set initialization value.
17711
bf90208f
JB
177122011-03-23 Julian Brown <julian@codesourcery.com>
17713
17714 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
17715 accesses which are not naturally aligned.
17716
3460fdf3
RS
177172011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
17718
17719 PR target/47553
17720 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
17721
a5c7d693
RS
177222011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
17723
17724 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
17725 parameter from "int" to "enum insn_code".
17726 (expand_operand_type): New enum.
17727 (expand_operand): New structure.
17728 (create_expand_operand): New function.
17729 (create_fixed_operand, create_output_operand): Likewise
17730 (create_input_operand, create_convert_operand_to): Likewise.
17731 (create_convert_operand_from, create_address_operand): Likewise.
17732 (create_integer_operand): Likewise.
17733 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
17734 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17735 (expand_insn, expand_jump_insn): Likewise.
17736 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
17737 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
17738 (expand_movstr, expand_builtin___clear_cache): Likewise.
17739 (expand_builtin_lock_release): Likewise.
17740 * explow.c (allocate_dynamic_stack_space): Likewise.
17741 (probe_stack_range): Likewise. Allow check_stack to FAIL,
17742 and use the default handling in that case.
17743 * expmed.c (check_predicate_volatile_ok): Delete.
17744 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
17745 (emit_cstore): Likewise.
17746 * expr.c (emit_block_move_via_movmem): Likewise.
17747 (set_storage_via_setmem, expand_assignment): Likewise.
17748 (emit_storent_insn, try_casesi): Likewise.
17749 (emit_single_push_insn): Likewise. Allow the expansion to fail.
17750 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
17751 (expand_vec_shift_expr, expand_binop_directly): Likewise.
17752 (expand_twoval_unop, expand_twoval_binop): Likewise.
17753 (expand_unop_direct, emit_indirect_jump): Likewise.
17754 (emit_conditional_move, vector_compare_rtx): Likewise.
17755 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
17756 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
17757 (expand_sync_lock_test_and_set): Likewise.
17758 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
17759 (emit_unop_insn): Likewise.
17760 (expand_copysign_absneg): Change icode to an insn_code.
17761 (create_convert_operand_from_type): New function.
17762 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
17763 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17764 (expand_insn, expand_jump_insn): Likewise.
17765 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
17766 than const_int_operand for operand 2.
17767
78fadbab
AK
177682011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17769
17770 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
17771 if possible.
17772
5f02387d
NF
177732011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17774
17775 * emit-rtl.c (emit_pattern_before_noloc): New function.
17776 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
17777 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
17778 (emit_pattern_after_noloc): New function.
17779 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
17780 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
17781
fdf3e18a
NF
177822011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17783
17784 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
17785 (__ffsDI2): Likewise.
17786
42d085c1
RH
177872011-03-22 Richard Henderson <rth@redhat.com>
17788
17789 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
17790 of !TARGET_ABI_OPEN_VMS.
17791 (alpha_trampoline_init, alpha_start_function): Likewise.
17792 (alpha_expand_epilogue, alpha_file_start): Likewise.
17793 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
17794 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
17795 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
17796 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
17797 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
17798
cabbe12a
JM
177992011-03-22 Joseph Myers <joseph@codesourcery.com>
17800
17801 * config/s390/s390-opts.h: New.
17802 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
17803 s390_arch_flags, s390_warn_framesize, s390_stack_size,
17804 s390_stack_guard): Remove.
17805 (s390_handle_arch_option): Return void. Take enum
17806 s390_arch_option value instead of string and searching array.
17807 (s390_handle_option): Don't assert that global structures are in
17808 use. Access variables via opts pointer. Use error_at. Don't use
17809 sscanf for -mstack-guard= or -mstack-size=. Update call to
17810 s390_handle_arch_option.
17811 (s390_option_override): Update call to s390_handle_arch_option.
17812 (s390_emit_prologue): Use %d format for s390_stack_size in
17813 diagnostic. Use %wd for HOST_WIDE_INT.
17814 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
17815 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
17816 * config/s390/s390.opt (config/s390/s390-opts.h): New
17817 HeaderInclude entry.
17818 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
17819 s390_arch_flags, s390_warn_framesize): New Variable entries.
17820 (s390_arch_option): New Enum and EnumValue entries.
17821 (march=): Use Enum instead of Var.
17822 (mstack-guard=, mstack-size=): Use UInteger and Var.
17823 (mtune=): Use Enum.
17824
05b12036
JM
178252011-03-22 Joseph Myers <joseph@codesourcery.com>
17826
17827 * config/score/score.c (score_handle_option): Don't assert that
17828 global structures are in use. Access target_flags via opts
17829 pointer. Use value of -march= option to determine target_flags
17830 settings.
17831 * config/score/score.opt (march=): Use Enum.
17832 (score_arch): New Enum and EnumValue entries.
17833
dd51e35a
JM
178342011-03-22 Joseph Myers <joseph@codesourcery.com>
17835
17836 * config/mep/mep.c (option_mtiny_specified): Remove.
17837 (mep_option_override): Move register handling for -mivc2 from
17838 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
17839 instead of option_mtiny_specified.
17840 (mep_handle_option): Access target_flags via opts pointer. Don't
17841 assert that global structures are in use. Defer part of -mivc2
17842 handling and move it to mep_option_override.
17843 * config/mep/mep.opt (IVC2): New Mask entry.
17844 (mivc2): Use Var and Defer instead of Mask.
17845
4a8d3d91
JM
178462011-03-22 Joseph Myers <joseph@codesourcery.com>
17847
17848 * config/v850/v850-opts.h: New.
17849 * config/v850/v850.c (small_memory): Replace with
17850 small_memory_physical_max array. Make that array static const.
17851 (v850_handle_memory_option): Take integer value of argument. Take
17852 gcc_options pointer, option text and location. Return void.
17853 Update for changes to small memory structures.
17854 (v850_handle_option): Access target_flags via opts pointer. Don't
17855 assert that global structures are in use. Update calls to
17856 v850_handle_memory_option.
c78dd519
UB
17857 (v850_encode_data_area): Update references to small memory settings.
17858 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
17859 (enum small_memory_type): Move to v850-opts.h.
17860 * config/v850/v850.opt (config/v850/v850-opts.h): New
17861 HeaderInclude entry.
17862 (small_memory_max): New Variable entry.
17863 (msda): Replace by pair of options msda= and msda-. Use UInteger.
17864 (mtda, mzda): Likewise.
17865
117fdbfa
JM
178662011-03-22 Joseph Myers <joseph@codesourcery.com>
17867
17868 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
17869 pointer. Don't assert that global structures are in use.
17870
d715091c
JM
178712011-03-22 Joseph Myers <joseph@codesourcery.com>
17872
17873 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
17874 via opts pointer. Don't assert that global structures are in use.
17875
1bb721dc
JM
178762011-03-22 Joseph Myers <joseph@codesourcery.com>
17877
17878 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
17879 (munix=93): Use Var.
17880 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
17881 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
17882 * config/pa/pa-opts.h: New.
17883 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
17884 (pa_handle_option): Don't assert that global structures are in
17885 use. Access target_flags via opts pointer. Don't handle
17886 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
17887 OPT_munix_98 here.
17888 (pa_option_override): Handle deferred OPT_mfixed_range_.
17889
cd8d8754
JM
178902011-03-22 Joseph Myers <joseph@codesourcery.com>
17891
17892 * config/mn10300/mn10300-opts.h: New.
17893 * config/mn10300/mn10300.c (mn10300_processor,
17894 mn10300_tune_string): Remove.
17895 (mn10300_handle_option): Don't assert that global structures are
17896 in use. Access mn10300_processor via opts pointer. Don't handle
17897 OPT_mtune_ here.
17898 * config/mn10300/mn10300.h (enum processor_type): Move to
17899 mn10300-opts.h.
17900 (mn10300_processor): Remove.
17901 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
17902 HeaderInclude entry.
17903 (mn10300_processor): New Variable entry.
17904 (mtune=): Use Var.
17905
24e6e6b1
JM
179062011-03-22 Joseph Myers <joseph@codesourcery.com>
17907
17908 * config/microblaze/microblaze.c: Don't include opts.h.
17909 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
17910 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
17911 (mno-clearbss): Use Var and Warn.
17912
8a784afb
JM
179132011-03-22 Joseph Myers <joseph@codesourcery.com>
17914
17915 * config/m32r/m32r-opts.h: New.
17916 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
17917 (m32r_handle_option): Don't assert that global structures are in
17918 use. Access target_flags and m32r_cache_flush_func via opts
17919 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
17920 OPT_mno_flush_trap here.
17921 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
17922 include of m32r-opts.h.
17923 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
17924 HeaderInclude entry.
17925 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
17926 (mmodel=): Use Enum and Var.
17927 (m32r_model): New Enum and EnumValue entries.
17928 (mno-flush-trap): Use Var.
17929 (msdata=): Use Enum and Var.
17930 (m32r_sdata): New Enum and EnumValue entries.
17931
bbfc9a8c
JM
179322011-03-22 Joseph Myers <joseph@codesourcery.com>
17933
17934 * config/m32c/m32c.c: Don't include opts.h.
17935 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
17936 m32c_handle_option): Remove.
17937 (m32c_option_override): Check global_options_set.x_target_memregs
17938 instead of target_memregs_set.
17939 * config/m32c/m32c.h (target_memregs): Remove.
17940 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
17941 variable.
17942
e24b8335
JM
179432011-03-22 Joseph Myers <joseph@codesourcery.com>
17944
17945 * config/iq2000/iq2000-opts.h: New.
17946 * config/iq2000/iq2000.c: Don't include opts.h.
17947 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 17948 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
17949 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
17950 HeaderInclude entry.
17951 (iq2000_tune): New Variable entry.
17952 (march=): Add comment. Use Enum.
17953 (iq2000_arch): New Enum and EnumValue entries.
17954 (mcpu=): Use Enum and Var.
17955 (iq2000_tune): New Enum and EnumValue entries.
17956
e6cc0c98
JM
179572011-03-22 Joseph Myers <joseph@codesourcery.com>
17958
17959 * config/ia64/ia64-opts.h: New.
17960 * config/ia64/ia64.c (ia64_tune): Remove.
17961 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
17962 here. Use error_at.
17963 (ia64_option_override): Handle deferred OPT_mfixed_range_.
17964 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
17965 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
17966 HeaderInclude entry.
17967 (ia64_tune): New Variable entry.
17968 (mfixed-range=): Use Defer and Var.
17969 (mtune=): Use Enum and Var.
17970 (ia64_tune): New Enum and EnumValue entries.
17971
db25893c
JM
179722011-03-22 Joseph Myers <joseph@codesourcery.com>
17973
17974 * config/frv/frv-opts.h: New.
17975 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
17976 frv-opts.h.
17977 (frv_cpu_type): Remove.
17978 * config/frv/frv.c: Don't include opts.h.
17979 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 17980 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
17981 (frv_cpu_type): New Variable entry.
17982 (frv_cpu): New Enum and EnumValue entries.
17983
6c223f5d
JM
179842011-03-22 Joseph Myers <joseph@codesourcery.com>
17985
17986 * config/cris/cris.c (cris_handle_option): Access target_flags via
17987 opts pointer. Don't assert that global structures are in use.
17988 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
17989 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
17990
bbd399cf
JM
179912011-03-22 Joseph Myers <joseph@codesourcery.com>
17992
17993 * config/bfin/bfin-opts.h: New.
17994 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
17995 bfin_si_revision, bfin_workarounds): Remove.
17996 (bfin_cpus): Make static const.
17997 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
17998 not bfin_lib_id_given.
17999 (bfin_handle_option): Don't set bfin_lib_id_given. Access
18000 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 18001 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
18002 * config/bfin/bfin.h: Include bfin-opts.h.
18003 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
18004 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
18005 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
18006 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
18007 entries.
18008
5e1b4d5a
JM
180092011-03-22 Joseph Myers <joseph@codesourcery.com>
18010
18011 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
18012 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
18013 or -msoft-float here.
18014 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
18015 -msoft-float and -mhard-float.
c78dd519 18016 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
18017 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
18018 msoft-float.
18019 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
18020 -msoft-float.
18021 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
18022 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
18023 not mhard-float.
18024 (LIBGCC_SPEC): Don't handle -msoft-float.
18025 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
18026 -mhard-float.
18027 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
18028 msoft-float.
18029 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
18030 -mfloat-abi=*, not -msoft-float and -mhard-float.
18031 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
18032 -msoft-float.
18033 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
18034 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
18035 mhard-float and msoft-float.
18036 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
18037 mfloat-abi=soft in comments, not mhard-float and msoft-float.
18038 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
18039 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
18040 mhard-float.
18041 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
18042 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
18043 msoft-float.
18044 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
18045 not mhard-float.
18046 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
18047 not msoft-float.
18048
800d1de1
RH
180492011-03-22 Richard Henderson <rth@redhat.com>
18050
18051 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
18052 TARGET_ABI_WINDOWS_NT.
18053 (alpha_output_function_end_prologue): Likewise.
18054 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
18055 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18056 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
18057 (trap, *movsi_nt_vms): Likewise.
18058 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
18059 (*tablejump_osf_nt_internal): Remove.
18060 * config/alpha/predicates.md (input_operand): Only test Pmode.
18061
c59ddd2b
JM
180622011-03-22 Joseph Myers <joseph@codesourcery.com>
18063
18064 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
18065 via opts pointer. Use error_at. Don't assert that global
18066 structures are in use.
18067
1333f97f
JM
180682011-03-22 Joseph Myers <joseph@codesourcery.com>
18069
18070 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
18071 (ix86_handle_option): Access ix86_isa_flags and
18072 ix86_isa_flags_explicit via opts pointer. Don't assert that
18073 global structures are in use.
18074 (ix86_function_specific_save, ix86_function_specific_restore):
18075 Update ix86_isa_flags_explicit field name.
c78dd519 18076 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
18077 (ix86_isa_flags_explicit): Rename TargetSave entry to
18078 x_ix86_isa_flags_explicit.
18079
75db85d8
RH
180802011-03-22 Richard Henderson <rth@redhat.com>
18081
18082 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
18083 (alpha_option_override, direct_return): Likewise.
18084 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
18085 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
18086 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
18087 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
18088 (alpha_expand_epilogue, alpha_end_function): Likewise.
18089 (alpha_init_libfuncs): Likewise.
18090 (struct machine_function): Remove unicosmk members.
18091 (print_operand) ['t']: Remove.
18092 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
18093 unicosmk_output_module_name, unicosmk_output_common,
18094 current_section_align, unicosmk_output_text_section_asm_op,
18095 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
18096 unicosmk_section_type_flags, unicosmk_unique_section,
18097 unicosmk_asm_named_section, unicosmk_insert_attributes,
18098 unicosmk_output_align, unicosmk_defer_case_vector,
18099 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
18100 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
18101 unicosmk_output_ssib, unicosmk_add_call_info_word,
18102 unicosmk_extern_head, unicosmk_output_default_externs,
18103 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
18104 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
18105 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
18106 * config/alpha/alpha-protos.h: Update.
18107 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
18108 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
18109 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
18110 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
18111 (*mulsi_se, mulvsi3): Likewise.
18112 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
18113 (*divmodsi_internal, call, call_value, realign): Likewise.
18114 (moddi3, umoddi3): Likewise; remove duplicate expander.
18115 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
18116 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
18117 (*movdi_nofix): Remove r/U alternative.
18118 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
18119 * config/alpha/constraints.md ("U"): Remove.
18120 * config/alpha/predicates.md (call_operand"): Don't test
18121 TARGET_ABI_UNICOSMK.
18122
96e45421
JM
181232011-03-22 Joseph Myers <joseph@codesourcery.com>
18124
18125 * target.def (handle_option): Take gcc_options and
18126 cl_decoded_option pointers and location_t.
18127 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
18128 * doc/tm.texi: Regenerate.
18129 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
18130 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
18131 * lto-opts.c (lto_reissue_options): Generate option structure for
18132 targetm.handle_option call.
18133 * opts.c (target_handle_option): Update call to
18134 targetm.handle_option. Remove assertions about values now passed
18135 down to hook.
18136 * targhooks.c (default_target_handle_option): New.
18137 * targhooks.h (default_target_handle_option): Declare.
18138 * config/alpha/alpha.c: Include opts.h.
18139 (alpha_handle_option): Update to new hook interface.
18140 * config/arm/arm.c: Include opts.h.
18141 (arm_handle_option): Update to new hook interface.
18142 * config/arm/t-arm (arm.o): Update dependencies.
18143 * config/bfin/bfin.c: Include opts.h.
18144 (bfin_handle_option): Update to new hook interface.
18145 * config/cris/cris.c: Include opts.h.
18146 (cris_handle_option): Update to new hook interface.
18147 * config/frv/frv.c: Include opts.h.
18148 (frv_handle_option): Update to new hook interface.
18149 * config/i386/i386.c: Include opts.h.
18150 (ix86_handle_option): Update to new hook interface.
18151 (ix86_valid_target_attribute_inner_p): Generate option structure
18152 for call to ix86_handle_option.
18153 * config/i386/t-i386 (i386.o): Update dependencies.
18154 * config/ia64/ia64.c: Include opts.h.
18155 (ia64_handle_option): Update to new hook interface.
18156 * config/ia64/t-ia64 (ia64.o): Update dependencies.
18157 * config/iq2000/iq2000.c: Include opts.h.
18158 (iq2000_handle_option): Update to new hook interface.
18159 * config/m32c/m32c.c: Include opts.h.
18160 (m32c_handle_option): Update to new hook interface.
18161 * config/m32r/m32r.c: Include opts.h.
18162 (m32r_handle_option): Update to new hook interface.
18163 * config/m68k/m68k.c: Include opts.h.
18164 (m68k_handle_option): Update to new hook interface.
18165 * config/mep/mep.c: Include opts.h.
18166 (mep_handle_option): Update to new hook interface.
18167 * config/microblaze/microblaze.c: Include opts.h.
18168 (microblaze_handle_option): Update to new hook interface.
18169 * config/mips/mips.c: Include opts.h.
18170 (mips_handle_option): Update to new hook interface.
18171 * config/mn10300/mn10300.c: Include opts.h.
18172 (mn10300_handle_option): Update to new hook interface.
18173 * config/pa/pa.c: Include opts.h.
18174 (pa_handle_option): Update to new hook interface.
18175 * config/pdp11/pdp11.c: Include opts.h.
18176 (pdp11_handle_option): Update to new hook interface.
18177 * config/rs6000/rs6000.c: Include opts.h.
18178 (rs6000_handle_option): Update to new hook interface.
18179 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
18180 * config/rx/rx.c: Include opts.h.
18181 (rx_handle_option): Update to new hook interface.
18182 * config/s390/s390.c: Include opts.h.
18183 (s390_handle_option): Update to new hook interface.
18184 * config/score/score.c: Include opts.h.
18185 (score_handle_option): Update to new hook interface.
18186 * config/sh/sh.c: Include opts.h.
18187 (sh_handle_option): Update to new hook interface.
18188 * config/sparc/sparc.c: Include opts.h.
18189 (sparc_handle_option): Update to new hook interface.
18190 * config/v850/v850.c: Include opts.h.
18191 (v850_handle_option): Update to new hook interface.
18192
66017846
JM
181932011-03-22 Joseph Myers <joseph@codesourcery.com>
18194
18195 * gcc.c (driver_unknown_option_callback): Only permit and save
18196 unknown -Wno- options.
18197 (driver_wrong_lang_callback): Save options directly instead of via
18198 driver_unknown_option_callback.
18199
e8b97ccd
EB
182002011-03-22 Eric Botcazou <ebotcazou@adacore.com>
18201
18202 * combine.c (simplify_set): Try harder to find the best CC mode when
18203 simplifying a nested COMPARE on the RHS.
18204
ebb9f8b0
JM
182052011-03-22 Joseph Myers <joseph@codesourcery.com>
18206
18207 * config/alpha/gnu.h: Remove.
18208 * config/arc: Remove directory.
18209 * config/arm/netbsd.h: Remove.
18210 * config/arm/t-pe: Remove.
18211 * config/crx: Remove directory.
18212 * config/i386/netbsd.h: Remove.
18213 * config/m68hc11: Remove directory.
18214 * config/m68k/uclinux-oldabi.h: Remove.
18215 * config/mcore/mcore-pe.h: Remove.
18216 * config/mcore/t-mcore-pe: Remove.
18217 * config/netbsd-aout.h: Remove.
18218 * config/rs6000/gnu.h: Remove.
18219 * config/sh/sh-symbian.h: Remove.
18220 * config/sh/symbian-base.c: Remove.
18221 * config/sh/symbian-c.c: Remove.
18222 * config/sh/symbian-cxx.c: Remove.
18223 * config/sh/symbian-post.h: Remove.
18224 * config/sh/symbian-pre.h: Remove.
18225 * config/sh/t-symbian: Remove.
18226 * config/svr3.h: Remove.
18227 * config/vax/netbsd.h: Remove.
18228 * config.build: Don't handle i[34567]86-*-pe.
18229 * config.gcc: Remove handling of deprecations for most deprecated
18230 targets.
18231 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
18232 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
18233 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
18234 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
18235 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
18236 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
18237 Remove cases.
18238 * config.host: Don't handle i[34567]86-*-pe.
18239 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
18240 (ASM_SPEC32): Don't handle -mcall-gnu.
18241 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
18242 -mcall-gnu.
18243 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
18244 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
18245 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
18246 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
18247 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
18248 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
18249 conditional on SYMBIAN.
18250 * configure.ac: Don't handle powerpc*-*-gnu*.
18251 * configure: Regenerate.
18252 * doc/extend.texi (interrupt attribute): Don't mention CRX.
18253 * doc/install-old.texi (m6811, m6812): Don't mention.
18254 * doc/install.texi (arc-*-elf*): Don't document multilib option.
18255 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
18256 (m68k-uclinuxoldabi): Don't mention.
18257 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
18258 Remove.
18259 (-mcall-gnu): Remove.
18260 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
18261 families): Remove constraint documentation.
18262
999a7d80
MS
182632011-03-22 Marius Strobl <marius@FreeBSD.org>
18264
18265 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
18266 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
18267 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
18268
45540bcf
MM
182692011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18270
18271 PR target/48226
18272 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
18273 vector when peeking at the next token for vector, don't expand the
18274 keywords.
18275
980a0ff4
GJL
182762011-03-21 Georg-Johann Lay <avr@gjlay.de>
18277
18278 * config/avr/avr-protos.h (expand_epilogue): Change prototype
18279 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
18280 * config/avr/avr.c (init_cumulative_args)
18281 (avr_function_arg_advance): Use it.
18282 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
18283 sibcall epilogues.
18284 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
18285 (avr_function_ok_for_sibcall): ...this new function.
18286 (avr_lookup_function_attribute1): New static Function.
18287 (avr_naked_function_p, interrupt_function_p)
18288 (signal_function_p, avr_OS_task_function_p)
18289 (avr_OS_main_function_p): Use it.
18290 * config/avr/avr.md ("sibcall", "sibcall_value")
18291 ("sibcall_epilogue"): New expander.
18292 ("*call_insn", "*call_value_insn"): New insn.
18293 ("call_insn", "call_value_insn"): Remove
18294 ("call", "call_value", "epilogue"): Change expander to handle
18295 sibling calls.
18296
49168734
NC
182972011-03-21 Nick Clifton <nickc@redhat.com>
18298
18299 * doc/invoke.texi (Overall Options): Move closing brace to end of
18300 options list.
18301 (Optimization Options): Add missing @gol.
18302 (Directory Options): Likewise.
18303 (i386 and x86-64 Options): Likewise.
18304 (RS6000 and PowerPC Options): Likewise.
18305 (i386 and x86-64 Windows Options): Likewise.
18306 (V850 Options): Add text missing from descriptions.
18307
bdfe906f
RH
183082011-03-22 Richard Henderson <rth@redhat.com>
18309
18310 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
18311 (avr_incoming_return_addr_rtx): New.
18312 (emit_push_byte): New.
18313 (expand_prologue): Use it. Remove incorrect dwarf annotation for
18314 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
18315 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
18316 (emit_pop_byte): New.
18317 (expand_epilogue): Use it. Pop frame pointer by bytes.
18318 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
18319 (INCOMING_RETURN_ADDR_RTX): New.
18320 (INCOMING_FRAME_SP_OFFSET): New.
18321 (ARG_POINTER_CFA_OFFSET): New.
18322 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
18323 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
18324 (pophi): Remove.
18325
d090a5aa
RH
18326 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
18327
fdf3e18a
NF
183282011-03-22 Nathan Froyd <froydnj@codesourcery.com>
18329
18330 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
18331 (FUNCTION_ARG_ADVANCE): Likewise.
18332 * tm.texi.in: Change references to them to hook references.
18333 * tm.texi: Regenerate.
18334 * targhooks.c (default_function_arg): Eliminate check for target
18335 macro.
18336 (default_function_incoming_arg): Likewise.
18337 (default_function_arg_advance): Likewise.
c78dd519 18338 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
18339 (function_arg_advance): Likewise.
18340 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
18341
009d3fcf
NF
183422011-03-22 Nathan Froyd <froydnj@codesourcery.com>
18343
18344 * tree.c (build_call_1): New function.
18345 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
18346
7bec30e1
RG
183472011-03-22 Richard Guenther <rguenther@suse.de>
18348
18349 PR tree-optimization/48228
18350 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
18351 for single-arg PHIs.
18352
0b7e851b
AB
183532011-03-22 Andrey Belevantsev <abel@ispras.ru>
18354
18355 PR rtl-optimization/48143
18356 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
18357 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
18358 sse2_cvtps2pd): Likewise.
18359
d89afca5
AK
183602011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18361
18362 * recog.c (canonicalize_change_group): Use validate_unshare_change.
18363
f471fe72
RG
183642011-03-22 Richard Guenther <rguenther@suse.de>
18365
18366 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
18367 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
18368 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
18369 and REALIGN_LOAD_EXPR.
18370 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
18371 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
18372 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
18373 DOT_PROD_EXPR case ...
18374 (expand_expr_real_2): ... here.
18375 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
18376 and REALIGN_LOAD_EXPR.
18377 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
18378 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
18379 (vect_create_epilog_for_reduction): Likewise.
18380 (vectorizable_reduction): Likewise.
18381 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
18382 * tree-vect-stmts.c (vectorizable_load): Likewise.
18383
f2f81d57
EB
183842011-03-22 Eric Botcazou <ebotcazou@adacore.com>
18385
18386 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
18387
ab081dd6
AK
183882011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18389
18390 * config/s390/s390.c (s390_delegitimize_address): Fix offset
18391 handling for PLTOFF/GOTOFF.
18392
6fd5332b
NC
183932011-03-22 Nick Clifton <nickc@redhat.com>
18394
18395 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
18396 trailing backslash from the end of the macro definition.
18397
01841ac0
AK
183982011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18399
18400 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
18401 and PLT unspecs.
18402
2ef6ce06
RS
184032011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
18404
18405 * expr.h (prepare_operand): Move to...
18406 * optabs.h (prepare_operand): ...here and change the insn code
18407 parameter from "int" to "enum insn_code".
18408 (insn_operand_matches): Declare.
18409 * expr.c (init_expr_target): Use insn_operand_matches.
18410 (compress_float_constant): Likewise.
18411 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
18412 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
18413 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
18414 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
18415 Likewise.
2ef6ce06
RS
18416 (gen_cond_trap): Likewise.
18417 (prepare_operand): Likewise. Change icode to an insn_code.
18418 (insn_operand_matches): New function.
18419 * reload.c (find_reloads_address_1): Use insn_operand_matches.
18420 * reload1.c (gen_reload): Likewise.
18421 * targhooks.c (default_secondary_reload): Likewise.
18422
9e43ad68
UB
184232011-03-21 Uros Bizjak <ubizjak@gmail.com>
18424
9a96da32
UB
18425 * config/alpha/alpha.md (unspec): New define_c_enum.
18426 (unspecv): Ditto.
18427
184282011-03-21 Uros Bizjak <ubizjak@gmail.com>
18429
18430 PR debug/48214
9e43ad68
UB
18431 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
18432 between a call and its CALL_ARG_LOCATION note.
18433
31408f60
EB
184342011-03-21 Eric Botcazou <ebotcazou@adacore.com>
18435
18436 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
18437
184382011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
18439
18440 PR c/42544
18441 PR c/48197
18442 * c-common.c (shorten_compare): If primopN is first sign-extended
18443 to opN and then zero-extended to result type, set primopN to opN.
18444
9dfd55f5
DJ
184452011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
18446
18447 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
18448 for barrier handlers.
18449
f3c33d9d
MM
184502011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18451
18452 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
18453 UNSPEC constants to be in the unspec enumeration, and redefine
18454 all UNSPECV constants to be in the unspecv enumeration, so that
18455 dumps print which unspec/unspec_volatile this is.
18456 * config/rs6000/vector.md (UNSPEC_*): Ditto.
18457 * config/rs6000/paired.md (UNSPEC_*): Ditto.
18458 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
18459 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
18460 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
18461
18462 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
18463 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
18464 UNSPECV_LWSYNC, since these are used as unspec_volatile.
18465 * config/rs6000/sync.md (isync, lwsync): Ditto.
18466
ac43f774
RG
184672011-03-21 Richard Guenther <rguenther@suse.de>
18468
18469 * params.def (lto-min-partition): Fix typo.
18470
411cdbd8
RG
184712011-03-21 Richard Guenther <rguenther@suse.de>
18472
18473 PR c/47939
18474 * c-decl.c (grokdeclarator): Drop to the main variant only
18475 for array types. Drop flag_gen_aux_info check.
18476
1cd9e416
RG
184772011-03-21 Richard Guenther <rguenther@suse.de>
18478
18479 PR translation/47911
18480 * params.def (lto-partitions): Fix typo.
18481 (lto-min-partition): Fix wording.
18482
ada5ad67
AT
184832011-03-21 Andreas Tobler <andreast@fgznet.ch>
18484
18485 * config/rs6000/t-freebsd: Remove duplication from file.
18486
f9613c9a
RG
184872011-03-21 Richard Guenther <rguenther@suse.de>
18488
18489 PR middle-end/47661
18490 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
18491
9bfbc1eb
RG
184922011-03-21 Richard Guenther <rguenther@suse.de>
18493
18494 PR lto/48210
18495 * params.def (lto-partitions): Require at least 1 partition.
18496
a2268084
RO
184972011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18498
18499 * gthr-solaris.h: Remove.
18500 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
18501 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
18502 (LIB_SPEC): Likewise.
18503 * config/sol2.opt (threads): Remove.
9e43ad68 18504 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
18505 (sparc*-*-solaris2*): Likewise.
18506 * configure.ac (enable_threads): Enable solaris support.
18507 * configure: Regenerate.
9e43ad68 18508 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
18509 * doc/install.texi (Configuration, --enable-threads=lib): Remove
18510 solaris.
18511
c43d9a1b
RO
185122011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18513
18514 * config.gcc: Obsolete *-*-solaris2.8*.
18515 * doc/install.texi (Specific, *-*-solaris2*): Document it.
18516
084239f4
RO
185172011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18518
18519 PR bootstrap/48135
18520 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
18521 reference. Solaris 8 perl works.
18522
64cadbe7
RO
185232011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18524
18525 PR bootstrap/48135
18526 * doc/install.texi (Prerequisites): Move jar etc. up.
18527 Explain support library version requirements.
18528
eb975109
RO
185292011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18530
18531 PR bootstrap/48135
18532 * doc/install.texi (Prerequisites): Move Perl to build
18533 requirements. Always necessary on Solaris 2 with Sun ld.
18534
8a509ffd
RO
185352011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18536
18537 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
18538 binutils 2.21.
18539 (Specific, i?86-*-solaris2.[89]): Likewise.
18540 (Specific, i?86-*-solaris2.10): Likewise.
18541 (Specific, mips-sgi-irix6): Likewise.
18542 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
18543 Update for binutils 2.21.
18544
8fbc58a1
RO
185452011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18546
18547 * configure.ac (gcc_cv_lto_plugin): Fix typo.
18548 Allow -fuse-linker-plugin for non-default plugin linker.
18549 * configure: Regenerate.
18550
7e84ad0b
NP
185512011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
18552
18553 PR bootstrap/48167
18554 * gengtype.c (files_rules): Added rule for cp/parser.h.
18555
2f36e14b
JJ
185562011-03-21 Jakub Jelinek <jakub@redhat.com>
18557
18558 PR target/48213
18559 * config/s390/s390.c (s390_delegitimize_address): Don't call
18560 lowpart_subreg if orig_x has BLKmode.
18561
62d784f7
KT
185622011-03-21 Kai Tietz <ktietz@redhat.com>
18563
18564 PR target/12171
9e43ad68
UB
18565 * doc/plugins.texi: Adjust documentation for plugin register_callback.
18566 * tree.h (attribute_spec): Add new member affects_type_identity.
18567 * attribs.c (empty_attribute_table): Adjust attribute_spec
18568 initializers.
62d784f7
KT
18569 * config/alpha/alpha.c: Likewise.
18570 * config/arc/arc.c: Likewise.
18571 * config/arm/arm.c: Likewise.
18572 * config/avr/avr.c: Likewise.
18573 * config/bfin/bfin.c: Likewise.
18574 * config/crx/crx.c: Likewise.
18575 * config/darwin.h: Likewise.
18576 * config/h8300/h8300.c: Likewise.
18577 * config/i386/cygming.h: Likewise.
18578 * config/i386/i386.c: Likewise.
18579 * config/ia64/ia64.c: Likewise.
18580 * config/m32c/m32c.c: Likewise.
18581 * config/m32r/m32r.c: Likewise.
18582 * config/m68hc11/m68hc11.c: Likewise.
18583 * config/m68k/m68k.c: Likewise.
18584 * config/mcore/mcore.c: Likewise.
18585 * config/mep/mep.c: Likewise.
18586 * config/microblaze/microblaze.c: Likewise.
18587 * config/mips/mips.c: Likewise.
18588 * config/rs6000/rs6000.c: Likewise.
18589 * config/rx/rx.c: Likewise.
18590 * config/sh/sh.c: Likewise.
18591 * config/sol2.h: Likewise.
18592 * config/sparc/sparc.c: Likewise.
18593 * config/spu/spu.c: Likewise.
18594 * config/stormy16/stormy16.c: Likewise.
18595 * config/v850/v850.c: Likewise.
18596
54833ec0
CLT
185972011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
18598
18599 * simplify-rtx.c (simplify_binary_operation_1): Handle
18600 (xor (and A B) C) case when B and C are both constants.
18601
14a41392
MX
186022011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
18603
18604 * tree-dfa.c (add_referenced_var): Fix typo in comment.
18605
806c3492
EB
186062011-03-20 Eric Botcazou <ebotcazou@adacore.com>
18607
18608 PR bootstrap/48168
18609 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
18610
65e0a0f3
JJ
186112011-03-20 Jakub Jelinek <jakub@redhat.com>
18612
18613 PR rtl-optimization/48156
18614 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
18615 assume df and df_lr are not NULL.
18616
b6a75dda
RR
186172011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18618
18619 PR debug/48023
18620 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
18621 between a call and its CALL_ARG_LOCATION note.
18622
5969b52d
KK
186232011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
18624
18625 PR debug/48178
18626 * config/sh/sh.c (find_barrier): Don't emit a constant pool
18627 between a call and its corresponding CALL_ARG_LOCATION note.
18628
f773c2bd
AS
186292011-03-19 Anatoly Sokolov <aesok@post.ru>
18630
18631 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
18632 instead of loop. Use HARD_REGISTER_NUM_P predicate.
18633 * haifa-sched.c (setup_ref_regs): Ditto.
18634 * caller-save.c (add_used_regs_1): Ditto.
18635 * dse.c (look_for_hardregs): Ditto.
18636 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
18637 * sched-rgn.c (check_live_1): Ditto.
18638
8bf872f9
JM
186392011-03-18 Joseph Myers <joseph@codesourcery.com>
18640
18641 * c-decl.c (diagnose_mismatched_decls): Give an error for
18642 redefining a typedef with variably modified type.
18643
ff8e2159
JM
186442011-03-18 Joseph Myers <joseph@codesourcery.com>
18645
18646 * c-decl.c (grokfield): Don't allow typedefs for structures or
18647 unions with no tag by default.
18648 * doc/extend.texi (Unnamed Fields): Update.
18649
16cc4440
UB
186502011-03-18 Uros Bizjak <ubizjak@gmail.com>
18651
18652 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
18653 Rewrite using indirect functions.
18654 (lwp_slwpcb): Ditto.
18655 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
18656 (avx_vinsertf128<mode>): Ditto.
18657
e101e12e
AK
186582011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18659
18660 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
18661 unspecs.
18662
4627c7fb
AK
186632011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18664
18665 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 18666 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 18667
2d36b47f
MK
186682011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
18669
18670 PR rtl-optimization/48170
18671 * gcse.c (hoist_code): Remove bogus asserts.
18672
2a3d7659
JL
186732011-03-18 Georg-Johann Lay <avr@gjlay.de>
18674
18675 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
18676 computation for prologue/epilogue.
18677
34c3ef05
RO
186782011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18679
18680 * Makefile.in (check-consistency): Remove.
18681
81f2b976
JJ
186822011-03-18 Jakub Jelinek <jakub@redhat.com>
18683
18684 PR debug/48176
18685 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
18686 arange_table_in_use is 0, but either text_section_used or
18687 cold_text_section_used is true. Don't call it if
18688 !info_section_emitted.
18689
68fd7765
AS
186902011-03-18 Anatoly Sokolov <aesok@post.ru>
18691
18692 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
18693 FUNCTION_VALUE_REGNO_P): Remove.
18694 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
18695 Remove.
18696 * config/avr/avr.c (avr_ret_register): Make static inline.
18697 (avr_function_value_regno_p): New function.
18698 (avr_libcall_value): Make static. Add 'func' argument.
18699 (avr_function_value): Make static. Rename 'func' argument to
18700 'fn_decl_or_type', forward it to avr_libcall_value. Call
18701 avr_ret_register function instead of RET_REGISTER macro.
b8bc3a43 18702 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
68fd7765 18703
b4ef8aac
JM
187042011-03-18 Jason Merrill <jason@redhat.com>
18705
18706 PR c++/23372
18707 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
18708
09a52fc3
RG
187092011-03-18 Richard Guenther <rguenther@suse.de>
18710
18711 * doc/install.texi (--enable-gold): Remove.
18712 (--with-plugin-ld): Document.
18713 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
18714
2a3d7659 187152011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
18716
18717 PR middle-end/47790
18718 * expr.c (optimize_bitfield_assignment_op): Revamp to work
18719 again after expansion changes.
18720
2abbb0fe
CLT
187212011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
18722
18723 * combine.c (try_combine): Do simplification only call of
18724 subst() on i2 even when i1 is present. Update comments.
18725
2efd0aa6
KK
187262011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
18727
18728 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
18729 and UNSPEC_PCREL_SYMOFF.
18730
30a49b23
AK
187312011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18732
18733 * config/s390/s390.md: Use define_c_enum for the unspec constant
18734 definitions.
18735
419e1853
JJ
187362011-03-18 Richard Henderson <rth@redhat.com>
18737 Jakub Jelinek <jakub@redhat.com>
18738
18739 PR bootstrap/48161
18740 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
18741 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
18742
24da2019
AS
187432011-03-17 Anatoly Sokolov <aesok@post.ru>
18744
18745 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18746 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
18747 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
18748 Change return type to bool.
18749 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18750
a82ff31f
JJ
187512011-03-17 Jakub Jelinek <jakub@redhat.com>
18752
8b29c87a
JJ
18753 PR debug/48163
18754 * var-tracking.c (prepare_call_arguments): If CALL target
18755 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
18756 pc instead of looking it up using cselib_lookup and use
18757 Pmode for it if x has VOIDmode.
18758 * dwarf2out.c (gen_subprogram_die): If also both first and
18759 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
18760
a82ff31f
JJ
18761 PR debug/48163
18762 * function.c (assign_parms): For data.passed_pointer parms
18763 use MEM of data.entry_parm instead of data.entry_parm itself
18764 as DECL_INCOMING_RTL.
18765 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
18766 also when passed and declared mode is the same, DECL_RTL
18767 is a MEM with pseudo as address and DECL_INCOMING_RTL is
18768 a MEM too.
18769
82ce305c
JL
187702011-03-16 Jeff Law <law@redhat.com>
18771
18772 PR rtl-optimization/37273
18773 * ira-costs.c (scan_one_insn): Detect constants living in memory and
18774 handle them like argument loads from stack slots. Do not double
18775 count memory for memory constants and argument loads from stack slots.
18776
fe58e02b
L
187772011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18778
18779 PR debug/48160
18780 * var-tracking.c (prepare_call_arguments): Check SUBREG.
18781
6fc4dbc7
L
187822011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18783
18784 PR target/48171
18785 * config/i386/i386.opt: Add Save to -mavx and -mfma.
18786
db3ed0b3
JJ
187872011-03-17 Jakub Jelinek <jakub@redhat.com>
18788
8054a389
JJ
18789 PR bootstrap/48153
18790 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
18791 if dwarf_strict.
18792 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
18793 Clear call_arg_locations and call_arg_loc_last always.
18794
db3ed0b3
JJ
18795 PR middle-end/48152
18796 * var-tracking.c (prepare_call_arguments): If argument needs to be
18797 passed by reference, adjust argtype and mode.
18798
1bce4ff3
RG
187992011-03-17 Richard Guenther <rguenther@suse.de>
18800
18801 PR middle-end/48134
18802 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
18803 a value make sure to fold the statement.
18804
7c71147d
CLT
188052011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
18806
18807 PR target/43872
18808 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
18809 return condition with !cfun->calls_alloca.
18810
0e1ee172
RG
188112011-03-17 Richard Guenther <rguenther@suse.de>
18812
18813 PR bootstrap/48148
18814 * lto-cgraph.c (input_overwrite_node): Clear the abstract
18815 origin for decls in other ltrans units.
18816 (input_varpool_node): Likewise.
18817
f8bce518
RG
188182011-03-17 Richard Guenther <rguenther@suse.de>
18819
18820 PR middle-end/48165
18821 * tree-object-size.c (compute_object_offset): Properly return
18822 the offset operand of MEM_REFs as sizetype.
18823
1b6fa860
JJ
188242011-03-17 Jakub Jelinek <jakub@redhat.com>
18825
dabd47e7
JJ
18826 PR rtl-optimization/48141
18827 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
18828 * dse.c: Include params.h.
18829 (active_local_stores_len): New variable.
18830 (add_wild_read, dse_step1): Clear it when setting active_local_stores
18831 to NULL.
18832 (record_store, check_mem_read_rtx): Decrease it when removing
18833 from the chain.
18834 (scan_insn): Likewise. Increase it when adding to chain, if it
18835 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
18836 set active_local_stores to NULL before the addition.
18837 * Makefile.in (dse.o): Depend on $(PARAMS_H).
18838
1b6fa860
JJ
18839 PR rtl-optimization/48141
18840 * dse.c (record_store): If no positions are needed in an insn
18841 that cannot be deleted, at least unchain it from active_local_stores.
18842
7b5cb7d6
DS
188432011-03-16 Dodji Seketeli <dodji@redhat.com>
18844
18845 PR debug/47510
18846 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
18847 (lookup_type_die_strip_naming_typedef): ... here.
18848 (get_context_die): Use it.
18849 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
18850 the anonymous struct named by the naming typedef.
18851
585e9d9d
L
188522011-03-16 H.J. Lu <hongjiu.lu@intel.com>
18853
18854 PR target/48154
18855 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
18856 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18857
6261ab0e
JL
188582011-03-16 Jeff Law <law@redhat.com>
18859
18860 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 18861 check for operands of conditional. Allow type to be a pointer.
6261ab0e 18862
0b0081ec
RG
188632011-03-16 Richard Guenther <rguenther@suse.de>
18864
18865 PR tree-optimization/48149
18866 * fold-const.c (fold_binary_loc): Fold
18867 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
18868
64a3d647
RG
188692011-03-16 Richard Guenther <rguenther@suse.de>
18870
18871 PR tree-optimization/26134
18872 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
18873 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
18874 (non_rewritable_mem_ref_base): Handle complex type component
18875 accesses, constrain offsets for vector and complex extracts
18876 more properly.
18877
ef13324e
RG
188782011-03-16 Richard Guenther <rguenther@suse.de>
18879
18880 PR tree-optimization/48146
18881 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
18882 operands avoiding the need for renaming.
18883
f0eddb90
RG
188842011-03-16 Richard Guenther <rguenther@suse.de>
18885
18886 * gimple-fold.c (maybe_fold_reference): Open-code relevant
18887 constant folding. Move MEM_REF canonicalization first.
18888 Rely on fold_const_aggregate_ref for initializer folding.
18889 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
18890
e42348b8
JJ
188912011-03-16 Jakub Jelinek <jakub@redhat.com>
18892
29f10e71
JJ
18893 PR middle-end/48136
18894 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
18895 arg0/arg1 or their arguments are always fold converted to matching
18896 types.
18897
e42348b8
JJ
18898 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
18899 to nargs.
18900
55b46574
RO
189012011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18902
18903 PR lto/46944
18904 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
18905 Handle in-tree gold.
18906 (ld_vers): Extract binutils version for gold.
18907 (gcc_cv_ld_hidden): Handle gold here.
18908 (gcc_cv_lto_plugin): Determine level of linker plugin support.
18909 * configure: Regenerate.
18910 * config.in: Regenerate.
18911 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
18912 -fuse-linker-plugin otherwise.
18913 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
18914 (LINK_COMMAND_SPEC): Use it.
18915 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
18916
2b1c5433
JJ
189172011-03-16 Jakub Jelinek <jakub@redhat.com>
18918
c2969d8e
JJ
18919 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
18920 * calls.c: Remove debug.h include.
18921 (emit_call_1): Don't call virtual_call_token debug hook.
18922 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
18923 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
18924 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
18925 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
18926 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
18927 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
18928 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
18929 dwarf2out_virtual_call): Remove.
18930 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
18931 copy_call_info and virtual_call hooks.
18932 (dwarf2out_init): Don't initialize vcall_insn_table,
18933 debug_dcall_section and debug_vcall_section.
18934 (prune_unused_types): Don't mark nodes from dcall_table.
18935 (dwarf2out_finish): Don't output dcall or vcall tables.
18936 * final.c (final_scan_insn): Don't call direct_call or
18937 virtual_call debug hooks.
18938 * debug.h (struct gcc_debug_hooks): Remove direct_call,
18939 virtual_call_token, copy_call_info and virtual_call hooks.
18940 (debug_nothing_uid): Remove prototype.
18941 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
18942 copy_call_info and virtual_call hooks.
18943 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
18944 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
18945 * debug.c (do_nothing_debug_hooks): Likewise.
18946 (debug_nothing_uid): Remove.
18947 * doc/invoke.texi (-fenable-icf-debug): Remove.
18948 * common.opt (-fenable-icf-debug): Likewise.
18949
325f5379
JJ
18950 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
18951 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
18952 call's MEM. Handle functions returning aggregate through a hidden
18953 first pointer. For virtual calls add clobbered pc to call arguments
18954 chain.
18955 * dwarf2out.c (gen_subprogram_die): Emit
18956 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
18957 can't be emitted.
18958
a58a8e4b
JJ
18959 PR debug/45882
18960 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
18961 * rtl.h (ENTRY_VALUE_EXP): Define.
18962 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
18963 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
18964 * print-rtl.c (print_rtx): Likewise.
18965 * gengtype.c (adjust_field_rtx_def): Likewise.
18966 * var-tracking.c (vt_add_function_parameter): Adjust
18967 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
18968 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
18969 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
18970 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
18971 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
18972
2b1c5433
JJ
18973 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
18974 Call var_location debug hook even on CALL_INSNs.
18975 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
18976 * rtl.def (ENTRY_VALUE): New.
18977 * dwarf2out.c: Include cfglayout.h.
18978 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18979 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
18980 (struct call_arg_loc_node): New type.
18981 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
18982 tail_call_site_count): New variables.
18983 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
18984 DW_TAG_GNU_call_site_parameter.
18985 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
18986 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
18987 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
18988 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
18989 and DW_AT_GNU_all_source_call_sites.
18990 (mem_loc_descriptor): Handle ENTRY_VALUE.
18991 (add_src_coords_attributes): Don't add enything if
18992 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
18993 (dwarf2out_abstract_function): Save and clear call_arg_location,
18994 call_site_count and tail_call_site_count around dwarf2out_decl call.
18995 (gen_call_site_die): New function.
18996 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
18997 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
18998 (dwarf2out_function_decl): Clear call_arg_locations,
18999 call_arg_loc_last, set call_site_count and tail_call_site_count
19000 to -1 and free block_map.
19001 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
19002 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
19003 followed by any real instructions.
19004 (dwarf2out_begin_function): Set call_site_count and
19005 tail_call_site_count to 0.
19006 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
19007 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
19008 attempt to force a DIE for it and worst case remove the attribute.
19009 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
19010 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
19011 the decl itself.
19012 * var-tracking.c: Include tm_p.h.
19013 (vt_stack_adjustments): For calls call note_register_arguments.
19014 (argument_reg_set): New variable.
19015 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
19016 ensure the VALUE is resolved.
19017 (call_arguments): New variable.
19018 (prepare_call_arguments): New function.
19019 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
19020 (struct expand_loc_callback_data): Add ignore_cur_loc field.
19021 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
19022 always use the best expression.
19023 (vt_expand_loc): Add ignore_cur_loc argument.
19024 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
19025 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
19026 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
19027 note for all calls.
19028 (vt_add_function_parameter): Use cselib_lookup_from_insn.
19029 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
19030 argument. Don't call cselib_preserve_only_values and
19031 cselib_reset_table.
19032 (note_register_arguments): New function.
19033 (vt_initialize): Compute argument_reg_set. Call
19034 vt_add_function_parameters before processing basic blocks instead of
19035 afterwards. For calls call prepare_call_arguments before calling
19036 cselib_process_insn.
19037 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
19038 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
19039 (var-tracking.o): Depend on $(TM_P_H).
19040 * cfglayout.h (insn_scope): New prototype.
19041 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
19042 * cfglayout.c (insn_scope): No longer static.
19043 * insn-notes.def (CALL_ARG_LOCATION): New.
19044 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
19045 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
19046 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
19047 nothing for DECL_EXTERNAL BLOCK_VARS.
19048
9ef13bd0
AM
190492011-03-16 Alan Modra <amodra@gmail.com>
19050
19051 PR target/45844
19052 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
19053 create invalid offset address for vsx splat insn.
19054 * config/rs6000/predicates.md (splat_input_operand): New.
19055 * config/rs6000/vsx.md (vsx_splat_*): Use it.
19056
56b67510
XDL
190572011-03-15 Xinliang David Li <davidxl@google.com>
19058
19059 PR c/47837
19060 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
19061 (normalize_preds): New function.
19062 (is_use_properly_guarded): Normalize def predicates.
19063
80fffdef
RR
190642011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
19065
732f37c6 19066 PR target/46788
80fffdef
RR
19067 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
19068 in the output template.
19069
930672ad
RG
190702011-03-15 Richard Guenther <rguenther@suse.de>
19071
19072 PR middle-end/47650
19073 * tree-pretty-print.c (dump_function_declaration): Properly
19074 dump unprototyped and varargs function types.
19075
c7ee7b45
RG
190762011-03-15 Richard Guenther <rguenther@suse.de>
19077
19078 PR tree-optimization/13954
19079 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
19080 and friends.
19081
b2ad5e37
RG
190822011-03-15 Richard Guenther <rguenther@suse.de>
19083
19084 PR tree-optimization/48037
19085 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
19086 selects into BIT_FIELD_REFs.
19087 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
19088 vector select.
19089
7ee93d4e
JJ
190902011-03-15 Jakub Jelinek <jakub@redhat.com>
19091
19092 PR tree-optimization/48129
19093 * builtins.c (fold_builtin_snprintf): Convert to type of
19094 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
19095 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
19096
e106efc7
RG
190972011-03-15 Richard Guenther <rguenther@suse.de>
19098
19099 PR tree-optimization/41490
19100 * tree-ssa-dce.c (propagate_necessity): Handle returns without
19101 value but with VUSE.
19102 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
19103 return statements.
19104 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
19105 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
19106 * tree-tailcall.c (find_tail_calls): Ignore returns.
19107
17dea42f
RG
191082011-03-15 Richard Guenther <rguenther@suse.de>
19109
19110 PR middle-end/48031
19111 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
19112 or variable-indexed array accesses when in gimple form.
19113
01c77a60
RG
191142011-03-15 Richard Guenther <rguenther@suse.de>
19115
16cc4440 19116 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 19117
77b0791e
AM
191182011-03-15 Alan Modra <amodra@gmail.com>
19119
19120 PR target/48032
19121 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
19122 presume symbol_refs without a symbol_ref_decl are suitably
19123 aligned, nor other trees we may see here. Handle anchor symbols.
19124 (legitimate_constant_pool_address_p): Comment. Add mode param.
19125 Check cmodel=medium addresses. Adjust all calls.
19126 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
19127 creating cmodel=medium optimized access to locals.
19128 * config/rs6000/constraints.md (R): Pass QImode to
19129 legitimate_constant_pool_address_p.
19130 * config/rs6000/predicates.md (input_operand): Pass mode to
19131 legitimate_constant_pool_address_p.
19132 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
19133 Update prototype.
19134
35f61ba4
MM
191352011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
19136
19137 PR target/48053
19138 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
19139 64-bit constants being loaded into registers other than GPRs such
19140 as loading 0 into a VSX register.
19141
07332e6d
RO
191422011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19143
16cc4440 19144 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 19145
de888d90
JJ
191462011-03-14 Jakub Jelinek <jakub@redhat.com>
19147
ba3ceb2d
JJ
19148 PR middle-end/47917
19149 * builtins.c (fold_builtin_snprintf): New function.
19150 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
19151 (fold_builtin_4): Likewise.
19152
2e64f8b8
JJ
19153 PR middle-end/38878
19154 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
19155 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
19156 and C - X == X also strip nops from +/-/p+ operand.
19157 When optimizing -X == C, fold C to arg0's type.
19158
de888d90
JJ
19159 PR debug/47946
19160 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
19161 emit it as add_AT_int instead of add_AT_unsigned.
19162
191632011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
19164
19165 * unwind-dw2.c: Include sys/sdt.h if it exists.
19166 (_Unwind_DebugHook): Use STAP_PROBE2.
19167 * config.in, configure: Rebuild.
19168 * configure.ac: Check for sys/sdt.h.
19169
d34abfd2
UB
191702011-03-14 Uros Bizjak <ubizjak@gmail.com>
19171
19172 * config/i386/i386.md (ROUND_FLOOR): New constant.
19173 (ROUND_CEIL): Ditto.
19174 (ROUND_TRUNC): Ditto.
19175 (ROUND_MXCSR): Ditto.
19176 (ROUND_NO_EXC): Ditto.
19177 (rint<mode>2): Use new defines instead of numerical constants.
19178 (floor<mode>2): Ditto.
19179 (ceil<mode>2): Ditto.
19180 (btrunc<mode>2): Ditto.
19181 * config/i386/i386-builtin-types.def: Define ROUND function type
19182 aliases.
19183 * config/i386/i386.c (enum ix86_builtins): Add
19184 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
19185 (struct builtin_description): Add
19186 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
19187 (ix86_expand_sse_round): New static function.
19188 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
19189 function types.
19190 (ix86_builtin_vectorized_function): Handle
19191 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
19192
87f9e23d
TT
191932011-03-14 Tom Tromey <tromey@redhat.com>
19194
19195 * c-parser.c (c_parser_asm_string_literal): Clear
19196 warn_overlength_strings.
19197
b3ab9ea2
TT
191982011-03-14 Tom Tromey <tromey@redhat.com>
19199
19200 * c-parser.c (disable_extension_diagnostics): Save
19201 warn_overlength_strings.
19202 (restore_extension_diagnostics): Restore warn_overlength_strings.
19203
6bd73dd8
JJ
192042011-03-14 Jakub Jelinek <jakub@redhat.com>
19205
19206 * BASE-VER: Change to 4.7.0.
19207
7f4d6e1b
RG
192082011-03-14 Richard Guenther <rguenther@suse.de>
19209
19210 PR middle-end/48098
19211 * tree.c (build_vector_from_val): Adjust assert to requirements
19212 and reality.
19213
c6104ef1
JJ
192142011-03-14 Jakub Jelinek <jakub@redhat.com>
19215
19216 PR bootstrap/48102
d34abfd2 19217 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 19218
dfa95e19
AT
192192011-03-14 Andreas Tobler <andreast@fgznet.ch>
19220
f60c2554 19221 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
19222 terms of target_flags_explicit. Adjust copyright year.
19223
19224 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
19225 * config/rs6000/t-freebsd: New file. Add override for
19226 LIB2FUNCS_EXTRA.
19227
bb322018
CD
192282011-03-13 Chris Demetriou <cgd@google.com>
19229
19230 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
19231 (-fno-diagnostics-show-option): this, to reflect current default.
19232 (-Werror=): Update text about -fno-diagnostics-show-option.
19233
12b1c80b
PB
192342011-03-12 Peter Bergner <bergner@vnet.ibm.com>
19235
19236 PR target/48053
19237 * config/rs6000/predicates.md (easy_vector_constant_add_self,
19238 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
19239 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
19240 mode is not V2DImode or V2DFmode.
19241 (vspltis_constant): Do not handle V2DImode and V2DFmode.
19242 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
19243 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
19244 registers to 0.
19245 (movdi_internal64): Likewise.
19246
57d598f7
SP
192472011-03-12 Sebastian Pop <sebastian.pop@amd.com>
19248
19249 PR tree-optimization/47127
19250 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
19251 parameter.
19252 (set_cloog_options): Same.
19253 (scop_to_clast): Same.
19254 (print_clast_stmt): Do not call cloog_state_malloc and
19255 cloog_state_free.
19256 (print_generated_program): Same.
19257 (gloog): Same.
19258 * graphite-clast-to-gimple.h (cloog_state): Declared.
19259 (scop_to_clast): Adjust declaration.
19260 * graphite.c (cloog_state): Defined here.
19261 (graphite_initialize): Call cloog_state_malloc.
19262 (graphite_finalize): Call cloog_state_free.
19263
f231b5ff
JM
192642011-03-11 Jason Merrill <jason@redhat.com>
19265
19266 * attribs.c (lookup_attribute_spec): Take const_tree.
19267 * tree.h: Adjust.
19268
6a4e2bd5
JM
192692011-03-11 Joseph Myers <joseph@codesourcery.com>
19270
19271 * config/sparc/sparc.c (sparc_option_override): Use
19272 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
19273
a758fd67
RG
192742011-03-11 Richard Guenther <rguenther@suse.de>
19275
19276 PR tree-optimization/48067
19277 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
19278 multiplication result will be only used once on the target
19279 stmt.
19280
03dfda54
RG
192812011-03-11 Richard Guenther <rguenther@suse.de>
19282
19283 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
19284
5f11a50a
RG
192852011-03-11 Richard Guenther <rguenther@suse.de>
19286
19287 PR lto/48073
19288 * tree.c (find_decls_types_r): Do not walk types only reachable
19289 from IDENTIFIER_NODEs.
19290
4074f163
JJ
192912011-03-11 Jakub Jelinek <jakub@redhat.com>
19292
19293 PR middle-end/48044
19294 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
19295 all vnode->force_output nodes as needed.
19296
30f7cdcd
JM
192972011-03-11 Jason Merrill <jason@redhat.com>
19298
19299 PR c++/48069
19300 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
19301 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
19302
62ecfeb8
MJ
193032011-03-11 Martin Jambor <mjambor@suse.cz>
19304
19305 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
19306 cgraph_node.
19307
e89e03ab
JJ
193082011-03-11 Jakub Jelinek <jakub@redhat.com>
19309
19310 PR tree-optimization/48063
19311 * ipa-inline.c (cgraph_decide_inlining): Don't try to
19312 inline functions called once if !tree_can_inline_p (node->callers).
19313
efbe978b 193142011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 19315
efbe978b
EB
19316 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
19317 extra_objs.
9d6193a7
CL
19318 * config/score/score3.c: Delete.
19319 * config/score/score3.h: Delete.
19320 * config/score/mul-div.S: Delete.
19321 * config/score/sfp-machine.h: Add new file.
19322 * config/score/constraints.md: Add new file.
19323 * config/score/t-score-softfp: Add new file.
efbe978b 19324 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
19325 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
19326 (score7_extra_constraint): Delete.
efbe978b 19327 (score7_option_override): Remove unused code.
9d6193a7
CL
19328 * config/score/score.c: Remove score3 and score5 define and code.
19329 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 19330 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
19331 * config/score/score.opt: Remove score3 and score5 options.
19332
5de27cca
JDA
193332011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19334
19335 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
19336 when _HPUX_SOURCE is defined.
19337 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
19338
18d92053
JM
193392011-03-10 Jason Merrill <jason@redhat.com>
19340
19341 PR c++/48029
19342 * stor-layout.c (layout_type): Don't set structural equality
19343 on arrays of incomplete type.
19344 * tree.c (type_hash_eq): Handle comparing them properly.
19345
67a2f76d
JJ
193462011-03-10 Jakub Jelinek <jakub@redhat.com>
19347
19348 PR debug/48043
18d92053 19349 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
19350 result mode matches original rtl mode.
19351
d845b2f9
NC
193522011-03-10 Nick Clifton <nickc@redhat.com>
19353
19354 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 19355 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 19356
db7ec035
JJ
193572011-03-09 Jakub Jelinek <jakub@redhat.com>
19358
19359 PR rtl-optimization/47866
19360 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
19361 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
19362 if target wasn't scalar.
19363 * function.c (assign_stack_temp_for_type): Assert that neither
19364 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
19365 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
19366 macro.
19367 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
19368
5d304e47
AK
193692011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19370
19371 * config/s390/s390-protos.h (s390_label_align): New prototype.
19372 * config/s390/s390.c (s390_label_align): New function.
19373 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
19374
93b826f0
MM
193752011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
19376
19377 PR target/47755
19378 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
19379 V2DI/V2DF constants. Only all 0's or all 1's are easy.
19380 (output_vec_const_move): Ditto.
19381
ef78aed6
AS
193822011-03-08 Anatoly Sokolov <aesok@post.ru>
19383
19384 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
19385 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
19386 * config/mips/mips.c (mips_preferred_reload_class): Make static.
19387 Change 'rclass' argument and result type to reg_class_t.
19388 (TARGET_PREFERRED_RELOAD_CLASS): Define.
19389
5f892aa0
GJL
193902011-03-08 Georg-Johann Lay <avr@gjlay.de>
19391
9e43ad68
UB
19392 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
19393 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
19394 (TARGET_MEMORY_MOVE_COST): Define.
19395 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 19396
32bd2409
JJ
193972011-03-08 Jakub Jelinek <jakub@redhat.com>
19398
530a4800
JJ
19399 PR debug/47881
19400 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
19401 removed anything.
19402
32bd2409
JJ
19403 PR tree-optimization/48022
19404 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
19405 for EQ/NE_EXPR.
19406
c7148991
JJ
194072011-03-07 Jakub Jelinek <jakub@redhat.com>
19408
19409 PR debug/47991
19410 * var-tracking.c (find_use_val): Return NULL for
19411 cui->sets && cui->store_p BLKmode MEMs.
19412
43070a6e
AS
194132011-03-07 Anatoly Sokolov <aesok@post.ru>
19414
19415 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
19416 Remove.
19417 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
19418 xstormy16_print_operand_address): Remove.
19419 * config/stormy16/stormy16.c (xstormy16_print_operand,
19420 xstormy16_print_operand_address): Make static.
19421 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19422
efbe978b 194232011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
19424
19425 PR target/47862
19426 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
19427 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
19428 before definition.
19429
cec8ac0b
ZD
194302011-03-07 Zdenek Dvorak <ook@ucw.cz>
19431
19432 PR bootstrap/48000
19433 * cfgloopmanip.c (fix_bb_placements): Return immediately
19434 if FROM is BASE_LOOP's header.
19435
59527282
PW
194362011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
19437
19438 * gimplify.c (gimplify_function_tree): Fix building calls
19439 to __builtin_return_address.
19440
617718f7
AM
194412011-03-07 Alan Modra <amodra@gmail.com>
19442
19443 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
19444 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
19445 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
19446 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
19447 return_mode args.
19448 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
19449 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
19450 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
19451 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
19452 * config/rs6000/rs6000.c
19453 (rs6000_elf_end_indicate_exec_stack): Rename to..
19454 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
19455 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
19456 (rs6000_file_start): ..here.
19457 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
19458 file scope variables.
19459 (call_ABI_of_interest): New function.
19460 (init_cumulative_args): Set above vars when function return value
19461 is a float, vector, or small struct.
19462 (rs6000_function_arg_advance_1): Likewise for function args.
19463 (rs6000_va_start): Set rs6000_passes_float if variable arg function
19464 references float args.
19465
38528d50
MX
194662011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
19467
19468 * doc/cfg.texi: Remove "See" before @ref.
19469 * doc/invoke.texi: Likewise.
19470
f42cf4f4
JM
194712011-03-05 Jason Merrill <jason@redhat.com>
19472
19473 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
19474
804a304d
AG
194752011-03-05 Anthony Green <green@moxielogic.com>
19476
19477 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
19478
634ee309
ZD
194792011-03-05 Zdenek Dvorak <ook@ucw.cz>
19480
19481 PR rtl-optimization/47899
19482 * cfgloopmanip.c (fix_bb_placements): Fix first argument
19483 to flow_loop_nested_p when moving the loop upward.
19484
6fe471c8
RE
194852011-03-05 Richard Earnshaw <rearnsha@arm.com>
19486
19487 PR target/47719
19488 * arm.md (movhi_insn_arch4): Accept any immediate constant.
19489
cc58ceee
JJ
194902011-03-05 Jakub Jelinek <jakub@redhat.com>
19491
19492 PR tree-optimization/47967
19493 * ipa-cp.c (build_const_val): Return NULL instead of creating
19494 VIEW_CONVERT_EXPR for mismatching sizes.
19495 (ipcp_create_replace_map): Return NULL if build_const_val failed.
19496 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
19497 give up on versioning.
19498
ea868305
AM
194992011-03-05 Alan Modra <amodra@gmail.com>
19500
19501 PR target/47986
19502 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19503 full cmodel medium/large lo_sum + high addresses.
19504
bc6ce334
AK
195052011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19506
19507 * config/s390/s390.c (s390_decompose_address): Reject non-literal
19508 pool references in UNSPEC_LTREL_OFFSET.
19509
87e7b310
JH
195102011-03-04 Jan Hubicka <jh@suse.cz>
19511
19512 PR lto/47497
19513 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
19514 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
19515 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
19516 Add node pointers.
87e7b310
JH
19517 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
19518 cgraph_add_thunk): Add node pointers.
19519 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
19520 associated to right node.
19521 (input_node): Update use of cgraph_same_body_alias
19522 and cgraph_add_thunk.
19523
d9c64246
CF
195242011-03-04 Changpeng Fang <changpeng.fang@amd.com>
19525
19526 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
19527 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
19528 modes when the flag -mprefer-avx128 is on.
d9c64246 19529
08707076
RS
195302011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
19531
19532 * dwarf2out.c (compare_loc_operands): Fix address handling.
19533
52517c81
AM
195342011-03-04 Alan Modra <amodra@gmail.com>
19535
19536 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
19537
b147c5b9
RG
195382011-03-04 Richard Guenther <rguenther@suse.de>
19539
19540 PR middle-end/47968
19541 * expmed.c (extract_bit_field_1): Prefer vector modes that
19542 vec_extract patterns can handle.
19543
8750672f
RG
195442011-03-04 Richard Guenther <rguenther@suse.de>
19545
19546 PR middle-end/47975
19547 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
19548
9eac0f2a
RH
195492011-03-04 Richard Henderson <rth@redhat.com>
19550
19551 * explow.c (emit_stack_save): Remove 'after' parameter.
19552 (emit_stack_restore): Likewise.
19553 * expr.h: Update to match.
19554 * builtins.c, calls.c, stmt.c: Likewise.
19555 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
19556 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
19557 * function.c (expand_function_end): Insert the emit_stack_save
19558 sequence before parm_birth_insn instead of after.
19559
dfee1406
UB
195602011-03-03 Uros Bizjak <ubizjak@gmail.com>
19561
19562 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
19563 (ssse3_pmaddubsw128): Ditto.
19564 (ssse3_pmaddubsw): Ditto.
19565
f1d4c3de
SE
195662011-03-03 Steve Ellcey <sje@cup.hp.com>
19567
19568 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
19569
71f3a3f5
JJ
195702011-03-03 Jakub Jelinek <jakub@redhat.com>
19571
423ed416
JJ
19572 PR c/47963
19573 * gimplify.c (omp_add_variable): Only call omp_notice_variable
19574 on TYPE_SIZE_UNIT if it is a DECL.
19575
71f3a3f5
JJ
19576 PR debug/47283
19577 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
19578 first operand is not is_gimple_mem_ref_addr, try to fold it.
19579 If the operand still isn't is_gimple_mem_ref_addr, clear
19580 MEM_EXPR on op0.
19581
4b1a5c0d
RG
195822011-03-03 Richard Guenther <rguenther@suse.de>
19583
19584 PR middle-end/47283
19585 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
19586 match comment.
19587 (refs_may_alias_p_1): For release branches return true if
19588 we are confused by our input.
19589
b46616fd
AK
195902011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19591
19592 * config/s390/s390.c (s390_function_value): Rename to ...
19593 (s390_function_and_libcall_value): ... this.
19594 (s390_function_value): New function.
19595 (s390_libcall_value): New function.
dfee1406 19596 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
19597 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
19598 target macro definitions.
19599 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
19600
46d8fabb
JM
196012011-03-02 Joseph Myers <joseph@codesourcery.com>
19602
19603 * config/i386/freebsd64.h (CC1_SPEC): Define.
19604 * config/i386/linux64.h (CC1_SPEC): Define.
19605 * config/i386/x86-64.h (CC1_SPEC): Don't define.
19606
6b1ce545
AS
196072011-03-02 Anatoly Sokolov <aesok@post.ru>
19608
19609 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19610 Remove.
19611 * config/stormy16/stormy16.c: Include reload.h.
19612 (xstormy16_memory_move_cost): New function.
19613 (TARGET_MEMORY_MOVE_COST): Define.
19614
34161e98
RS
196152011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
19616
19617 PR rtl-optimization/47925
19618 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
19619 with side effects. Remove the more-specific check for volatile asms.
19620
f60a97cf
AM
196212011-03-02 Alan Modra <amodra@gmail.com>
19622
19623 PR target/47935
19624 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
19625 toc relative addresses for valid offsets.
19626
f2ca11ca
RG
196272011-03-01 Richard Guenther <rguenther@suse.de>
19628
19629 PR tree-optimization/47890
19630 * tree-vect-loop.c (get_initial_def_for_induction): Set
19631 related stmt properly.
19632
7a00d9ea
RG
196332011-03-01 Richard Guenther <rguenther@suse.de>
19634
19635 PR lto/47924
19636 * lto-streamer.c (lto_record_common_node): Also register
19637 the canonical type.
19638
06c7edcc
RG
196392011-03-01 Richard Guenther <rguenther@suse.de>
19640
19641 PR lto/46911
19642 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19643 Do not stream DECL_ABSTRACT_ORIGIN.
19644 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19645 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19646 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19647 Do not stream DECL_ABSTRACT_ORIGIN.
19648 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19649 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19650
998871e9
AS
196512011-02-28 Anatoly Sokolov <aesok@post.ru>
19652
19653 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
19654 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 19655 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
19656 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
19657 Add 'outgoing' argument.
19658 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
19659 function.
19660 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19661 TARGET_FUNCTION_VALUE_REGNO_P): Define.
19662
94369251
KT
196632011-02-28 Kai Tietz <kai.tietz@onevision.com>
19664
19665 PR debug/28047
19666 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
19667 (lookup_filename): Likewise.
b2e2ea67 19668 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 19669
80a832cd
JJ
196702011-02-28 Bernd Schmidt <bernds@codesourcery.com>
19671 Jakub Jelinek <jakub@redhat.com>
19672
19673 PR middle-end/47893
19674 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
19675 (assign_stack_local_1): Change last argument type to int.
19676 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
19677 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 19678 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
19679 (assign_stack_local): Adjust caller.
19680 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
19681 of assign_stack_local, pass 0 as last argument.
19682 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
19683 callers.
19684
1b500976
JJ
196852011-02-28 Jakub Jelinek <jakub@redhat.com>
19686
f61c6f34
JJ
19687 PR debug/47283
19688 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
19689 Use target address_mode and pointer_mode hooks instead of hardcoded
19690 Pmode and ptr_mode. Handle some simple cases of extending if
19691 POINTERS_EXTEND_UNSIGNED < 0.
19692 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
19693 Call convert_debug_memory_address.
19694 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
19695 convert_debug_memory_address.
19696
1b500976
JJ
19697 PR middle-end/46790
19698 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
19699 * configure: Regenerated.
19700 * config.in: Regenerated.
19701 * varasm.c (default_function_section): Return NULL
b2e2ea67 19702 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 19703
2f2935b6
MJ
197042011-02-28 Martin Jambor <mjambor@suse.cz>
19705
19706 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
19707 the description to match the printed values.
19708
474086eb
RG
197092011-02-28 Richard Guenther <rguenther@suse.de>
19710
19711 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
19712 of the copied scope tree.
19713
15bf6f3a
RW
197142011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19715
19716 * doc/extend.texi (Function Attributes): Avoid deeply (and
19717 wrongly) nested tables.
19718
f6b439c9
JJ
197192011-02-27 Jakub Jelinek <jakub@redhat.com>
19720
19721 PR middle-end/47903
19722 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
19723 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
19724 r isn't op0 nor op1.
19725
1d8ca2c7
GJL
197262011-02-23 Georg-Johann Lay <avr@gjlay.de>
19727
19728 * config/avr/avr.md: Remove magic comment for emacs.
19729
593fca4b
GJL
197302011-02-23 Georg-Johann Lay <avr@gjlay.de>
19731
19732 PR target/45261
19733 * config/avr/avr.c (avr_option_override): Use error on bad options.
19734 (avr_help): New function.
19735 (TARGET_HELP): Define.
19736
6609216e
GJL
197372011-02-22 Georg-Johann Lay <avr@gjlay.de>
19738
19739 PR target/42240
19740 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
19741 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
19742
03d458af
GP
197432011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
19744
19745 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
19746 (ARM Options): Ditto.
19747 (i386 and x86-64 Options): Ditto.
19748 (RX Options): Ditto.
19749 (SPARC Options): Ditto.
19750
1c379b78
TC
197512011-02-26 Tijl Coosemans <tijl@coosemans.org>
19752
19753 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
19754 FreeBSD 6 and later. Generally use cpu generic.
19755
d5ed058c 197562011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 19757
d5ed058c
GP
19758 * doc/cpp.texi: Update copyright years.
19759
509d65dd 197602011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 19761
509d65dd 19762 PR target/46898
308d39cd
SB
19763 * config/lm32/lm32.md (ashrsi3): Added needed variable.
19764
509d65dd 197652011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 19766
509d65dd 19767 PR target/46898
308d39cd
SB
19768 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
19769 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
19770 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
19771 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 19772 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
19773 (gen_int_relational): Move declarations to start of function.
19774
822ba6d7
EB
197752011-02-25 Eric Botcazou <ebotcazou@adacore.com>
19776
19777 PR tree-optimization/45470
19778 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
19779 can throw internally only.
19780 * tree-vect-stmts.c (vectorizable_call): Likewise.
19781
ef795fc2
AS
197822011-02-24 Anatoly Sokolov <aesok@post.ru>
19783
19784 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
19785 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
19786 * config/stormy16/stormy16-protos.h
19787 (xstormy16_preferred_reload_class): Remove.
19788 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
19789 static. Change 'rclass' argument and return type to reg_class_t.
19790 (TARGET_PREFERRED_RELOAD_CLASS,
19791 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
19792
1c3277ee
RG
197932011-02-24 Richard Guenther <rguenther@suse.de>
19794
19795 * lto-streamer-in.c (input_bb): Do not find referenced vars
19796 in debug statements.
19797
67e18edb
JM
197982011-02-23 Jason Merrill <jason@redhat.com>
19799
19800 * common.opt (fabi-version): Document v5 and v6.
19801
b14fad9d
RG
198022011-02-23 Richard Guenther <rguenther@suse.de>
19803
19804 PR tree-optimization/47849
19805 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
19806
7fcf46f5
JZ
198072011-02-23 Jie Zhang <jie@codesourcery.com>
19808
19809 * opts-common.c (decode_cmdline_option): Print empty string
19810 argument as "" in decoded->orig_option_with_args_text.
19811 * gcc.c (execute): Print empty string argument as ""
19812 in the verbose output.
19813 (do_spec_1): Keep empty string argument.
19814
f85b70fd
NF
198152011-02-23 Nathan Froyd <froydnj@codesourcery.com>
19816
19817 * config.gcc: Declare score-* and crx-* obsolete.
19818
b152a615
JZ
198192011-02-23 Jie Zhang <jie@codesourcery.com>
19820
19821 PR rtl-optimization/47763
19822 * web.c (web_main): Ignore naked clobber when replacing register.
19823
bb6e77bc
AS
198242011-02-22 Anatoly Sokolov <aesok@post.ru>
19825
19826 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
19827 Remove.
19828
68bf6491
SP
198292011-02-22 Sebastian Pop <sebastian.pop@amd.com>
19830
19831 PR doc/47848
19832 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
19833
88ee1fc7
MS
198342011-02-22 Mike Stump <mikestump@comcast.net>
19835
19836 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
19837 assembler.
19838 * configure: Regenerate.
19839
6042d1dd
CLT
198402011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
19841
19842 PR rtl-optimization/46002
19843 * ira-color.c (update_copy_costs): Change class intersection
19844 test to reg_class_contents[] test of 'hard_regno'.
19845
7de97f9e
JM
198462011-02-21 Joseph Myers <joseph@codesourcery.com>
19847
19848 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
19849 than Driver option.
19850 * config/hpux11.opt (mt): Likewise.
19851 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
19852 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
19853 * config/vax/elf.opt (mno-asm-pic): Likewise.
19854 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
19855
d1d46f9f
MS
198562011-02-21 Mike Stump <mikestump@comcast.net>
19857
19858 PR target/47822
19859 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
19860 tree so we can get save the type.
19861 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
19862 for CFString instead of trying to use past the end of the builtins.
19863 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
19864 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
19865 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
19866 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
19867 Rename to darwin_builtin_cfstring.
19868 (darwin_init_cfstring_builtins): Return the built type.
19869
23e0d930
UB
198702011-02-21 Uros Bizjak <ubizjak@gmail.com>
19871
19872 PR target/47840
19873 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
19874 (_mm256_insert_epi64): Use _mm_insert_epi64.
19875
192997cf
AS
198762011-02-21 Anatoly Sokolov <aesok@post.ru>
19877
19878 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19879 * config/stormy16/stormy16-protos.h
19880 (xstormy16_mode_dependent_address_p): Remove.
19881 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
19882 Make static. Change return type to bool. Change argument type to
19883 const_rtx. Remove dead code.
19884 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19885
e292d003
RG
198862011-02-21 Richard Guenther <rguenther@suse.de>
19887
19888 PR lto/47820
19889 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19890 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19891 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
19892 TUs context.
23e0d930 19893 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
19894 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19895
77f846e9
RG
198962011-02-20 Richard Guenther <rguenther@suse.de>
19897
19898 PR lto/47822
19899 * tree.c (free_lang_data_in_decl): Clean builtins from
19900 the TU decl BLOCK_VARS.
23e0d930 19901
b2cddfc8
AO
199022011-02-19 Alexandre Oliva <aoliva@redhat.com>
19903
19904 PR debug/47620
19905 PR debug/47630
19906 * haifa-sched.c (fix_tick_ready): Skip tick computation
19907 for debug insns.
19908
becf4c11
RG
199092011-02-19 Richard Guenther <rguenther@suse.de>
19910
19911 PR lto/47647
19912 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
19913 Remove lazy BLOCK_VARS streaming.
19914 (lto_input_ts_block_tree_pointers): Likewise.
19915 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
19916
27f98305
JM
199172011-02-19 Joseph Myers <joseph@codesourcery.com>
19918
19919 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
19920
064bf3f4
JM
199212011-02-19 Joseph Myers <joseph@codesourcery.com>
19922
19923 * config/i386/biarch32.h, config/i386/mach.h,
19924 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
19925
9215ddc3
JJ
199262011-02-19 Jakub Jelinek <jakub@redhat.com>
19927
19928 PR target/47800
19929 * config/i386/i386.md (peephole2 for shift and plus): Use
19930 operands[1] original mode in the first insn.
19931
8b021004
MS
199322011-02-18 Mike Stump <mikestump@comcast.net>
19933
65ded153 19934 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 19935
f84ae14c
JH
199362011-02-18 Jan Hubicka <jh@suse.cz>
19937
19938 PR middle-end/47788
65ded153
EB
19939 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
19940 to zero when the function is not inlinable at all.
f84ae14c 19941
eddabc80
JDA
199422011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19943
19944 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
19945 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
19946 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
19947 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
19948 * config/pa/t-pa64: Likewise.
19949 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
19950
ca3da783
JJ
199512011-02-18 Jakub Jelinek <jakub@redhat.com>
19952
19953 PR driver/47787
19954 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
19955
430aa868
JDA
199562011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19957
19958 PR target/47792
19959 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
19960
4bf7ff7e
AS
199612011-02-18 Anatoly Sokolov <aesok@post.ru>
19962
19963 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
19964 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
19965 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
19966 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
19967 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
19968 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
19969 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
19970 m32r_load_postinc_p, m32r_store_preinc_predec_p,
19971 m32r_legitimate_address_p): New functions.
19972 * config/m32r/constraints.md (constraint "S"): Don't use
19973 STORE_PREINC_PREDEC_P.
19974 (constraint "U"): Don't use LOAD_POSTINC_P.
19975
7efcf910
CLT
199762011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
19977
19978 PR rtl-optimization/46178
19979 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
19980 compute ira_hard_regno_cover_class[].
19981
237d6259
RG
199822011-02-18 Richard Guenther <rguenther@suse.de>
19983
19984 PR lto/47798
19985 * lto-streamer.h (lto_global_var_decls): Declare.
19986 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
19987 statics for global var processing.
19988
12d80acc
RG
199892011-02-18 Richard Guenther <rguenther@suse.de>
19990
19991 PR tree-optimization/47737
19992 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
19993 edge dominance check.
19994
abfea58d
JJ
199952011-02-18 Jakub Jelinek <jakub@redhat.com>
19996
19997 PR debug/47780
19998 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
19999 avoid invalid rtx sharing.
20000
f73c8882
GP
200012011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
20002
20003 * doc/cpp.texi (Obsolete Features): Add background on the
20004 origin of assertions.
20005
d764a8e6
IS
200062011-02-17 Iain Sandoe <iains@gcc.gnu.org>
20007
20008 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 20009 objc_abi == 2.
d764a8e6
IS
20010 * config/darwin.c (output_objc_section_asm_op): Added support for
20011 ABI v1 and v2.
20012 (is_objc_metadata): New.
20013 (darwin_objc2_section): New.
20014 (darwin_objc1_section): New.
20015 (machopic_select_section): Added support for ABI v1 and v2.
20016 (darwin_emit_objc_zeroed): New.
20017 (darwin_output_aligned_bss): Detect objc metadata and treat it
20018 appropriately.
20019 (darwin_asm_output_aligned_decl_common): Same.
20020 (darwin_asm_output_aligned_decl_local): Same.
20021 * config/darwin-sections.def: Updated for ABI v1 and v2.
20022 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
20023 compiling Objective-C code for the NeXT runtime, default to using
20024 ABI version 0 for 32-bit, and version 2 for 64-bit.
20025
0a8134ca
JM
200262011-02-17 Joseph Myers <joseph@codesourcery.com>
20027
20028 * common.opt (optimize_fast): New Variable.
20029 * opts.c (default_options_optimization): Use opts->x_optimize_fast
20030 instead of local variable ofast.
20031
0a256240
NP
200322011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
20033
20034 * doc/invoke.texi (fobjc-abi-version): Documented.
20035 (fobjc-nilcheck): Documented.
20036 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
20037 version.
20038
fa381cb2
JM
200392011-02-17 Joseph Myers <joseph@codesourcery.com>
20040
20041 PR driver/47390
20042 * common.opt (export-dynamic): New Driver option.
20043 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
20044
5437eaa6
JM
200452011-02-17 Joseph Myers <joseph@codesourcery.com>
20046
20047 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
20048
bb7e6d55
AO
200492011-02-17 Alexandre Oliva <aoliva@redhat.com>
20050 Jan Hubicka <jh@suse.cz>
20051
20052 PR debug/47106
20053 PR debug/47402
20054 * cfgexpand.c (account_used_vars_for_block): Remove.
20055 (estimated_stack_frame_size): Use referenced vars.
20056 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
20057 that were referenced in the original function. Test src_fn
20058 rather than cfun. Drop redundant get_var_ann.
20059 (setup_one_parameter): Drop redundant get_var_ann.
20060 (declare_return_variable): Likewise.
20061 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
20062 (copy_arguments_for_versioning): Drop redundant get_var_ann.
20063 * ipa-inline.c (compute_inline_parameters): Do not compute
20064 disregard_inline_limits here.
bb7e6d55
AO
20065 (compute_inlinable_for_current, pass_inlinable): New.
20066 (pass_inline_parameters): Require PROP_referenced_vars.
20067 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 20068 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
20069 (cgraph_analyze_function): Set .disregard_inline_limits.
20070 * tree-sra.c (convert_callers): Compute inliner parameters
20071 only for functions already in SSA form.
20072
f181a8a7
JM
200732011-02-17 Joseph Myers <joseph@codesourcery.com>
20074
20075 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
20076 -mlittle-endian-data.
20077
c6869789
JM
200782011-02-17 Joseph Myers <joseph@codesourcery.com>
20079
20080 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
20081 -mno-fpu, not -fpu and -no-fpu.
20082 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
20083 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
20084
fbf4bfd3
UB
200852011-02-17 Uros Bizjak <ubizjak@gmail.com>
20086
20087 PR target/43653
20088 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
20089 input reload with PLUS RTX.
20090
70be5dc7
JM
200912011-02-16 Joseph Myers <joseph@codesourcery.com>
20092
20093 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
20094 of InverseVar(MDMX).
20095
30b1646e
JM
200962011-02-16 Joseph Myers <joseph@codesourcery.com>
20097
20098 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
20099 --m4-340.
20100
ab7b71e9
JM
201012011-02-16 Joseph Myers <joseph@codesourcery.com>
20102
20103 * config/mn10300/mn10300.opt (mno-crt0): New.
20104
466f3f08
JM
201052011-02-16 Joseph Myers <joseph@codesourcery.com>
20106
20107 * config/m68k/uclinux.opt (static-libc): New Driver option.
20108
8226cd7b
JM
201092011-02-16 Joseph Myers <joseph@codesourcery.com>
20110
20111 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
20112
45cab1d7
JM
201132011-02-16 Joseph Myers <joseph@codesourcery.com>
20114
20115 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
20116 %{muser-extend-enabled}.
20117
65aab64f
RG
201182011-02-16 Richard Guenther <rguenther@suse.de>
20119
20120 PR tree-optimization/47738
20121 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
20122 the TODO from tree_predictive_commoning.
20123
fc2fa4fb
JL
201242011-02-15 Jeff Law <law@redhat.com>
20125
20126 Revert
20127 2011-01-25 Jeff Law <law@redhat.com>
20128
20129 PR rtl-optimization/37273
20130 * ira-costs.c (scan_one_insn): Detect constants living in memory and
20131 handle them like argument loads from stack slots. Do not double
20132 count memory for memory constants and argument loads from stack slots.
20133
e3a69bb4
MM
201342011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
20135
20136 PR target/47755
20137 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
20138 mode for vector constants. Remove code that checks for TImode.
20139
de650422
AO
201402011-02-15 Alexandre Oliva <aoliva@redhat.com>
20141
20142 PR debug/47106
20143 PR debug/47402
20144 * cgraph.h (compute_inline_parameters): Return void.
20145 * ipa-inline.c (compute_inline_parameters): Adjust.
20146
30925d94
AO
201472011-02-15 Alexandre Oliva <aoliva@redhat.com>
20148
20149 PR debug/47106
20150 PR debug/47402
20151 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
20152 rather than decl.
20153 * cfgexpand.c (estimated_stack_frame_size): Likewise.
20154 * ipa-inline.c (compute_inline_parameters): Adjust.
20155
1b9a784a
AO
201562011-02-15 Alexandre Oliva <aoliva@redhat.com>
20157
20158 PR debug/47106
20159 PR debug/47402
20160 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
20161 Adjust all users. Pass FN to...
20162 * tree-flow-inline.h (first_referenced_var): ... this. Add
20163 fn argument.
20164 * ipa-struct-reorg.c: Adjust.
20165 * tree-dfa.c: Adjust.
20166 * tree-into-ssa.c: Adjust.
20167 * tree-sra.c: Adjust.
20168 * tree-ssa-alias.c: Adjust.
20169 * tree-ssa-live.c: Adjust.
20170 * tree-ssa.c: Adjust.
20171 * tree-ssanames.c: Adjust.
20172 * tree-tailcall.c: Adjust.
20173
27c6b086
AO
201742011-02-15 Alexandre Oliva <aoliva@redhat.com>
20175
20176 PR debug/47106
20177 PR debug/47402
20178 * tree-flow.h (referenced_var_lookup): Add fn parameter.
20179 Adjust all callers.
20180 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
20181 * tree-flow-inline.h: Adjust.
20182 * gimple-pretty-print.c: Adjust.
20183 * tree-into-ssa.c: Adjust.
20184 * tree-ssa.c: Adjust.
20185 * cfgexpand.c: Adjust.
20186
679e8183
NF
201872011-02-15 Nathan Froyd <froydnj@codesourcery.com>
20188
fbf4bfd3
UB
20189 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
20190 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20191 (EXTRA_CONSTRAINT): Delete.
20192 * config/iq2000/constraints.md: New file.
20193 * config/iq2000/iq2000.md: Include it.
679e8183
NF
20194 (define_insn ""): Delete.
20195 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
20196 unsupported constraint letters from patterns.
20197 (call_value, call_value_internal1): Likewise.
20198 (call_value_multiple_internal1): Likewise.
20199
a45d420a
NC
202002011-02-15 Nick Clifton <nickc@redhat.com>
20201
20202 * config/mn10300/mn10300.c: Include tm-constrs.h.
20203 (struct liw_data): New data structure describing an LIW candidate
20204 instruction.
20205 (extract_bundle): Use struct liw_data. Allow small integer
20206 operands for some instructions.
20207 (check_liw_constraints): Use struct liw_data. Remove swapped
20208 parameter. Add comments describing the checks. Fix bug when
20209 assigning the source of liw1 to the source of liw2.
20210 (liw_candidate): Delete. Code moved into extract_bundle.
20211 (mn10300_bundle_liw): Use struct liw_data. Check constraints
20212 before swapping.
20213 * config/mn10300/predicates.md (liw_operand): New predicate.
20214 Allows registers and small integer constants.
20215 * config/mn10300/constraints.md (O): New constraint. Accetps
20216 integers in the range -8 to +7 inclusive.
20217 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
20218 for moving a small integer into a register. Give this alternative
20219 LIW attributes.
20220 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
20221 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
20222 using the J,K,L and M constraints,
20223 (liw): Remove SI mode on second operands to allow for HI and QI
20224 mode values.
20225 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
20226 instruction.
20227
48feba28
RG
202282011-02-15 Richard Guenther <rguenther@suse.de>
20229
20230 PR tree-optimization/47743
20231 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
20232 for a non-type-compatible VN lookup bail out.
20233
ad1c1eeb
NF
202342011-02-15 Nathan Froyd <froydnj@codesourcery.com>
20235
20236 * config/fr30/constraints.md: New file.
20237 * config/fr30/fr30.md: Include it.
20238 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
20239 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20240 (EXTRA_CONSTRAINT): Delete.
20241
49ac143d
NF
202422011-02-15 Nathan Froyd <froydnj@codesourcery.com>
20243
20244 * config/frv/constraints.md: New file.
20245 * config/frv/predicates.md: Include it.
20246 * config/frv/frv.c (reg_class_from_letter): Delete.
20247 (frv_option_override): Don't initialize it.
20248 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
20249 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
20250 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
20251 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20252 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
20253 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20254 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
20255 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
20256 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
20257 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
20258 (REG_CLASS_FROM_CONSTRAINT): Delete.
20259
c95f9494
JJ
202602011-02-15 Jakub Jelinek <jakub@redhat.com>
20261
20262 PR middle-end/47581
20263 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
20264 if frame size is 0 in a leaf function.
20265
13aed611
RO
202662011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20267
20268 PR pch/14940
20269 * config/alpha/host-osf.c: New file.
20270 * config/alpha/x-osf: New file.
20271 * config.host (alpha*-dec-osf*): Use it.
20272
b09c3081
AS
202732011-02-14 Anatoly Sokolov <aesok@post.ru>
20274
20275 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20276 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
20277 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
20278 (rx_mode_dependent_address_p): ...this. Make static. Change argument
20279 type to const_rtx.
20280 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20281
d634083b
NF
202822011-02-14 Nathan Froyd <froydnj@codesourcery.com>
20283
20284 * config/stormy16/constraints.md: New file.
20285 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
20286 Use satisfies_constraint_Q and satisfies_constraint_R.
20287 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
20288 Delete.
20289 (xstormy16_legitiamte_address_p): Declare.
20290 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
20291 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20292 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 20293 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
20294 Un-staticize.
20295 (xstormy16_extra_constraint_p): Delete.
20296
c7dd803e
EB
202972011-02-14 Eric Botcazou <ebotcazou@adacore.com>
20298
20299 PR tree-optimization/46494
20300 * loop-unroll.c (split_edge_and_insert): Adjust comment.
20301 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
20302 (pass_rtl_loop_done): Add TODO_verify_flow.
20303 * fwprop.c (pass_rtl_fwprop): Likewise.
20304 * modulo-sched.c (pass_sms): Likewise.
20305 * tree-ssa-dom.c (pass_dominator): Likewise.
20306 * tree-ssa-loop-ch.c (pass_ch): Likewise.
20307 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
20308 (pass_tree_loop_done): Likewise.
20309 * tree-ssa-pre.c (execute_pre): Likewise.
20310 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
20311 * tree-ssa-sink.c (pass_sink_code): Likewise.
20312 * tree-vrp.c (pass_vrp): Likewise.
20313
c6150df6
NF
203142011-02-14 Nathan Froyd <froydnj@codesourcery.com>
20315
c7dd803e
EB
20316 * config/v850/constraints.md: New file.
20317 * config/v850/v850.md: Include it.
20318 * config/v850/predicates.md (reg_or_0_operand): Use
20319 satisfies_constraint_G.
20320 (special_symbolref_operand): Use satisfies_constraint_K.
20321 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
20322 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
20323 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
20324 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20325 (EXTRA_CONSTRAINT): Delete.
20326 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
20327 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
20328 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 20329
30dd1ea3
AS
203302011-02-14 Anatoly Sokolov <aesok@post.ru>
20331
20332 PR target/47696
20333 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
20334 description.
20335
944f4bb3
NF
203362011-02-14 Nathan Froyd <froydnj@codesourcery.com>
20337
20338 * config/mcore/constraints.md: New file.
20339 * config/mcore/mcore.md: Include it.
20340 * config/mcore/mcore.c (reg_class_from_letter): Delete.
20341 * config/mcore/mcore.h (reg_class_from_letter): Delete.
20342 (REG_CLASS_FROM_LETTER): Delete.
20343 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
20344 insn_const_int_ok_for_constraint.
20345 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
20346 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
20347 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20348 (EXTRA_CONSTRAINT): Delete.
20349
ad56a54c
RO
203502011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20351
20352 PR ada/41929
20353 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
20354 (IS_SIGHANDLER): Define.
20355 (sparc64_is_sighandler): New function, split off from
20356 sparc64_fallback_frame_state.
20357 (sparc_is_sighandler): New function, split off from
20358 sparc_fallback_frame_state.
20359 (sparc64_fallback_frame_state): Merge with ...
20360 (sparc_fallback_frame_state): ... this into ...
20361 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
20362 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
20363 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
20364 stack instead of hardcoded offsets.
ad56a54c 20365
fbf4bfd3 203662011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
20367
20368 PR target/45808
20369 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
20370
029c8f3e
RW
203712011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20372
20373 * configure: Regenerate.
20374
a016dc83
JM
203752011-02-12 Joseph Myers <joseph@codesourcery.com>
20376
20377 PR driver/45731
20378 * gcc.c (asm_options): Correct spec matching --target-help.
20379
8957a0ec
MJ
203802011-02-12 Martin Jambor <mjambor@suse.cz>
20381
20382 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
20383 to gimple call error.
20384
6ef828bc
MS
203852011-02-12 Mike Stump <mikestump@comcast.net>
20386
20387 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
20388 comments in backslash regions.
20389
a4015be5
MS
203902011-02-12 Mike Stump <mikestump@comcast.net>
20391 Jakub Jelinek <jakub@redhat.com>
20392 Iain Sandoe <iains@gcc.gnu.org>
20393
20394 PR target/47324
20395 * dwarf2out.c (output_cfa_loc): When required, apply the
20396 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
20397 (output_loc_sequence): Likewise.
20398 (output_loc_operands_raw): Likewise.
20399 (output_loc_sequence_raw): Likewise.
20400 (output_cfa_loc): Likewise.
20401 (output_loc_list): Suppress register number adjustment when
20402 calling output_loc_sequence()
20403 (output_die): Likewise.
20404
5378dda2
AS
204052011-02-12 Anatoly Sokolov <aesok@post.ru>
20406
20407 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20408 Remove macros.
20409 * config/xtensa/xtensa.c (xtensa_register_move_cost,
20410 xtensa_memory_move_cost): New functions.
20411 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
20412
f3d533d3
AO
204132011-02-12 Alexandre Oliva <aoliva@redhat.com>
20414
20415 PR lto/47225
20416 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
20417 in the current directory.
20418 * configure: Rebuilt.
20419
9d53403c
IS
204202011-02-12 Iain Sandoe <iains@gcc.gnu.org>
20421
20422 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 20423 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
20424 correct indents of the preceding block.
20425
a350a6c8
IS
204262011-02-12 Iain Sandoe <iains@gcc.gnu.org>
20427
20428 * gcc.c (driver_handle_option): Concatenate the argument to -F with
20429 the switch.
20430
bab79a40
JM
204312011-02-11 Joseph Myers <joseph@codesourcery.com>
20432
20433 * common.opt (nostartfiles): New Driver option.
20434
1bbc6693
XDL
204352011-02-11 Xinliang David Li <davidxl@google.com>
20436
20437 PR tree-optimization/47707
20438 * tree-chrec.c (convert_affine_scev): Keep type precision.
20439
1da7d8c0
EB
204402011-02-11 Eric Botcazou <ebotcazou@adacore.com>
20441
20442 PR tree-optimization/47420
20443 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
20444
204452011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
20446
20447 PR rtl-optimization/47614
20448 * rtl.h (check_for_inc_dec): Declare.
20449 * dse.c (check_for_inc_dec): Externalize...
20450 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
20451 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
20452
4df47bca
JM
204532011-02-11 Joseph Myers <joseph@codesourcery.com>
20454
20455 PR driver/47678
20456 * gcc.c (main): Do not compile inputs if there were errors in
20457 option handling.
20458 * opts-common.c (read_cmdline_option): Check for wrong language
20459 after other error checks.
20460
61502ca8
NF
204612011-02-11 Nathan Froyd <froydnj@codesourcery.com>
20462
20463 * cgraph.c: Fix comment typos.
20464 * cgraph.h: Likewise.
20465 * cgraphunit.c: Likewise.
20466 * ipa-cp.c: Likewise.
20467 * ipa-inline.c: Likewise.
20468 * ipa-prop.c: Likewise.
20469 * ipa-pure-const.c: Likewise.
20470 * ipa-ref.c: Likewise.
20471 * ipa-reference.c: Likewise.
20472
b63f974e
JJ
204732011-02-11 Jakub Jelinek <jakub@redhat.com>
20474
d50c5e0c
JJ
20475 PR debug/47684
20476 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 20477
6dd2a13c
RO
204782011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20479
20480 PR testsuite/47400
20481 * doc/sourcebuild.texi (Require Support): Document
20482 dg-require-ascii-locale.
20483
4a087ccf
MX
204842011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
20485
20486 * doc/lto.texi (Write summary): Fix missing parentheses.
20487
a4403164
DD
204882011-02-10 DJ Delorie <dj@redhat.com>
20489
20490 * config/m32c/m32c.c (m32c_option_override): Disable
20491 -fcombine-stack-adjustments until flag value tracking and compare
20492 optimization can be rewritten.
20493
4fac45bd
PB
204942011-02-10 Peter Bergner <bergner@vnet.ibm.com>
20495
20496 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
20497 PROCESSOR_POWER7.
20498 (PROCESSOR_DEFAULT64): Likewise.
20499
72602cd1
RH
205002011-02-10 Richard Henderson <rth@redhat.com>
20501
20502 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
20503 change from 2011-02-03.
20504 * config/rx/rx.c (flags_from_code): Likewise.
20505 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
20506 is valid, n/pz otherwise.
20507 (rx_select_cc_mode): Return CCmode if Y is not zero.
20508
ea57f573
RG
205092011-02-10 Richard Guenther <rguenther@suse.de>
20510
ea4c3e65 20511 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 20512
92b1d23b
RG
205132011-02-10 Richard Guenther <rguenther@suse.de>
20514
20515 PR tree-optimization/47677
20516 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
20517
525a2d06
JJ
205182011-02-10 Jakub Jelinek <jakub@redhat.com>
20519
20520 PR target/47665
20521 * combine.c (make_compound_operation): Only change shifts into
20522 multiplication for SCALAR_INT_MODE_P.
20523
06c969bd
JZ
205242011-02-10 Jie Zhang <jie@codesourcery.com>
20525
20526 PR testsuite/47622
20527 Revert
20528 2011-02-05 Jie Zhang <jie@codesourcery.com>
20529 PR debug/42631
20530 * web.c (entry_register): Don't clobber the number of the
20531 first uninitialized reference in used[].
20532
282ec48e
RG
205332011-02-09 Richard Guenther <rguenther@suse.de>
20534
20535 PR tree-optimization/47664
20536 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
20537 all edges again.
20538
df98c3e8
DE
205392011-02-09 David Edelsohn <dje.gcc@gmail.com>
20540
d0f21cd6
DE
20541 PR target/46481
20542 PR target/47032
df98c3e8
DE
20543 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
20544 PROCESSOR_POWER7.
20545 (PROCESSOR_DEFAULT64): Same.
20546 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
20547
67b6839f
RO
205482011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20549
20550 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
20551
4fd73214
MJ
205522011-02-09 Martin Jambor <mjambor@suse.cz>
20553
20554 PR middle-end/45505
20555 * tree-sra.c (struct access): New flags grp_scalar_read and
20556 grp_scalar_write. Changed description of assignment read and write
20557 flags.
20558 (dump_access): Dump new flags, reorder all of them.
20559 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
20560 to detect multiple scalar reads.
20561 (analyze_access_subtree): Use the new scalar read write flags instead
20562 of the old flags. Adjusted comments.
20563
91140cd3
DD
205642011-02-08 DJ Delorie <dj@redhat.com>
20565
20566 PR target/47548
20567 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
20568 patterns.
20569
4254bbfe
JM
205702011-02-08 Joseph Myers <joseph@codesourcery.com>
20571
20572 * config/m68k/uclinux.opt: New.
20573 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
20574
f1fda84e
JM
205752011-02-08 Joseph Myers <joseph@codesourcery.com>
20576
20577 * config/cris/elf.opt (sim): New Driver option.
20578
4933ae74
JM
205792011-02-08 Joseph Myers <joseph@codesourcery.com>
20580
20581 * config/xtensa/elf.opt: New.
20582 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
20583
4ad70280
JM
205842011-02-08 Joseph Myers <joseph@codesourcery.com>
20585
20586 * config/vax/elf.opt: New.
20587 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
20588
20893707
JM
205892011-02-08 Joseph Myers <joseph@codesourcery.com>
20590
20591 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
20592
b8e7038e
JM
205932011-02-08 Joseph Myers <joseph@codesourcery.com>
20594
20595 * config/gnu-user.opt: New.
20596 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
20597 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
20598 *-*-uclinux*): Use gnu-user.opt.
20599
e1c5225a
TS
206002011-02-08 Thomas Schwinge <thomas@schwinge.name>
20601
20602 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
20603 * config/i386/gnu.h (CPP_SPEC): Likewise.
20604
5e46b0c6
ILT
206052011-02-08 Ian Lance Taylor <iant@google.com>
20606
20607 * common.opt (fcx-limited-range): Add SetByCombined flag.
20608 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
20609 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
20610 (fassociative-math, freciprocal-math): Likewise.
20611 (funsafe-math-optimizations): Likewise.
20612 * opth-gen.awk: Handle SetByCombined.
20613 * optc-gen.awk: Likewise.
ea4c3e65 20614 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
20615 (set_unsafe_math_optimizations_flags): Likewise.
20616 * doc/options.texi (Option properties): Document SetByCombined.
20617
32243d46
JM
206182011-02-08 Joseph Myers <joseph@codesourcery.com>
20619
20620 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
20621 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
20622 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
20623 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
20624 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
20625
479c1fb3
SP
206262011-02-08 Sebastian Pop <sebastian.pop@amd.com>
20627
20628 PR tree-optimization/46834
20629 PR tree-optimization/46994
20630 PR tree-optimization/46995
20631 * graphite-sese-to-poly.c (used_outside_reduction): New.
20632 (detect_commutative_reduction): Call used_outside_reduction.
20633 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
20634 translate_scalar_reduction_to_array only when at least one
20635 loop-phi/close-phi tuple has been detected.
20636
3865a06f
RG
206372011-02-08 Richard Guenther <rguenther@suse.de>
20638
20639 PR middle-end/47639
20640 * tree-vect-generic.c (expand_vector_operations_1): Update
20641 stmts here ...
20642 (expand_vector_operations): ... not here. Cleanup EH info
20643 and the CFG if required.
20644
62902f3f
RG
206452011-02-08 Richard Guenther <rguenther@suse.de>
20646
20647 PR tree-optimization/47641
20648 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
20649 require type compatibility.
20650
0efb9d64
AK
206512011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20652
20653 * gimple-low.c (lower_function_body): Don't remove the location of
20654 the return statement here.
20655 (lower_gimple_return): Do it here instead but only if the return
20656 statement is actually used twice.
20657
034b8ae4
RG
206582011-02-08 Richard Guenther <rguenther@suse.de>
20659
20660 PR tree-optimization/47632
20661 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
20662 unused up_to_stmt parameter, return whether cfg-cleanup is
20663 necessary, remove EH info properly.
20664 (forward_propagate_into_gimple_cond): Adjust caller.
20665 (forward_propagate_into_cond): Likewise.
20666 (forward_propagate_comparison): Likewise.
20667 (tree_ssa_forward_propagate_single_use_vars): Make
20668 forward_propagate_comparison case similar to the two others.
20669
298362c8
NC
206702011-02-08 Nick Clifton <nickc@redhat.com>
20671
20672 * config/mn10300/mn10300.opt (mliw): New command line option.
20673 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
20674 (liw_bundling): New automaton.
20675 (liw): New attribute.
20676 (liw_op): New attribute.
20677 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
20678 (movsi_internal): Add LIW attributes.
20679 (andsi3): Likewise.
20680 (iorsi3): Likewise.
20681 (xorsi3): Likewise.
20682 (addsi3): Separate register and immediate alternatives.
20683 Add LIW attributes.
20684 (subsi3): Likewise.
20685 (cmpsi): Likewise.
20686 (aslsi3): Likewise.
20687 (lshrsi3): Likewise.
20688 (ashrsi3): Likewise.
20689 (liw): New pattern.
20690 * config/mn10300/mn10300.c (liw_op_names): New
20691 (mn10300_print_operand): Handle 'W' operand descriptor.
20692 (extract_bundle): New function.
20693 (check_liw_constraints): New function.
20694 (liw_candidate): New function.
20695 (mn10300_bundle_liw): New function.
20696 (mn10300_reorg): New function.
20697 (TARGET_MACHINE_DEPENDENT_REORG): Define.
20698 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
20699 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
20700 __LIW__ or __NO_LIW__.
20701 * doc/invoke.texi: Describe the -mliw command line option.
20702
90488014
JDA
207032011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20704
20705 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
20706 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
20707 pthread_mutex_unlock): Remove.
20708 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
20709 * config/pa/t-pa64: Likewise.
20710 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
20711 shared libc if not linking against libpthread.
20712 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20713
689ff841
IS
207142011-02-07 Iain Sandoe <iains@gcc.gnu.org>
20715
20716 PR target/47558
20717 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
20718 on 10.6 and later to ensure that we always use the unwinder from
20719 the system. Only add -no_compact_unwind when tarteting darwin
20720 10.6 or later.
20721
821014aa
SE
207222011-02-07 Steve Ellcey <sje@cup.hp.com>
20723
20724 PR target/46997
20725 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
20726 (vec_interleave_lowv2sf): Ditto.
20727 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
20728 (vec_extract_oddv2sf): Ditto.
20729
41cf94fb
MS
207302011-02-07 Mike Stump <mikestump@comcast.net>
20731
62dea57d 20732 PR target/42333
41cf94fb
MS
20733 Add __ieee_divdc3 entry point.
20734 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
20735 entry point.
20736 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
20737 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
20738 * config/darwin.c (darwin_rename_builtins): Add.
20739 * config/darwin-protos.h (darwin_rename_builtins): Add.
20740
ee09a3dd
MM
207412011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
20742
20743 PR target/47636
20744 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
20745 for the condition.
20746
83296cd0
MS
207472011-02-07 Mike Stump <mikestump@comcast.net>
20748
ea4c3e65 20749 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 20750
0f4e946f
DC
207512011-02-07 Denis Chertykov <chertykov@gmail.com>
20752
20753 PR target/47534
20754 * config/avr/libgcc.S (exit): Move .endfunc
20755
1ec87690
RG
207562011-02-07 Richard Guenther <rguenther@suse.de>
20757
20758 PR tree-optimization/47615
20759 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
20760 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
20761 (run_scc_vn): Initialize it.
20762 (visit_reference_op_load): Use it.
20763 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
20764
b46ae6da
UW
207652011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20766
20767 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
20768 DImode trapping arithmetic libfuncs.
20769
c0aae19c
RG
207702011-02-07 Richard Guenther <rguenther@suse.de>
20771
20772 PR tree-optimization/47621
20773 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
20774 two duplicates ...
20775 (execute_update_addresses_taken): ... here. Make it more
20776 conservative in what we accept.
20777
295d926b
JM
207782011-02-06 Joseph Myers <joseph@codesourcery.com>
20779
20780 * config/sparc/freebsd.h (ASM_SPEC): Define.
20781 * config/sparc/vxworks.h (ASM_SPEC): Define.
20782
bdeb2471
JM
207832011-02-06 Joseph Myers <joseph@codesourcery.com>
20784
20785 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
20786
d5d3781a
SB
207872011-02-06 Steven Bosscher <steven@gcc.gnu.org>
20788
20789 * doc/invoke.texi: Remove reference to compiler internals from
20790 user documentation.
20791
20792 * reg-notes.def: Remove REG_VALUE_PROFILE.
20793 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
20794
c42c09fc
JJ
207952011-02-05 Jakub Jelinek <jakub@redhat.com>
20796
20797 PR middle-end/47610
20798 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 20799 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 20800
beea2755
JZ
208012011-02-05 Jie Zhang <jie@codesourcery.com>
20802
20803 PR debug/42631
20804 * web.c (entry_register): Don't clobber the number of the
20805 first uninitialized reference in used[].
20806
a130584a
SP
208072011-02-04 Sebastian Pop <sebastian.pop@amd.com>
20808
20809 PR tree-optimization/46194
20810 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
20811 (build_classic_dist_vector_1): Do not represent classic distance
20812 vectors when the access functions are variating in different loops.
20813
962101ac
JM
208142011-02-04 Joseph Myers <joseph@codesourcery.com>
20815
20816 * config/mips/iris6.opt: New.
20817 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
20818
55eaaa5b
RH
208192011-02-04 Richard Henderson <rth@redhat.com>
20820 Steve Ellcey <sje@cup.hp.com>
20821
20822 PR target/46997
20823 * config/ia64/predicates.md (mux1_brcst_element): New.
20824 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
20825 * config/ia64/ia64.c (ia64_unpack_assemble): New.
20826 (ia64_unpack_sign): New.
20827 (ia64_expand_unpack): Rewrite using new routines.
20828 (ia64_expand_widen_sum): Ditto.
20829 (ia64_expand_dot_prod_v8qi): Ditto.
20830 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
20831 routines, add endian check.
20832 (pmpy2_even): Rename from pmpy2_r, add endian check.
20833 (pmpy2_odd): Rename from pmpy2_l, add endian check.
20834 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
20835 (vec_widen_smult_hi_v4hi): Ditto.
20836 (vec_widen_umult_lo_v4hi): Ditto.
20837 (vec_widen_umult_hi_v4hi): Ditto.
20838 (mulv2si3): Change endian checks.
20839 (sdot_prodv4hi): Rewrite with new calls.
20840 (udot_prodv4hi): New.
20841 (vec_pack_ssat_v4hi): Add endian check.
20842 (vec_pack_usat_v4hi): Ditto.
20843 (vec_pack_ssat_v2si): Ditto.
20844 (max1_even): Rename from max1_r, add endian check.
20845 (max1_odd): Rename from max1_l, add endian check.
20846 (*mux1_rev): Format change.
20847 (*mux1_mix): Ditto.
20848 (*mux1_shuf): Ditto.
20849 (*mux1_alt): Ditto.
20850 (*mux1_brcst_v8qi): Use new predicate.
20851 (vec_extract_evenv8qi): Remove endian check.
20852 (vec_extract_oddv8qi): Ditto.
20853 (vec_interleave_lowv4hi): Format change.
20854 (vec_interleave_highv4hi): Ditto.
20855 (mix2_even): Rename from mix2_r, add endian check.
20856 (mix2_odd): Rename from mux2_l, add endian check.
20857 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
20858 (vec_extract_evenodd_helper): Format change.
20859 (vec_extract_evenv4hi): Remove endian check.
20860 (vec_extract_oddv4hi): Remove endian check.
20861 (vec_interleave_lowv2si): Format change.
20862 (vec_interleave_highv2si): Format change.
20863 (vec_initv2si): Remove endian check.
20864 (vecinit_v2si): Add endian check.
20865 (reduc_splus_v2sf): Add endian check.
20866 (reduc_smax_v2sf): Ditto.
20867 (reduc_smin_v2sf): Ditto.
20868 (vec_initv2sf): Remove endian check.
20869 (fpack): Add endian check.
20870 (fswap): Add endian check.
20871 (vec_interleave_highv2sf): Add endian check.
20872 (vec_interleave_lowv2sf): Add endian check.
20873 (fmix_lr): Add endian check.
20874 (vec_setv2sf): Format change.
20875 (*vec_extractv2sf_0_be): Use shift to extract operand.
20876 (*vec_extractv2sf_1_be): New.
20877 (vec_pack_trunc_v4hi): Add endian check.
20878 (vec_pack_trunc_v2si): Format change.
20879
dcde5957
JJ
208802011-02-04 Jakub Jelinek <jakub@redhat.com>
20881
20882 PR inline-asm/23200
20883 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 20884 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
20885 (stmt_is_replaceable_p): New function.
20886 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
20887 callers.
20888 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
20889 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
20890 SSA_NAME_DEF_STMT.
20891 * tree-flow.h (stmt_is_replaceable_p): New prototype.
20892
a64a8e5a
JM
208932011-02-04 Joseph Myers <joseph@codesourcery.com>
20894
20895 * config/rs6000/xilinx.opt: New.
20896 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
20897
4da2ed2f
JM
208982011-02-04 Joseph Myers <joseph@codesourcery.com>
20899
20900 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
20901
a6e508f9
AS
209022011-02-03 Anatoly Sokolov <aesok@post.ru>
20903
20904 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
20905 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
20906 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
20907 secondary_reload_info, xtensa_secondary_reload): Remove.
20908 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
20909 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
20910 (xtensa_preferred_reload_class): Make static. Change return and
20911 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
20912 Use CONST_DOUBLE_P predicate.
20913 (xtensa_preferred_output_reload_class): New function.
20914 (xtensa_secondary_reload): Make static.
20915
82dc0de3
JM
209162011-02-03 Joseph Myers <joseph@codesourcery.com>
20917
20918 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
20919 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
20920 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
20921
7fece979
JJ
209222011-02-03 Jakub Jelinek <jakub@redhat.com>
20923
20924 PR middle-end/31490
20925 * output.h (SECTION_RELRO): Define.
20926 (SECTION_MACH_DEP): Adjust.
20927 (get_variable_section): New prototype.
20928 * varpool.c (varpool_finalize_named_section_flags): New function.
20929 (varpool_assemble_pending_decls): Call it.
20930 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
20931 * cgraphunit.c (cgraph_output_in_order): Call
20932 varpool_finalize_named_section_flags.
20933 * varasm.c (get_section): Allow section flags conflicts between
20934 relro and read-only sections if the section hasn't been declared yet.
20935 Set SECTION_OVERRIDE after diagnosing section type conflict.
20936 (get_variable_section): No longer static.
20937 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
20938 readonly sections that need relocations.
20939 (decl_readonly_section_1): New function.
20940 (decl_readonly_section): Use it.
20941
20942 Revert:
509d65dd 20943 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
20944 Steve Ellcey <sje@cup.hp.com>
20945
20946 PR middle-end/31490
20947 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
20948 if section attribute used.
20949
d18d5478
JJ
209502011-02-03 Jakub Jelinek <jakub@redhat.com>
20951
20952 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
20953 * config/darwin.c (SECTION_NO_ANCHOR): Define.
20954 (darwin_init_sections): Remove assertion.
20955
6479ed4b
NC
209562011-02-03 Nick Clifton <nickc@redhat.com>
20957
20958 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
20959 lt and ge.
38be4072 20960 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
20961 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
20962 instead of "n" and "pz".
20963 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
20964 CC_FLAG_S.
20965
89843f5d
JJ
209662011-02-03 Jakub Jelinek <jakub@redhat.com>
20967
65450d64
JJ
20968 PR target/47312
20969 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
20970 fma, expand FMA_EXPR as fma{,f,l} call.
20971
7d58701c
JJ
20972 PR lto/47274
20973 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
20974 copy them into a unsigned char variable and pass address of it to
20975 lto_output_data_stream.
20976
89843f5d
JJ
20977 PR target/47564
20978 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
20979 around backend_init_target and lang_dependent_init_target calls.
20980 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
20981 (verify_cgraph_node): Don't call set_cfun here. Use
20982 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
20983 Set error_found for incorrectly represented calls to thunks.
20984
4deef538
AO
209852011-02-03 Alexandre Oliva <aoliva@redhat.com>
20986
20987 PR debug/43092
20988 PR rtl-optimization/43494
20989 * rtl.h (for_each_inc_dec_fn): New type.
20990 (for_each_inc_dec): Declare.
20991 * rtlanal.c (struct for_each_inc_dec_ops): New type.
20992 (for_each_inc_dec_find_inc_dec): New fn.
20993 (for_each_inc_dec_find_mem): New fn.
20994 (for_each_inc_dec): New fn.
20995 * dse.c (struct insn_size): Remove.
20996 (replace_inc_dec, replace_inc_dec_mem): Remove.
20997 (emit_inc_dec_insn_before): New fn.
20998 (check_for_inc_dec): Use it, along with for_each_inc_dec.
20999 (canon_address): Pass mem modes to cselib_lookup.
21000 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
21001 (cselib_lookup_from_insn): Likewise.
21002 (cselib_subst_to_values): Likewise.
21003 * cselib.c (find_slot_memmode): New var.
21004 (cselib_find_slot): New fn. Use it instead of
21005 htab_find_slot_with_hash everywhere.
21006 (entry_and_rtx_equal_p): Use find_slot_memmode.
21007 (autoinc_split): New fn.
21008 (rtx_equal_for_cselib_p): Rename and implement in terms of...
21009 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
21010 Deal with autoinc. Special-case recursion into MEMs.
21011 (cselib_hash_rtx): Likewise.
21012 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
21013 address and MEM modes.
21014 (cselib_subst_to_values): Add memmode, pass it on.
21015 Deal with autoinc.
21016 (cselib_lookup): Add memmode argument, pass it on.
21017 (cselib_lookup_from_insn): Add memmode.
21018 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
21019 (struct cselib_record_autoinc_data): New.
21020 (cselib_record_autoinc_cb): New fn.
21021 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
21022 mode to cselib_lookup. Reset autoinced REGs here instead of...
21023 (cselib_process_insn): ... here.
21024 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
21025 to cselib_lookup.
21026 (add_uses): Likewise, also to cselib_subst_to_values.
21027 (add_stores): Likewise.
21028 * sched-deps.c (add_insn_mem_dependence): Pass mode to
21029 cselib_subst_to_values.
21030 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
21031 * gcse.c (do_local_cprop): Adjusted.
21032 * postreload.c (reload_cse_simplify_set): Adjusted.
21033 (reload_cse_simplify_operands): Adjusted.
21034 * sel-sched-dump (debug_mem_addr_value): Pass mode.
21035
1551d44a
AO
210362011-02-03 Alexandre Oliva <aoliva@redhat.com>
21037
21038 PR tree-optimization/45122
21039 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
21040 unsafe assumptions when there's more than one loop exit.
21041
c9485473
MM
210422011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
21043
21044 PR target/47272
21045 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
21046 Document using vector double with the load/store builtins, and
21047 that the load/store builtins always use Altivec instructions.
21048
21049 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
21050 to use altivec memory instructions, even on VSX.
21051 (vector_altivec_store_<mode>): Ditto.
21052
21053 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
21054 function.
21055
21056 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21057 V2DF, V2DI support to load/store overloaded builtins.
21058
21059 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
21060 altivec load/store builtins for V2DF/V2DI types.
21061
21062 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
21063 set avoid indexed addresses on power6 if -maltivec.
21064 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
21065 vector_altivec_load/vector_altivec_store builtins.
21066 (altivec_expand_st_builtin): Ditto.
21067 (altivec_expand_builtin): Add VSX memory builtins.
21068 (rs6000_init_builtins): Add V2DI types to internal types.
21069 (altivec_init_builtins): Add support for V2DF/V2DI altivec
21070 load/store builtins.
21071 (rs6000_address_for_altivec): Insure memory address is appropriate
21072 for Altivec.
21073
21074 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
21075 vec_vsx_ld and vec_vsx_st.
21076 (vsx_store_<mode>): Ditto.
21077
21078 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
21079 variables to hold long long types for VSX vector memory builtins.
21080 (RS6000_BTI_unsigned_long_long): Ditto.
21081 (long_long_integer_type_internal_node): Ditti.
21082 (long_long_unsigned_type_internal_node): Ditti.
21083
21084 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
21085 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
21086 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
21087
21088 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
21089 short cuts.
21090 (vec_vsx_st): Ditto.
21091
b24d1acf
JM
210922011-02-02 Joseph Myers <joseph@codesourcery.com>
21093
21094 * config/pa/pa-hpux10.opt: New.
21095 * config/hpux11.opt (pthread): New Driver option.
21096 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
21097 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
21098
aa18dd0f
JM
210992011-02-02 Joseph Myers <joseph@codesourcery.com>
21100
21101 * config/ia64/vms.opt: New.
21102 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
21103
28fc3eee
MM
211042011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
21105
21106 PR target/47580
21107 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
21108 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
21109 generator functions.
21110 (vsx_floatuns<VSi><mode>2): Ditto.
21111 (vsx_fix_trunc<mode><VSi>2): Ditto.
21112 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
21113
b5838b1f
JM
211142011-02-02 Joseph Myers <joseph@codesourcery.com>
21115
21116 * config/i386/djgpp.opt (posix): New Driver option.
21117
0db8fa89
GP
211182011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
21119
21120 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
21121 Move to the unsupported targets list.
21122
9cd4f22a
PB
211232011-02-02 Peter Bergner <bergner@vnet.ibm.com>
21124
21125 PR rtl-optimization/47525
21126 * df-scan.c: Update copyright years.
21127 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
21128 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
21129
9ed8059c
RO
211302011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21131
21132 * config/i386/sysv4.h (TARGET_VERSION): Remove.
21133 (SUBTARGET_RETURN_IN_MEMORY): Remove.
21134 (ASM_OUTPUT_ASCII): Remove.
21135 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
21136
2a737389
JL
211372011-02-02 Jeff Law <law@redhat.com>
21138
21139 PR middle-end/47543
21140 * reload.c (find_reloads_address): Handle reg+d address where both
21141 components are invalid by reloading the entire address.
21142
9dac82c4
SP
211432011-02-02 Sebastian Pop <sebastian.pop@amd.com>
21144 Richard Guenther <rguenther@suse.de>
21145
21146 PR tree-optimization/40979
21147 PR bootstrap/47044
21148 * passes.c (init_optimization_passes): After LIM call copy_prop
21149 and DCE to clean up.
21150 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
21151
14dd9aab
SP
211522011-02-02 Sebastian Pop <sebastian.pop@amd.com>
21153
21154 PR tree-optimization/47576
21155 PR tree-optimization/47555
21156 * doc/invoke.texi (scev-max-expr-complexity): Documented.
21157 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21158 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
21159 * tree-scalar-evolution.c (follow_ssa_edge): Use
21160 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
21161
5cbf5c20
RG
211622011-02-02 Richard Guenther <rguenther@suse.de>
21163
21164 PR tree-optimization/47566
21165 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
21166
83d70792
AO
211672011-02-02 Alexandre Oliva <aoliva@redhat.com>
21168
e829c321
AO
21169 PR debug/47106
21170 PR debug/47402
21171 * tree-inline.c (declare_return_variable): Remove unused caller
21172 variable.
21173
83d70792
AO
21174 PR debug/47106
21175 PR debug/47402
21176 * tree-flow-inline.h (clear_is_used, is_used_p): New.
21177 * cfgexpand.c (account_used_vars_for_block): Use them.
21178 * tree-nrv.c (tree_nrv): Likewise.
21179 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
21180 (dump_scope_block): Likewise.
21181 (remove_unused_locals): Likewise.
21182
aaa2ac93
AO
21183 PR debug/47106
21184 PR debug/47402
21185 * tree-inline.c (declare_return_variable): Add result decl to
21186 local decls only once.
21187 * gimple-low.c (record_vars_into): Mark newly-created variables
21188 as referenced.
21189
a59d15cf
AO
211902011-02-02 Alexandre Oliva <aoliva@redhat.com>
21191
21192 PR debug/47498
21193 PR debug/47501
21194 PR debug/45136
21195 PR debug/45130
21196 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21197 debug insns.
21198 (no_real_insns_p, schedule_block, set_priorities): Drop special
21199 treatment of boundary debug insns.
38be4072 21200 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
21201 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
21202 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21203 (BOUNDARY_DEBUG_INSN_P): Likewise.
21204 (SCHEDULE_DEBUG_INSN_P): Likewise.
21205 * sched-rgn.c (init_ready_list): Drop special treatment of
21206 boundary debug insns.
21207 * final.c (rest_of_clean_state): Clear notes' BB.
21208
6fc2f091
JM
212092011-02-01 Joseph Myers <joseph@codesourcery.com>
21210
21211 * config/openbsd.opt (assert=): New Driver option.
21212
fc523387
JM
212132011-02-01 Joseph Myers <joseph@codesourcery.com>
21214
21215 * config/i386/nto.opt: New.
21216 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
21217
6d9821e5
JM
212182011-02-01 Joseph Myers <joseph@codesourcery.com>
21219
21220 * config/i386/netware.opt: New.
21221 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
21222
cef932d4
JM
212232011-02-01 Joseph Myers <joseph@codesourcery.com>
21224
21225 * config/interix.opt (posix): New Driver option.
21226
22843acd
DD
212272011-02-01 DJ Delorie <dj@redhat.com>
21228
56490b74
DD
21229 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
21230
22843acd
DD
21231 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
21232 class for A0/A1.
21233
199c8f2f
SP
212342011-02-01 Sebastian Pop <sebastian.pop@amd.com>
21235
21236 PR tree-optimization/47561
21237 * toplev.c (process_options): Print the Graphite flags. Add
21238 flag_loop_flatten to the list of options requiring Graphite.
21239
926bcf22
JM
212402011-02-01 Joseph Myers <joseph@codesourcery.com>
21241
21242 * config/i386/cygming.opt (posix): New Driver option.
21243
59793c51
JM
212442011-02-01 Joseph Myers <joseph@codesourcery.com>
21245
21246 * config/arm/vxworks.opt: New.
21247 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
21248
183c38a4
JM
212492011-02-01 Joseph Myers <joseph@codesourcery.com>
21250
21251 * config/alpha/elf.opt: New.
21252 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
21253 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
21254
9939e416
RG
212552011-02-01 Richard Guenther <rguenther@suse.de>
21256
21257 PR tree-optimization/47559
21258 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
21259 store-motion on references that can throw.
21260
4a3c9687
BS
212612011-02-01 Bernd Schmidt <bernds@codesourcery.com>
21262
21263 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
21264 * tree-pass.h (TDF_CSELIB): New macro.
21265 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
21266 cselib_lookup): Check for it rather than for TDF_DETAILS.
21267
dd3b31fb
L
212682011-02-01 H.J. Lu <hongjiu.lu@intel.com>
21269
21270 PR driver/47547
21271 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
21272 is HOST_BIT_BUCKET.
21273
21274 * opts.c (finish_options): Don't add x_aux_base_name if it is
21275 HOST_BIT_BUCKET.
21276
34c1de79
RG
212772011-02-01 Richard Guenther <rguenther@suse.de>
21278
21279 PR tree-optimization/47555
21280 Revert
21281 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
21282
21283 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21284
dd2804d2
SB
212852011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
21286
21287 PR gcc/46692
21288 * config/lm32/t-lm32: Add multilib for all CPU options.
21289
3fd3b156
RG
212902011-02-01 Richard Guenther <rguenther@suse.de>
21291
21292 PR tree-optimization/47541
21293 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
21294 sure to have a field at offset zero.
21295
f16072b6
JM
212962011-01-31 Joseph Myers <joseph@codesourcery.com>
21297
21298 * config/arc/arc.opt (EB, EL): New Driver options.
21299
6456cf2e
JM
213002011-01-31 Joseph Myers <joseph@codesourcery.com>
21301
21302 * config/alpha/osf5.opt: New.
21303 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
21304
cdde6ab4
JM
213052011-01-31 Joseph Myers <joseph@codesourcery.com>
21306
21307 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
21308
7633415c
SP
213092011-01-31 Sebastian Pop <sebastian.pop@amd.com>
21310
21311 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
21312 -floop-interchange.
21313 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
21314 is an alias of -floop-interchange and that it requires the
21315 Graphite infrastructure.
21316 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
21317 flag_loop_interchange based on the value of flag_tree_loop_linear.
21318
0425d6f5
JJ
213192011-01-31 Jakub Jelinek <jakub@redhat.com>
21320 Richard Guenther <rguenther@suse.de>
21321
21322 PR tree-optimization/47538
21323 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
21324 type instead of r1type, except for comparisons. For right
21325 shifts and comparisons punt if there are mismatches in
21326 sizetype vs. non-sizetype types.
21327
500b16c3
RO
213282011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21329
21330 * doc/sourcebuild.texi (Effective-Target Keywords): Document
21331 avx_runtime.
21332
e279edb0
RO
213332011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21334
21335 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
21336 version number.
21337 * configure: Regenerate.
21338
c6092243
RO
213392011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21340
21341 * configure.ac (gcc_cv_ld_static_option): Define.
21342 (gcc_cv_ld_dynamic_option): Define.
21343 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
21344 instead.
21345 (HAVE_LD_STATIC_DYNAMIC): Update message.
21346 (LD_STATIC_OPTION): Define.
21347 (LD_DYNAMIC_OPTION): Define.
21348 * configure: Regenerate.
21349 * config.in: Regenerate.
21350 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
21351 HAVE_LD_STATIC_DYNAMIC]: Use them.
21352
d7862be3
NC
213532011-01-31 Nick Clifton <nickc@redhat.com>
21354
21355 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
21356 registers inside interrupt handlers if the handler is not a leaf
21357 function.
21358
ba4ec0e0
NC
213592011-01-31 Nick Clifton <nickc@redhat.com>
21360
21361 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
21362 reg_renumber returning an INVALID_REGNUM.
21363
29a63921
AO
213642011-01-31 Alexandre Oliva <aoliva@redhat.com>
21365
21366 PR libgcj/44341
21367 * doc/install.texi: Document host options discarded when cross
21368 configuring target libraries.
21369
ef591d3f
AO
213702011-01-31 Alexandre Oliva <aoliva@redhat.com>
21371
21372 Reverted:
21373 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
21374 PR debug/45136
21375 PR debug/45130
21376 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21377 debug insns.
21378 (no_real_insns_p, schedule_block, set_priorities): Drop special
21379 treatment of boundary debug insns.
38be4072 21380 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
21381 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21382 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21383 (BOUNDARY_DEBUG_INSN_P): Likewise.
21384 (SCHEDULE_DEBUG_INSN_P): Likewise.
21385 * sched-rgn.c (init_ready_list): Drop special treatment of
21386 boundary debug insns.
21387 * final.c (rest_of_clean-state): Clear notes' BB.
21388
61052244
AM
213892011-01-31 Alan Modra <amodra@gmail.com>
21390
21391 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
21392 toc relative expressions as we do in print_operand_address.
21393
c4c8962b
KH
213942011-01-30 Kazu Hirata <kazu@codesourcery.com>
21395
21396 * doc/extend.texi: Follow spelling conventions.
21397 * doc/invoke.texi: Fix a typo.
21398
e543b94c
JM
213992011-01-30 Joseph Myers <joseph@codesourcery.com>
21400
21401 * config/hpux11.opt: New.
21402 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
21403 ia64*-*-hpux*): Use hpux11.opt.
21404
509d65dd 214052011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
21406
21407 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
21408 to tmake_file.
21409
7be03a0e
GP
214102011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21411
21412 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
21413 support sites.
21414
419d1d37
GP
214152011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21416
b596ed64
GP
21417 * doc/install.texi (Binaries): Remove outdated reference for
21418 Motorola 68HC11/68HC12 downloads.
21419
214202011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 21421
419d1d37
GP
21422 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
21423 Drepper's paper.
21424
4406d0e9
JW
214252011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
21426
21427 PR bootstrap/47147
21428 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
21429 used by NetBSD.
21430
38be4072 214312011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
21432
21433 * value-prof.c (check_counter): Corrected error message.
21434
0cd98787
JZ
214352011-01-29 Jie Zhang <jie@codesourcery.com>
21436
21437 * config/arm/arm.c (arm_legitimize_reload_address): New.
21438 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
21439 arm_legitimize_reload_address.
38be4072 21440 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 21441
9b798ac5
ILT
214422011-01-28 Ian Lance Taylor <iant@google.com>
21443
21444 * godump.c (go_define): Ignore macros whose definitions include
21445 two adjacent operands.
21446
591e29d9
JJ
214472011-01-28 Jakub Jelinek <jakub@redhat.com>
21448
21449 PR target/42894
21450 * varasm.c (force_const_mem): Store copy of x in desc->constant
21451 instead of x itself.
21452 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
21453 itself into REG_EQUAL note.
21454
62dcc44a
JM
214552011-01-28 Joseph Myers <joseph@codesourcery.com>
21456
21457 * config/freebsd.opt (posix, rdynamic): New Driver options.
21458
c9f58b9a
RO
214592011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21460
21461 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
21462 -Bstatic/-Bdynamic.
21463 * configure: Regenerate.
21464
5f02b9db
JM
214652011-01-27 Joseph Myers <joseph@codesourcery.com>
21466
21467 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
21468 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
21469
5df97412
AS
214702011-01-27 Anatoly Sokolov <aesok@post.ru>
21471
21472 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
21473 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
21474 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
21475 (s390_preferred_reload_class): Make static. Change return and
21476 'rclass' argument type to reg_class_t.
21477
779d4b91
JH
214782011-01-27 Jan Hubicka <jh@suse.cz>
21479
21480 PR middle-end/46949
21481 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
21482 (process_function_and_variable_attributes): Check defined weakrefs.
21483
e80b21ed
MJ
214842011-01-27 Martin Jambor <mjambor@suse.cz>
21485
21486 PR tree-optimization/47228
21487 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
21488 build_ref_for_offset.
21489
6dcc4f31
UW
214902011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21491
21492 * config/spu/spu-elf.h (ASM_SPEC): Remove.
21493
509d65dd 214942011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
21495
21496 PR rtl-optimization/46856
21497 * postreload.c (reload_combine_recognize_const_pattern): Do not
21498 separate cc0 setter and user on cc0 targets.
21499
04af8788
NP
215002011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
21501
21502 PR c/43082
21503 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
21504 passed a VOID_TYPE expression, immediately emit an error and
21505 return error_mark_node.
21506
f7a60085
JL
215072011-01-26 Jeff Law <law@redhat.com>
21508
21509 PR rtl-optimization/47464
21510 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
21511 rather than may_trap_p as needed.
21512
5c2917ec
DD
215132011-01-26 DJ Delorie <dj@redhat.com>
21514
21515 PR rtl-optimization/46878
21516 * combine.c (insn_a_feeds_b): Check for the implicit cc0
21517 setter/user dependency as well.
21518
bef16e87
EB
215192011-01-26 Eric Botcazou <ebotcazou@adacore.com>
21520
21521 PR rtl-optimization/44469
21522 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
21523 after removing trivially dead basic blocks.
21524
c75d884b
JM
215252011-01-26 Joseph Myers <joseph@codesourcery.com>
21526
21527 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
21528 * config/frv/frv.h (LINK_SPEC): Likewise.
21529 * config/i386/netware.h (LINK_SPEC): Likewise.
21530 * config/m68k/linux.h (ASM_SPEC): Likewise.
21531 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
21532 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21533 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21534 * config/sparc/linux.h (ASM_SPEC): Likewise.
21535 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21536 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21537
d3153553
JM
215382011-01-26 Joseph Myers <joseph@codesourcery.com>
21539
21540 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
21541 * config/frv/frv.h (ASM_SPEC): Likewise.
21542 * config/m68k/linux.h (ASM_SPEC): Likewise.
21543 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21544 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
21545 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21546 * config/sparc/linux.h (ASM_SPEC): Likewise.
21547 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21548 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21549
b89b1e9d
JM
215502011-01-26 Joseph Myers <joseph@codesourcery.com>
21551
21552 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
21553 * config/frv/frv.h (LINK_SPEC): Likewise.
21554 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21555
12eb1a9c
JM
215562011-01-26 Joseph Myers <joseph@codesourcery.com>
21557
21558 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
21559 * config/frv/frv.h (ASM_SPEC): Likewise.
21560 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
21561 * config/m68k/linux.h (ASM_SPEC): Likewise.
21562 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21563 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
21564 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21565 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
21566 * config/sparc/linux.h (ASM_SPEC): Likewise.
21567 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21568 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21569 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
21570
e435f098
SE
215712011-01-26 Steve Ellcey <sje@cup.hp.com>
21572
21573 PR target/46997
21574 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
21575 (*mux2): Ditto.
21576 (vec_extract_evenodd_help): Ditto.
21577 (vec_extract_evenv4hi): Ditto.
21578 (vec_extract_oddv4hi): Ditto.
21579 (vec_interleave_lowv2si): Ditto.
21580 (vec_interleave_highv2si): Ditto.
21581 (vec_extract_evenv2si): Ditto.
21582 (vec_extract_oddv2si: Ditto.
21583 (vec_pack_trunc_v2si): Ditto.
21584
34f0eee0
JH
215852011-01-22 Jan Hubicka <jh@suse.cz>
21586
21587 PR target/47237
21588 * cgraph.h (cgraph_local_info): New field can_change_signature.
21589 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
21590 signature can change.
21591 (ipcp_estimate_growth): Call sequence simplify only if calle signature
21592 can change.
21593 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
21594 (cgraph_function_versioning): We can not change signature of functions
21595 that don't allow that.
21596 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
21597 (lto_input_node): Likewise.
38be4072
UB
21598 * ipa-inline.c (compute_inline_parameters): Compute
21599 local.can_change_signature.
34f0eee0 21600 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
21601 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
21602 functions that can not change signature.
34f0eee0 21603 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
21604 init_cumulative_args): Do not use local calling conventions
21605 for functions that can not change signature.
34f0eee0 21606
980ca891
JH
216072011-01-22 Jan Hubicka <jh@suse.cz>
21608
21609 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
21610
768e3c60
RG
216112011-01-26 Richard Guenther <rguenther@suse.de>
21612
21613 PR tree-optimization/47190
61052244
AM
21614 * cgraphunit.c (process_common_attributes): New function.
21615 (process_function_and_variable_attributes): Use it.
768e3c60 21616
21d6a1c7
RG
216172011-01-26 Richard Guenther <rguenther@suse.de>
21618
21619 PR lto/47423
21620 * cgraphbuild.c (record_eh_tables): Record reference to personality
21621 function.
21622
48bb58b1
AO
216232011-01-26 Alexandre Oliva <aoliva@redhat.com>
21624
21625 PR debug/45454
21626 * sel-sched.c (moveup_expr): Don't let debug insns prevent
21627 non-debug insns from moving up.
21628
58c741a6
DK
216292011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
21630
21631 PR target/40125
21632 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
21633 t-dlldir{,-x} fragment for build and add it to tmake_file.
21634 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
21635 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
21636 * config/i386/t-dlldir: New file.
21637 (SHLIB_DLLDIR): Define.
21638 * config/i386/t-dlldir-x: New file.
21639 (SHLIB_DLLDIR): Define.
21640 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
21641 (SHLIB_INSTALL): Use it.
21642
bff99262
CLT
216432011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
21644
21645 PR target/47246
21646 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
21647 lower bound of the allowed Thumb-2 coprocessor load/store
21648 index range to -256. Add explaining comment.
21649
82c03907
ILT
216502011-01-25 Ian Lance Taylor <iant@google.com>
21651
21652 * godump.c (go_define): Improve lexing of macro expansion to only
21653 accept expressions which match Go spec.
21654
47ea1edf
DK
216552011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
21656
d4dba752 21657 PR c++/43601
47ea1edf
DK
21658 * tree.c (handle_dll_attribute): Handle it.
21659 * doc/extend.texi (@item dllexport): Mention it.
21660 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
21661
744f0946
ILT
216622011-01-25 Ian Lance Taylor <iant@google.com>
21663
21664 PR tree-optimization/26854
21665 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
21666 (decl_jump_unsafe): Move higher in file, with no other change.
21667 (bind): Set has_jump_unsafe_decl if appropriate.
21668 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
21669 (check_earlier_gotos): Likewise.
21670 (c_check_switch_jump_warnings): Likewise.
21671
5734f2b3
JW
216722011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
21673
21674 * doc/invoke.texi (Warning Options): Add missing hyphen.
21675 (-fprofile-dir): Minor grammatical fixes.
21676 (-fbranch-probabilities): Likewise.
21677
9bdbdcef
AO
216782011-01-25 Alexandre Oliva <aoliva@redhat.com>
21679
21680 PR debug/45136
21681 PR debug/45130
21682 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21683 debug insns.
21684 (no_real_insns_p, schedule_block, set_priorities): Drop special
21685 treatment of boundary debug insns.
38be4072 21686 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
21687 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21688 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21689 (BOUNDARY_DEBUG_INSN_P): Likewise.
21690 (SCHEDULE_DEBUG_INSN_P): Likewise.
21691 * sched-rgn.c (init_ready_list): Drop special treatment of
21692 boundary debug insns.
21693 * final.c (rest_of_clean-state): Clear notes' BB.
21694
b305e3da
SP
216952011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21696
21697 * Makefile.in (LAMBDA_H): Removed.
21698 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
21699 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
21700 lambda-trans.o, and tree-loop-linear.o.
21701 (lto-symtab.o): Remove dependence on LAMBDA_H.
21702 (tree-loop-linear.o): Remove rule.
21703 (lambda-mat.o): Same.
21704 (lambda-trans.o): Same.
21705 (lambda-code.o): Same.
21706 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
21707 (tree-vect-slp.o): Same.
21708 * hwint.h (gcd): Moved here.
21709 (least_common_multiple): Same.
21710 * lambda-code.c: Removed.
21711 * lambda-mat.c: Removed.
21712 * lambda-trans.c: Removed.
21713 * lambda.h: Removed.
21714 * tree-loop-linear.c: Removed.
21715 * lto-symtab.c: Do not include lambda.h.
21716 * omega.c (gcd): Removed.
21717 * passes.c (init_optimization_passes): Remove pass_linear_transform.
21718 * tree-data-ref.c (print_lambda_vector): Moved here.
21719 (lambda_vector_copy): Same.
21720 (lambda_matrix_copy): Same.
21721 (lambda_matrix_id): Same.
21722 (lambda_vector_first_nz): Same.
21723 (lambda_matrix_row_add): Same.
21724 (lambda_matrix_row_exchange): Same.
21725 (lambda_vector_mult_const): Same.
21726 (lambda_vector_negate): Same.
21727 (lambda_matrix_row_negate): Same.
21728 (lambda_vector_equal): Same.
21729 (lambda_matrix_right_hermite): Same.
21730 * tree-data-ref.h: Do not include lambda.h.
21731 (lambda_vector): Moved here.
21732 (lambda_matrix): Same.
21733 (dependence_level): Same.
21734 (lambda_transform_legal_p): Removed declaration.
21735 (lambda_collect_parameters): Same.
21736 (lambda_compute_access_matrices): Same.
21737 (lambda_vector_gcd): Same.
21738 (lambda_vector_new): Same.
21739 (lambda_vector_clear): Same.
21740 (lambda_vector_lexico_pos): Same.
21741 (lambda_vector_zerop): Same.
21742 (lambda_matrix_new): Same.
21743 * tree-flow.h (least_common_multiple): Removed declaration.
21744 * tree-parloops.c (lambda_trans_matrix): Moved here.
21745 (LTM_MATRIX): Same.
21746 (LTM_ROWSIZE): Same.
21747 (LTM_COLSIZE): Same.
21748 (LTM_DENOMINATOR): Same.
21749 (lambda_trans_matrix_new): Same.
21750 (lambda_matrix_vector_mult): Same.
21751 (lambda_transform_legal_p): Same.
21752 * tree-pass.h (pass_linear_transform): Removed declaration.
21753 * tree-ssa-loop.c (tree_linear_transform): Removed.
21754 (gate_tree_linear_transform): Removed.
21755 (pass_linear_transform): Removed.
21756 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
21757 flag_loop_interchange.
21758
6bdfdb96
JJ
217592011-01-25 Jakub Jelinek <jakub@redhat.com>
21760
21761 PR tree-optimization/47265
21762 PR tree-optimization/47443
21763 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
21764 if name still has some uses.
21765
e4cba915
MJ
217662011-01-25 Martin Jambor <mjambor@suse.cz>
21767
21768 PR tree-optimization/47382
21769 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
21770 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
21771
509d65dd 217722011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
21773
21774 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
21775 sjlj_except_unwind_info.
21776
194313e2
RG
217772011-01-25 Richard Guenther <rguenther@suse.de>
21778
21779 PR tree-optimization/47426
21780 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
21781 visible functions results escape.
21782
147a0bcf
JJ
217832011-01-25 Jakub Jelinek <jakub@redhat.com>
21784
21785 PR target/45701
21786 * config/arm/arm.c (any_sibcall_uses_r3): New function.
21787 (arm_get_frame_offsets): Use it.
21788
db963b52
SP
217892011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21790 Jakub Jelinek <jakub@redhat.com>
21791
21792 PR tree-optimization/47271
21793 * tree-if-conv.c (bb_postdominates_preds): New.
21794 (if_convertible_bb_p): Call bb_postdominates_preds.
21795 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
21796 (predicate_scalar_phi): Call bb_postdominates_preds.
21797
bcddd3b9
NC
217982011-01-25 Nick Clifton <nickc@redhat.com>
21799
21800 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
21801 * config/rx/rx.c (rx_function_value): Likewise.
21802 (rx_promote_function_mode): Likewise.
21803 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
21804 in order to make it legitimate.
38be4072
UB
21805 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
21806 make sure that the first operand is the same as the result register.
bcddd3b9
NC
21807 (addsi3_unspec): Delete.
21808 (subdi3): Do not accept immediate operands.
21809 (subdi3_internal): Likewise.
21810
7e6cb022
JL
218112011-01-25 Jeff Law <law@redhat.com>
21812
21813 PR rtl-optimization/37273
21814 * ira-costs.c (scan_one_insn): Detect constants living in memory and
21815 handle them like argument loads from stack slots. Do not double
21816 count memory for memory constants and argument loads from stack slots.
21817
9ffa621e
JJ
218182011-01-25 Jakub Jelinek <jakub@redhat.com>
21819
21820 PR tree-optimization/47427
21821 PR tree-optimization/47428
21822 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
21823 coalesce if the new root var would be TREE_READONLY.
21824
5bd6e652
RG
218252011-01-25 Richard Guenther <rguenther@suse.de>
21826
21827 PR middle-end/47414
21828 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
21829 correct type for TBAA.
21830
7c48ea69
SP
218312011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21832
21833 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
21834 (close_phi_written_to_memory): Call for_each_index with
21835 dr_indices_valid_in_loop.
21836
38013f25
SP
218372011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21838
21839 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
21840 when it is initialized.
21841
5c640e29
SP
218422011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21843
21844 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
21845 call to graphite_find_data_references_in_stmt.
21846 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
21847 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
21848 call to graphite_find_data_references_in_stmt.
21849 (analyze_drs_in_stmts): Same.
21850 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
21851 in which the scalar analysis of indices is performed.
21852 (create_data_ref): Same. Update call to dr_analyze_indices.
21853 (find_data_references_in_stmt): Update call to create_data_ref.
21854 (graphite_find_data_references_in_stmt): Same.
21855 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
21856 declaration.
21857 (create_data_ref): Same.
21858 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
21859 call to create_data_ref.
21860
ac53c069
SP
218612011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21862
21863 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 21864 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 21865
3d17df15
SP
218662011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21867
21868 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
21869 VAR_DECL, PARM_DECL, and RESULT_DECL.
21870
c513da01
SP
218712011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21872
21873 * graphite-dependences.c (reduction_dr_1): Allow several reductions
21874 in a reduction PBB.
21875 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
21876 that have already been marked as PBB_IS_REDUCTION.
21877
3a292d59
SP
218782011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21879
21880 * graphite-scop-detection.c (same_close_phi_node): New.
21881 (remove_duplicate_close_phi): New.
21882 (make_close_phi_nodes_unique): New.
21883 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
21884
ba858447
SP
218852011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21886
21887 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
21888 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
21889 of both data references to be the same.
21890
8d865c56
SP
218912011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21892
38be4072
UB
21893 * graphite-dependences.c (build_lexicographical_constraint): Remove
21894 the gdim parameter.
21895 (build_lexicographical_constraint): Adjust call to
21896 ppl_powerset_is_empty.
8d865c56
SP
21897 (dependence_polyhedron): Same.
21898 (graphite_legal_transform_dr): Same.
21899 (graphite_carried_dependence_level_k): Same.
38be4072
UB
21900 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
21901 parameter.
8d865c56
SP
21902 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
21903
50034a36
SP
219042011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21905
21906 * graphite-sese-to-poly.c
21907 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
21908 (close_phi_written_to_memory): New.
21909 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
21910 and unshare_expr.
21911
0deada9e
SP
219122011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21913
21914 * doc/install.texi: Update the expected version number of PPL to 0.11.
21915 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
21916 #if PPL_VERSION_MINOR < 11.
21917
d7d3d6af
SP
219182011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21919
21920 * graphite-dependences.c: Include graphite-cloog-util.h.
21921 (new_poly_ddr): Inlined into dependence_polyhedron.
21922 (free_poly_ddr): Moved close by new_poly_ddr.
21923 (dependence_polyhedron_1): Renamed dependence_polyhedron.
21924 Early return NULL when ppl_powerset_is_empty returns true.
21925 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
21926 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
21927 (graphite_legal_transform_dr): Call new_poly_ddr.
21928 (graphite_carried_dependence_level_k): Same.
21929 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
21930 (dot_transformed_deps_stmt_1): Removed.
21931 (dot_deps_stmt_1): Call dot_deps_stmt_2.
21932 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
21933 (dot_deps_1): Call dot_deps_2.
21934 * Makefile.in (graphite-dependences.o): Add missing dependence on
21935 graphite-cloog-util.h.
21936
28c5db57
SP
219372011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21938
21939 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
21940 (build_lexicographical_constraint): Same.
21941 (dependence_polyhedron_1): Same.
21942 (graphite_legal_transform_dr): Same.
21943 (graphite_carried_dependence_level_k): Same.
21944 * graphite-ppl.c (ppl_powerset_is_empty): New.
21945 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
21946 * tree-data-ref.c (dump_data_reference): Print the basic block index.
21947
5168d98f
SP
219482011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21949
21950 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
21951 the "a followed by b" relation and document it.
21952
4a40293a
SP
219532011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21954
21955 * graphite-dependences.c (build_lexicographical_constraint): Stop the
21956 iteration when the bag of constraints is empty.
21957
271fb6fa
SP
219582011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21959
21960 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
21961
92d23680
SP
219622011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21963
21964 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
21965 nest and two loop depths as parameters.
21966 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
21967 lst_perfect_nestify.
21968
2f51deff
SP
219692011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21970
21971 * graphite-dependences.c (print_pddr): Call
21972 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
21973
07f3593c
SP
219742011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21975
21976 * graphite-ppl.c (debug_gmp_value): New.
21977 * graphite-ppl.h (debug_gmp_value): Declared.
21978
3fae6099
TG
219792011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
21980
21981 * doc/install.texi: Document availability of cloog-0.16.
21982
1c3ba85b
SP
219832011-01-25 Vladimir Kargov <kargov@gmail.com>
21984
21985 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
21986 invalid postdominance info.
21987
e8ba94fc
JH
219882011-01-24 Jan Hubicka <jh@suse.cz>
21989
21990 PR c/21659
21991 * doc/extend.texi (weak pragma): Drop claim that it must
21992 appear before definition.
21993 * varasm.c (merge_weak, declare_weak): Only sanity check
21994 that DECL is not output at a time it is declared weak.
21995
2b6e2d13
KZ
219962011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
21997
21998 * machmode.def: Fixed comments.
1c3ba85b 21999
9841210f
KT
220002011-01-24 Kai Tietz <kai.tietz@onevision.com>
22001
22002 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
22003
220042011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
22005
22006 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 22007 WORDS_BIG_ENDIAN.
e046112d 22008
a6c5070a
L
220092011-01-24 H.J. Lu <hongjiu.lu@intel.com>
22010
22011 PR target/46519
22012 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
22013 (block_info): Add scanned and prev.
22014 (move_or_delete_vzeroupper_2): Return if the basic block
22015 has been scanned and the upper 128bit state is unchanged
22016 from the last scan.
22017 (move_or_delete_vzeroupper_1): Return true if the exit
22018 state is changed.
22019 (move_or_delete_vzeroupper): Visit basic blocks using the
22020 work-list based algorithm based on vt_find_locations in
22021 var-tracking.c.
22022
22023 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
22024
a40d79d7
NC
220252011-01-24 Nick Clifton <nickc@redhat.com>
22026
22027 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
22028 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
22029 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
22030 then define __v850e1__.
22031 * doc/invoke.texi: Document -mv850es.
22032
440eb8de
RH
220332011-01-24 Richard Henderson <rth@redhat.com>
22034
22035 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
22036 compound unordered comparisons.
22037 * config/rx/rx.c (rx_split_fp_compare): Remove.
22038 * config/rx/rx-protos.h: Update.
22039 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
22040 (cbranchsf4): Don't call rx_split_fp_compare.
22041 (*cbranchsf4): Use rx_split_cbranch.
22042 (*cmpsf): Don't accept "i" constraint.
22043 (*conditional_branch): Only valid after reload.
22044 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
22045
3ff79f99
MM
220462011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
22047
22048 PR target/47385
22049 * config/rs6000/altivec.md (vector constant splitters): Add
22050 support for creating vector single precision constants if -mvsx is
22051 used and we would create the constant using Altivec primitives.
22052
ff3d9d08
BS
220532011-01-23 Bernd Schmidt <bernds@codesourcery.com>
22054 Richard Sandiford <rdsandiford@googlemail.com>
22055
22056 PR rtl-optimization/47166
22057 * reload1.c (emit_reload_insns): Disable the spill_reg_store
22058 mechanism for PRE_MODIFY and POST_MODIFY.
22059 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
22060 reloadreg.
22061
7fcaf152
AS
220622011-01-23 Andreas Schwab <schwab@linux-m68k.org>
22063
8788adb6 22064 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 22065
d09b58c4
JH
220662011-01-22 Jan Hubicka <jh@suse.cz>
22067
22068 PR lto/47333
22069 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
22070
e8ff8c5a
JH
220712011-01-22 Jan Hubicka <jh@suse.cz>
22072
22073 PR tree-optimization/43884
22074 PR lto/44334
8788adb6 22075 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
22076 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
22077
ccaed3ba
AS
220782011-01-22 Anatoly Sokolov <aesok@post.ru>
22079
22080 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
22081 * config/s390/s390.c (s390_register_move_cost,
22082 s390_memory_move_cost): New.
22083 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
22084
0cecee06
UW
220852011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22086
22087 PR middle-end/47401
22088 * except.c (sjlj_assign_call_site_values): Move setting the
22089 crtl->uses_eh_lsda flag to ...
22090 (sjlj_mark_call_sites): ... here.
22091 (sjlj_emit_function_enter): Support NULL dispatch label.
22092 (sjlj_build_landing_pads): In a function with no landing pads
22093 that still has must-not-throw regions, generate code to register
22094 a personality function with empty LSDA.
22095
e692f276
RH
220962011-01-21 Richard Henderson <rth@redhat.com>
22097
1b7ae0b7
RH
22098 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
22099
3843787f
RH
22100 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
22101
e692f276
RH
22102 * compare-elim.c: New file.
22103 * Makefile.in (OBJS-common): Add it.
22104 (compare-elim.o): New.
22105 * common.opt (fcompare-elim): New.
22106 * opts.c (default_options_table): Add OPT_fcompare_elim.
22107 * tree-pass.h (pass_compare_elim_after_reload): New.
22108 * passes.c (init_optimization_passes): Add it.
22109 * recog.h: Protect against re-inclusion.
22110 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
22111 * doc/invoke.texi (-fcompare-elim): Document it.
22112 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
22113 * doc/tm.texi: Rebuild.
22114
9a7c2050
NC
221152011-01-22 Nick Clifton <nickc@redhat.com>
22116
22117 * config/rx/rx.md (cstoresf4): Pass comparison operator to
22118 rx_split_fp_compare.
22119
15ba5696
NC
221202011-01-22 Nick Clifton <nickc@redhat.com>
22121
22122 * config/rx/rx.md (UNSPEC_CONST): New.
22123 (deallocate_and_return): Wrap the amount popped off the stack in
22124 an UNSPEC_CONST in order to stop it being rejected by
22125 -mmax-constant-size.
22126 (pop_and_return): Add a "(return)" rtx.
22127 (call): Drop the immediate operand.
22128 (call_internal): Likewise.
22129 (call_value): Likewise.
22130 (call_value_internal): Likewise.
22131 (sibcall_internal): Likewise.
22132 (sibcall_value_internal): Likewise.
22133 (sibcall): Likewise. Generate an explicit call using
22134 sibcall_internal.
22135 (sibcall_value): Likewise.
22136 (mov<>): FAIL if a constant operand is not legitimate.
22137 (addsi3_unpsec): New pattern.
9a7c2050 22138
38be4072 22139 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
22140 (ok_for_max_constant): New function.
22141 (gen_safe_add): New function.
22142 (rx_expand_prologue): Use gen_safe_add.
22143 (rx_expand_epilogue): Likewise.
22144 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
22145 UNSPEC CONSTs.
22146
caaf13d3
JL
221472011-01-21 Jeff Law <law@redhat.com>
22148
22149 PR tree-optimization/47053
22150 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
22151 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
22152 statements are deleted.
22153 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
22154 is nonempty, then purge dead edges and cleanup the CFG.
22155
12c30f2f
AO
221562011-01-21 Alexandre Oliva <aoliva@redhat.com>
22157
22158 PR debug/47402
22159 Temporarily revert:
22160 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
22161 PR debug/47106
22162 * tree-dfa.c (create_var_ann): Mark variable as used.
22163
7360d2ac
JJ
221642011-01-21 Jakub Jelinek <jakub@redhat.com>
22165
aaa52a96
JJ
22166 PR middle-end/45566
22167 * except.c (convert_to_eh_region_ranges): Emit queued no-region
22168 notes from other section in hot/cold partitioning even if
22169 last_action is -3. Increment call_site_base.
22170
7360d2ac
JJ
22171 PR rtl-optimization/47366
22172 * fwprop.c (forward_propagate_into): Return bool. If
22173 any changes are made, -fnon-call-exceptions is used and
22174 REG_EH_REGION note is present, call purge_dead_edges
22175 and return true if it purged anything.
22176 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
22177 any EH edges were purged.
22178
e90b336f
JL
221792011-01-21 Jeff Law <law@redhat.com>
22180
22181 PR rtl-optimization/41619
22182 * caller-save.c (setup_save_areas): Break out code to determine
22183 which hard regs are live across calls by examining the reload chains
22184 so that it is always used.
22185 Eliminate code which checked REG_N_CALLS_CROSSED.
22186
3ffe07e1
JJ
221872011-01-21 Jakub Jelinek <jakub@redhat.com>
22188
22189 PR tree-optimization/47355
22190 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
22191 NOP has non-debug uses beyond PHIs in new_bb.
22192
1c7d0b34
AO
221932011-01-21 Alexandre Oliva <aoliva@redhat.com>
22194
22195 PR debug/47106
22196 * cfgexpand.c (account_used_vars_for_block): Only account vars
22197 that are annotated as used.
22198 (estimated_stack_frame_size): Don't set TREE_USED.
22199 * tree-dfa.c (create_var_ann): Mark variable as used.
22200
f99cc488
RG
222012011-01-21 Richard Guenther <rguenther@suse.de>
22202
22203 PR middle-end/47395
22204 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
22205
3bc27de7
RG
222062011-01-21 Richard Guenther <rguenther@suse.de>
22207
22208 PR tree-optimization/47365
22209 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
22210 (vn_reference_lookup_pieces): Adjust.
22211 (vn_reference_lookup): Likewise.
22212 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
22213 (vn_reference_lookup_3): Only look through kills if in
22214 VN_WALKREWRITE mode.
22215 (vn_reference_lookup_pieces): Adjust.
22216 (vn_reference_lookup): Likewise.
22217 (visit_reference_op_load): Likewise.
22218 (visit_reference_op_store): Likewise.
22219 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
22220 (compute_avail): Likewise.
22221 (eliminate): Likewise.
22222
d8debb1d
JJ
222232011-01-21 Jakub Jelinek <jakub@redhat.com>
22224
22225 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
22226 DECL_IGNORED_P non-reg vars if they are used.
22227
3a2df831
JJ
22228 PR tree-optimization/47391
22229 * varpool.c (const_value_known_p): Return false if
22230 decl is volatile.
22231
1dd584a2
KT
222322011-01-21 Kai Tietz <kai.tietz@onevision.com>
22233
22234 PR bootstrap/47215
22235 * config/i386/i386.c (ix86_local_alignment): Handle
22236 case for va_list_type_node is nil.
22237 (ix86_canonical_va_list_type): Likewise.
22238
7f9f095e
AM
222392011-01-21 Alan Modra <amodra@gmail.com>
22240
22241 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
22242 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
22243
837b01f6
RR
222442011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22245
22246 * config/arm/arm.md (define_attr type): Rename f_load
22247 and f_store to f_fpa_load and f_fpa_store. Update.
22248 (write_conflict): Deal with rename fallout.
22249 (*push_fp_multi): Likewise.
22250 * config/arm/fpa.md (f_load): Use f_fpa_load.
22251 (f_store): Use f_fpa_store.
22252 (*movsf_fpa): Likewise.
22253 (*movdf_fpa): Likewise.
22254 (*movxf_fpa): Likewise.
22255 (*thumb2_movsf_fpa): Likewise.
22256 (*thumb2_movdf_fpa): Likewise.
22257 (*thumb2_movxf_fpa): Likewise.
22258 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
22259 f_loadd and f_stored.
22260 (*thumb2_movdi_vfp): Likewise.
22261 (*thumb2_movsf_vfp): Fix attribute to f_loads.
22262 (*thumb2_movsi_vfp): Likewise.
22263 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
22264 Use f_loads instead of f_load.
22265 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
22266
a1a79768
AS
222672011-01-20 Anatoly Sokolov <aesok@post.ru>
22268
22269 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22270 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
22271 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22272 (xtensa_mode_dependent_address_p): New function.
22273 (constantpool_address_p): Make static. Change return type to bool.
22274 Change argument type to const_rtx. Use CONST_INT_P predicate.
22275
427f6cec
AO
222762011-01-20 Alexandre Oliva <aoliva@redhat.com>
22277
22278 PR debug/46583
22279 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
22280
583ac69c
JJ
222812011-01-20 Jakub Jelinek <jakub@redhat.com>
22282
22283 PR debug/47283
22284 * cfgexpand.c (expand_debug_expr): Instead of generating
22285 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
22286 etc. handling.
22287
93e452ed
RG
222882011-01-20 Richard Guenther <rguenther@suse.de>
22289
22290 PR middle-end/47370
22291 * tree-inline.c (remap_gimple_op_r): Recurse manually for
22292 the pointer operand of MEM_REFs.
22293
28fc44f3
JJ
222942011-01-20 Jakub Jelinek <jakub@redhat.com>
22295
22296 PR tree-optimization/46130
22297 * ipa-split.c (consider_split): If return_bb contains non-virtual
22298 PHIs other than for retval or if split_function would not adjust it,
22299 refuse to split.
22300
ddd268f2
RG
223012011-01-20 Richard Guenther <rguenther@suse.de>
22302
22303 PR tree-optimization/47167
22304 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
22305 Revert previous change, only avoid enumeral type changes.
22306
882020aa
MS
223072011-01-19 Mike Stump <mikestump@comcast.net>
22308
22309 * doc/tm.texi.in (BRANCH_COST): Englishify.
22310 * doc/tm.texi (BRANCH_COST): Likewise.
22311
7edb6247
DS
223122011-01-19 Dodji Seketeli <dodji@redhat.com>
22313
22314 PR c++/47291
22315 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
22316 (gen_scheduled_generic_parms_dies): New functions.
22317 (gen_struct_or_union_type_die): Schedule template parameters DIEs
22318 generation for the end of CU compilation.
22319 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 22320
23d5ed5d
AO
223212011-01-19 Alexandre Oliva <aoliva@redhat.com>
22322
22323 PR debug/46240
22324 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
22325 debug bind stmt on merge edges.
22326
37d6a488
AO
223272011-01-19 Alexandre Oliva <aoliva@redhat.com>
22328
22329 PR debug/47079
22330 PR debug/46724
22331 * function.c (instantiate_expr): Instantiate incoming rtl of
22332 implicit arguments, and recurse on VALUE_EXPRs.
22333 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
22334 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
22335
689f2c82
AO
223362011-01-19 Alexandre Oliva <aoliva@redhat.com>
22337
22338 * c-parser.c (c_parser_for_statement): Initialize
22339 collection_expression.
22340
03029de4
JM
223412011-01-19 Joseph Myers <joseph@codesourcery.com>
22342
22343 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
22344
3e03217e
JM
223452011-01-19 Joseph Myers <joseph@codesourcery.com>
22346
22347 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
22348 (LINK_SHLIB_SPEC): Don't use %(link_path).
22349 (SUBTARGET_EXTRA_SPECS): Remove link_path.
22350
5bbe9b3f
JM
223512011-01-19 Joseph Myers <joseph@codesourcery.com>
22352
22353 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
22354 (NO_SHARED_LIB_SUPPORT): Remove.
22355 (LINK_SHLIB_SPEC): Remove one conditional definition.
22356
368e0b39
JM
223572011-01-19 Joseph Myers <joseph@codesourcery.com>
22358
22359 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
22360 %{call_shared}.
22361 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
22362 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
22363 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
22364 %{call_shared} and conditionals on these options not being passed.
22365 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
22366 %{call_shared}.
22367
ed7656f6
JJ
223682011-01-19 Jakub Jelinek <jakub@redhat.com>
22369
68457901
JJ
22370 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
22371 simplify.
22372
ed7656f6
JJ
22373 * ipa-split.c: Spelling fixes.
22374
e0d1958f
RH
223752011-01-19 Richard Henderson <rth@redhat.com>
22376
22377 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
22378 (*mulsi3): Likewise.
22379
27098b6b
RH
22380 * longlong.h [__mn10300__] (count_leading_zeros): New.
22381 [__mn10300__] (umul_ppmm, smul_ppmm): New.
22382 [__mn10300__] (add_ssaaaa, subddmmss): New.
22383 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
22384 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
22385
d6be7c36
UW
223862011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22387
22388 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
22389
b1efde2a
RH
223902011-01-19 Richard Henderson <rth@redhat.com>
22391
44217823
RH
22392 * config/mn10300/mn10300.md (addsi3_flags): New.
22393 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
22394 (subsi3_flags, subc_internal, subdi3): New.
22395 (subdi3_internal, *subdi3_degenerate): New.
22396 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
22397
37a185d7
RH
22398 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
22399 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
22400 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
22401 * config/mn10300/mn10300-protos.h: Update.
22402 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
22403 (return_ret): Likewise. Rename from return_internal_regs.
22404 (return_internal): Remove.
22405
040c5757
RH
22406 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
22407 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
22408 (mn10300_legitimate_constant_p): Likewise.
22409 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
22410 (mn10300_frame_size): New.
22411 (mn10300_expand_prologue): Use it.
22412 (mn10300_expand_epilogue): Likewise.
22413 (mn10300_initial_offset): Likewise.
22414 * config/mn10300/mn10300-protos.h: Update.
22415 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
22416 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
22417 (prologue, epilogue, return_internal): Tidy output code.
22418 (mn10300_store_multiple_operation, return): Likewise.
22419 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
22420 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
22421 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
22422 (load_pic, am33_load_pic): New.
22423 (mn10300_load_pic0, mn10300_load_pic1): New.
22424
bad41521
RH
22425 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
22426 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
22427 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
22428 (cc_flags_for_mode, cc_flags_for_code): New.
22429 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
22430 overflow flag is not valid. Validate that the flags we need
22431 for the comparison are valid.
22432 (mn10300_output_cmp): Remove.
22433 (mn10300_output_add): New.
22434 (mn10300_select_cc_mode): Use cc_flags_for_code.
22435 (mn10300_split_cbranch): New.
22436 (mn10300_match_ccmode): New.
22437 (mn10300_split_and_operand_count): New.
22438 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
22439 to the function.
22440 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
22441 (addsi3): ... here. Use mn10300_output_add.
22442 (*addsi3_flags): New.
22443 (*am33_subsi3, *mn10300_subsi3): Merge...
22444 (subsi3): ... here. Use attribute isa.
22445 (*subsi3_flags): New.
22446 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
22447 when possible.
22448 (*am33_andsi3, *mn10300_andsi3): Merge...
22449 (andsi3): ... here.
22450 (*andsi3_flags): New.
22451 (andsi3 splitters): New.
22452 (*am33_iorsi3, *mn10300_iorsi3): Merge...
22453 (iorsi3): ... here.
22454 (*iorsi3_flags): New.
22455 (*am33_xorsi3, *mn10300_xorsi3): Merge...
22456 (xorsi3): ... here.
22457 (*xorsi3_flags): New.
22458 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
22459 (one_cmplsi2): ... here.
22460 (*one_cmplsi2_flags): New.
22461 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
22462 instead of "dax" in constraints. Use mn10300_split_cbranch.
22463 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
22464 use matching constraints to eliminate a self-comparison.
22465 (*integer_conditional_branch): Rename from integer_conditional_branch.
22466 Use int_mode_flags to match CC_REG.
22467 (*cbranchsi4_btst, *btstsi): New.
22468 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
22469 mn10300_split_cbranch.
22470 (*am33_cmpsf): Rename from am33_cmpsf.
22471 (*float_conditional_branch): Rename from float_conditional_branch.
22472 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
22473 (zero_extendqisi2): ... here.
22474 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
22475 (zero_extendhisi2): ... here.
22476 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
22477 (extendqisi2): ... here.
22478 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
22479 (extendhisi2): ... here.
22480 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
22481 (ashlsi3): ... here.
22482 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
22483 (lshrsi3): ... here.
22484 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
22485 (ashrsi3): ... here.
22486 (consecutive add peephole): Remove.
22487 * config/mn10300/predicates.md (label_ref_operand): New.
22488 (int_mode_flags): New.
22489 (CCZN_comparison_operator): New.
22490
9efb4993
RH
22491 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
22492 (throughput_42_latency_43): New reservation.
22493 (mulsidi3, umulsidi3): New expanders.
22494 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
22495 the MDR register to allocation; separately allocate the low and
22496 high parts of the DImode result.
22497 (umulsidi3_internal): Similarly.
22498 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
22499 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
22500 (udivsi3, umodsi3): Remove.
22501 (udivmodsi4, divmodsi4): New expanders.
22502 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
22503 (*divmodsi4): Simiarly.
22504 (ext_internal): New.
22505
c25a21f5
RH
22506 * config/mn10300/constraints.md ("z"): New constraint.
22507 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
22508 (FIXED_REGISTERS): Don't fix MDR.
22509 (CALL_USED_REGSITERS): Reformat nicely.
22510 (REG_ALLOC_ORDER): Add MDR.
22511 (enum regclass): Add MDR_REGS.
22512 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
22513 (IRA_COVER_CLASSES): Add MDR_REGS.
22514 (REGNO_REG_CLASS): Handle MDR_REG.
22515 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
22516 (mn10300_register_move_cost): Likewise.
22517 * config/mn10300/mn10300.md (MDR_REG): New.
22518 (*movsi_internal): Handle moves to/from MDR_REGS.
22519
36846b26
RH
22520 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
22521 POST_MODIFY.
22522 (mn10300_secondary_reload): Tidy combination reload classes.
22523 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
22524 addresses for AM33. Allow symbolic offsets for reg+imm.
22525 (mn10300_regno_in_class_p): New.
22526 (mn10300_legitimize_reload_address): New.
22527 * config/mn10300/mn10300.h (enum reg_class): Remove
22528 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
22529 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
22530 SP_OR_GENERAL_REGS.
22531 (REG_CLASS_NAMES): Update to match.
22532 (REG_CLASS_CONTENTS): Likewise.
22533 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
22534 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
22535 (REGNO_IN_RANGE_P): Remove.
22536 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
22537 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
22538 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
22539 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
22540 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
22541 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
22542 (REGNO_GENERAL_P): New.
22543 (HAVE_POST_MODIFY_DISP): New.
22544 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
22545 (LEGITIMIZE_RELOAD_ADDRESS): New.
22546 * config/mn10300/mn10300-protos.h: Update.
22547
8b119bb6
RH
22548 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
22549 DATA_REGS for AM33 stack-pointer destination.
22550 (mn10300_preferred_output_reload_class): Likewise.
22551 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
22552 into a form appropriate for ...
22553 (TARGET_SECONDARY_RELOAD): New.
22554 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
22555 * config/mn10300/mn10300-protos.h: Update.
22556 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
22557 reload_insi; use the "A" constraint for the scratch; handle AM33
22558 moves of sp to non-address registers.
22559
b1efde2a
RH
22560 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
22561 (*movqi_internal): ... here.
22562 (*am33_movhi, *mn10300_movhi): Merge into...
22563 (*movhi_internal): ... here.
22564 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
22565 as the source/destination of moves from/to SP.
22566 (movsf): Only allow for AM33-2.
1c3ba85b 22567 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
22568 any integer constant constraint. Only allow for AM33-2. Tidy
22569 all of the alternative outputs.
22570 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
22571 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
22572 for MN103.
22573 (udivsi3, umodsi3): New patterns for MN103 only.
22574
b899fd78
JR
225752011-01-19 Joern Rennecke <amylaar@spamcop.net>
22576
22577 * doc/tm.texi.in: Spell out that a lack of register class unions
22578 can lead to ICEs.
22579 * doc/tm.texi: Regenerate.
22580
afaaa67d
JJ
225812011-01-19 Jakub Jelinek <jakub@redhat.com>
22582
2e0642cd
JJ
22583 PR rtl-optimization/47337
22584 * dce.c (check_argument_store): New function.
22585 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
22586
afaaa67d
JJ
22587 PR tree-optimization/47290
22588 * tree-eh.c (infinite_empty_loop_p): New function.
22589 (cleanup_empty_eh): Use it.
22590
d2cd871f
SE
225912011-01-18 Steve Ellcey <sje@cup.hp.com>
22592
22593 PR target/46997
22594 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
22595 (a64_expand_widen_sum): Ditto.
22596 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
22597 (vec_extract_evenodd_help): Ditto.
22598 (vec_extract_evenv4hi): Ditto.
22599 (vec_extract_oddv4hi): Ditto.
22600 (vec_extract_evenv2si): Ditto.
22601 (vec_extract_oddv2si): Ditto.
22602 (vec_extract_evenv2sf): Ditto.
22603 (vec_extract_oddv2sf): Ditto.
22604 (vec_pack_trunc_v4hi: Ditto.
22605 (vec_pack_trunc_v2si): Ditto.
22606 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
22607 (vec_interleave_highv8qi): Ditto.
22608 (mix1_r): Ditto.
22609 (vec_extract_oddv8qi): Ditto.
22610 (vec_interleave_lowv4hi): Ditto.
22611 (vec_interleave_highv4hi): Ditto.
22612 (vec_interleave_lowv2si): Ditto.
22613 (vec_interleave_highv2si): Ditto.
22614
41a1208a
JDA
226152011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22616
22617 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
22618 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
22619 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
22620 (pa_c_mode_for_suffix): New.
22621 (TARGET_EXPAND_BUILTIN): Define.
22622 (TARGET_C_MODE_FOR_SUFFIX): Define.
22623 (pa_builtins): Define.
22624 (pa_init_builtins): Register __float128 type and init new support
22625 builtins.
22626 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
22627 * config/pa/quadlib.c (_U_Qfcopysign): New.
22628
1ecad98e
EB
226292011-01-18 Eric Botcazou <ebotcazou@adacore.com>
22630
22631 PR middle-end/46894
22632 * explow.c (allocate_dynamic_stack_space): Do not assume more than
22633 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
22634 are defined.
22635
d4f2460a
UW
226362011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22637
22638 PR tree-optimization/47179
22639 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
22640 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
22641
4994da65
RG
226422011-01-18 Richard Guenther <rguenther@suse.de>
22643
22644 PR rtl-optimization/47216
22645 * emit-rtl.c: Include tree-flow.h.
22646 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
22647 of replicating it with different semantics.
22648 * Makefile.in (emit-rtl.o): Adjust.
22649
1eb458d1
RR
226502011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22651
38be4072 22652 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 22653 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 22654
e7ef91dc
JJ
226552011-01-18 Jakub Jelinek <jakub@redhat.com>
22656
22657 PR rtl-optimization/47299
22658 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 22659 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
22660 * expmed.c (expand_widening_mult): Don't try to optimize constant
22661 multiplication if op0 has VOIDmode. Convert op1 constant to mode
22662 before using it.
22663
535b7874
RW
226642011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22665
22666 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
22667 spacing after 'e.g.', typos, comma, hyphenation.
22668
27bf36f3
RH
226692011-01-17 Richard Henderson <rth@redhat.com>
22670
8a5b5449
RH
22671 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
22672 (rx_restricted_mem_operand): New.
22673 (rx_shift_operand): Use register_operand.
22674 (rx_source_operand, rx_compare_operand): Likewise.
22675 * config/rx/rx.md (addsi3_flags): New expander.
22676 (adddi3): Rewrite as expander.
22677 (adc_internal, *adc_flags, adddi3_internal): New patterns.
22678 (subsi3_flags): New expander.
22679 (subdi3): Rewrite as expander.
22680 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
22681
784f69be
RH
22682 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
22683 (rx_init_builtins): Remove sat builtin.
22684 (rx_expand_builtin): Likewise.
22685 * config/rx/rx.md (ssaddsi3): New.
22686 (*sat): Rename from sat. Represent the CC_REG input.
22687
f033541c
RH
22688 * config/rx/predicates.md (rshift_operator): New.
22689 * config/rx/rx.c (rx_expand_insv): Remove.
22690 * config/rx/rx-protos.h: Update.
22691 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
22692 operand to the canonical position.
22693 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
22694 (*bitclr, *bitclr_in_memory): Similarly.
22695 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
22696 (insv): Retain the zero_extract in the expansion.
22697
34fee389
RH
22698 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
22699 (bswaphi2, bitinvert, revw): Likewise.
22700
265c835f
RH
22701 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
22702 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
22703 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
22704 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
22705 (bitset, bitset_in_memory): Likewise.
22706 (bitinvert, bitinvert_in_memory): Likewise.
22707 (bitclr, bitclr_in_memory): Likewise.
22708 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
22709 (rx_strend, rx_cmpstrn): Likewise.
22710 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
22711 (bitop peep2 patterns): Remove.
22712
b4d83be3
RH
22713 * config/rx/rx.c (rx_match_ccmode): New.
22714 * config/rx/rx-protos.h: Update.
22715 * config/rx/rx.md (abssi2): Clobber, don't set flags.
22716 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
22717 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
22718 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
22719 (fix_truncsfsi2, floatsisf2): Likewise.
22720 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
22721 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
22722 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
22723 (*subsi3_flags, *xorsi3_flags): New.
22724
d0acb939
RH
22725 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
22726
c06fc3d9
RH
22727 * config/rx/rx.c (rx_print_operand): Remove workaround for
22728 unsplit comparison operations.
22729
2882702b
RH
22730 * config/rx/rx.md (movsicc): Split after reload.
22731 (*movsicc): Merge *movsieq and *movsine via match_operator.
22732 (*stcc): New pattern.
22733
6f7310f2
RH
22734 * config/rx/rx.c (rx_float_compare_mode): Remove.
22735 * config/rx/rx.h (rx_float_compare_mode): Remove.
22736 * config/rx/rx.md (cstoresi4): Split after reload.
22737 (*sccc): New pattern.
22738
e963cb1a
RH
22739 * config/rx/predicates.md (label_ref_operand): New.
22740 (rx_z_comparison_operator): New.
22741 (rx_zs_comparison_operator): New.
22742 (rx_fp_comparison_operator): New.
22743 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
22744 Validate that the flags are set properly for the comparison.
22745 (rx_gen_cond_branch_template): Remove.
22746 (rx_cc_modes_compatible): Remove.
22747 (mode_from_flags): New.
22748 (flags_from_code): Rename from flags_needed_for_conditional.
22749 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
22750 (rx_select_cc_mode): Likewise.
22751 (rx_split_fp_compare): New.
22752 (rx_split_cbranch): New.
22753 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
22754 (*cbranchsi4): Use match_operator and rx_split_cbranch.
22755 (*cbranchsf4): Similarly.
22756 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
22757 match_operator and rx_split_cbranch.
22758 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
22759 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
22760 (*cmpsi): Rename from cmpsi.
22761 (*tstsi): Rename from tstsi.
22762 (*cmpsf): Rename from cmpsf; use CC_Fmode.
22763 (*conditional_branch): Rename from conditional_branch.
22764 (*reveresed_conditional_branch): Remove.
22765 (b<code>): Remove expander.
22766 * config/rx/rx-protos.h: Update.
22767
af530bb4
RH
22768 * config/rx/rx.c (rx_compare_redundant): Remove.
22769 * config/rx/rx.md (cmpsi): Don't use it.
22770 * config/rx/rx-protos.h: Update.
22771
27bf36f3
RH
22772 * config/rx/rx-modes.def (CC_F): New mode.
22773 * config/rx/rx.c (rx_select_cc_mode): New.
22774 * config/rx/rx.h (SELECT_CC_MODE): Use it.
22775 * config/rx/rx-protos.h: Update.
22776
d7fde127
RH
227772011-01-17 Richard Henderson <rth@redhat.com>
22778
22779 * except.c (dump_eh_tree): Fix stray ; after for statement.
22780
6ff38230
RG
227812011-01-17 Richard Guenther <rguenther@suse.de>
22782
22783 PR tree-optimization/47313
22784 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
22785 handling before copying the body. Properly deal with
22786 by-reference result in SSA form.
22787
114ce554
ILT
227882011-01-17 Ian Lance Taylor <iant@google.com>
22789
bf5cd92b 22790 PR target/47219
114ce554
ILT
22791 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
22792 (struct_value_alias_set): Don't define.
22793 (sparc_option_override): Don't set sparc_sr_alias_set and
22794 struct_value_alias_set.
22795 (save_or_restore_regs): Use gen_frame_mem rather than calling
22796 set_mem_alias_set.
22797 (sparc_struct_value_rtx): Likewise.
22798
98c6d93c
L
227992011-01-17 H.J. Lu <hongjiu.lu@intel.com>
22800
22801 PR target/47318
7a81008b 22802 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
22803 (_mm_maskstore_pd): Likewise.
22804 (_mm_maskload_ps): Likewise.
22805 (_mm_maskstore_ps): Likewise.
22806 (_mm256_maskload_pd): Change mask to __m256i.
22807 (_mm256_maskstore_pd): Likewise.
22808 (_mm256_maskload_ps): Likewise.
22809 (_mm256_maskstore_ps): Likewise.
22810
22811 * config/i386/i386-builtin-types.def: Updated.
22812 (ix86_expand_special_args_builtin): Likewise.
22813
22814 * config/i386/i386.c (bdesc_special_args): Update
22815 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
22816 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
22817 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
22818 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
22819
22820 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
22821 Use <avxpermvecmode> on mask register.
22822 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
22823
b9361af2 228242011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
22825 Michael Haubenwallner <michael.haubenwallner@salomon.at>
22826 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
22827
22828 PR target/46655
22829 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
22830 if <= USHRT_MAX in 32-bit mode.
22831
b7ae9eb5
RW
228322011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22833
22834 * doc/install.texi (Configuration, Specific): Wrap long
22835 lines in examples. Allow line wrapping in long options
22836 and URLs where beneficial for PDF output.
22837
4377fad9
RS
228382011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
22839
22840 * config/mips/mips.c (mips_classify_symbol): Don't return
22841 SYMBOL_PC_RELATIVE for nonlocal labels.
22842
55959ffa 228432011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 22844
55959ffa
EB
22845 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
22846
228472011-01-15 Jan Hubicka <jh@suse.cz>
22848
22849 PR tree-optimization/47276
be46831f
JH
22850 * ipa.c (function_and_variable_visibility): Do not try to mark alias
22851 declarations as needed.
22852
05842ff5
MJ
228532011-01-15 Martin Jambor <mjambor@suse.cz>
22854
22855 * common.opt (fdevirtualize): New flag.
22856 * doc/invoke.texi (Option Summary): Document it.
22857 * opts.c (default_options_table): Add devirtualize flag.
22858 * ipa-prop.c (detect_type_change): Return immediately if
22859 devirtualize flag is not set.
22860 (detect_type_change_ssa): Likewise.
22861 (compute_known_type_jump_func): Likewise.
22862 (ipa_analyze_virtual_call_uses): Likewise.
22863
f65cf2b7
MJ
228642011-01-14 Martin Jambor <mjambor@suse.cz>
22865
22866 PR tree-optimization/45934
22867 PR tree-optimization/46302
22868 * ipa-prop.c (type_change_info): New type.
22869 (stmt_may_be_vtbl_ptr_store): New function.
22870 (check_stmt_for_type_change): Likewise.
22871 (detect_type_change): Likewise.
22872 (detect_type_change_ssa): Likewise.
22873 (compute_complex_assign_jump_func): Check for dynamic type change.
22874 (compute_complex_ancestor_jump_func): Likewise.
22875 (compute_known_type_jump_func): Likewise.
22876 (compute_scalar_jump_functions): Likewise.
22877 (ipa_analyze_virtual_call_uses): Likewise.
22878 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
22879
eb5bb0fd
JM
228802011-01-14 Joseph Myers <joseph@codesourcery.com>
22881
22882 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
22883 * config/i386/i386.opt (msse5): New Alias.
22884
f2060fbe
JM
228852011-01-14 Joseph Myers <joseph@codesourcery.com>
22886
22887 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22888 * config/sparc/linux64.h (CC1_SPEC): Likewise.
22889 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22890 * config/sparc/sparc.h (CC1_SPEC): Likewise.
22891
3a7b4385
JM
228922011-01-14 Joseph Myers <joseph@codesourcery.com>
22893
22894 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
22895 -mcpu options.
22896 * config/sparc/linux64.h (CC1_SPEC): Likewise.
22897 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22898 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
22899 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
22900 Likewise.
22901 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
22902
a7b778f8
JM
229032011-01-14 Joseph Myers <joseph@codesourcery.com>
22904
38be4072 22905 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 22906
a7edae0a
MS
229072011-01-14 Mike Stump <mikestump@comcast.net>
22908
22909 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
22910 * config/fr30/fr30.md: Likweise
22911 (movsi_push): Likewise.
22912 (movsi_pop): Likewise.
22913 (enter_func): Likewise.
22914 * config/moxie/moxie.md (movsi_push): Likewise.
22915 (movsi_pop): Likewise.
22916
cbabf03f
JM
229172011-01-14 Joseph Myers <joseph@codesourcery.com>
22918
22919 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
22920 %{no_archive} %{exact_version}.
22921 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
22922 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
22923 %{no_archive} %{exact_version}.
22924 * config/mips/openbsd.h (LINK_SPEC): Likewise.
22925 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
22926 * config/mips/vxworks.h: Likewise.
22927
438da41a
JM
229282011-01-14 Joseph Myers <joseph@codesourcery.com>
22929
38be4072 22930 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 22931
da290a42
JM
229322011-01-14 Joseph Myers <joseph@codesourcery.com>
22933
22934 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
22935 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
22936
8989d00e
JM
229372011-01-14 Joseph Myers <joseph@codesourcery.com>
22938
22939 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
22940 -nodefaultlib.
22941
a3010a69
JM
229422011-01-14 Joseph Myers <joseph@codesourcery.com>
22943
22944 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
22945 for mcpu not cpu.
22946 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
22947 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
22948 not cpu.
22949 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
22950 Don't handle -shlib.
22951
e7f2f537
JM
229522011-01-14 Joseph Myers <joseph@codesourcery.com>
22953
22954 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
22955 (CC1_SPEC): Don't handle -profile.
22956
34830bfd
JM
229572011-01-14 Joseph Myers <joseph@codesourcery.com>
22958
22959 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
22960 * config/mips/mips.h (CC1_SPEC): Likewise.
22961
b2d36e74
JM
229622011-01-14 Joseph Myers <joseph@codesourcery.com>
22963
22964 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
22965 * config/mips/mips.h (CC1_SPEC): Likewise.
22966
dabadc52
JM
229672011-01-14 Joseph Myers <joseph@codesourcery.com>
22968
22969 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
22970 * config/m32r/linux.h (LINK_SPEC): Likewise.
22971 * config/mips/linux.h (LINK_SPEC): Likewise.
22972 * config/mips/linux64.h (LINK_SPEC): Likewise.
22973 * config/sparc/linux.h (LINK_SPEC): Likewise.
22974 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
22975 LINK_SPEC): Likewise.
22976 * config/xtensa/linux.h (LINK_SPEC): Likewise.
22977
43ee6785
JM
229782011-01-14 Joseph Myers <joseph@codesourcery.com>
22979
22980 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
22981 %{version:-v}.
22982 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
22983
45e79dfd
JM
229842011-01-14 Joseph Myers <joseph@codesourcery.com>
22985
22986 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
22987 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
22988
37e9e71d
JM
229892011-01-14 Joseph Myers <joseph@codesourcery.com>
22990
22991 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
22992
bb127cd8
RO
229932011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22994
22995 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
22996 supports -Bstatic/-Bdynamic.
22997 * configure: Regenerate.
22998
89a012ea 229992011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 23000 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
23001
23002 PR target/46037
23003 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
23004 when checking debug_info_level. Test write_symbols instead of
23005 debug_hooks->var_location when setting flag_var_tracking_uninit.
23006
7352c013
RG
230072011-01-14 Richard Guenther <rguenther@suse.de>
23008
23009 PR tree-optimization/47179
23010 * target.def (ref_may_alias_errno): New target hook.
23011 * targhooks.h (default_ref_may_alias_errno): Declare.
23012 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
23013 (default_ref_may_alias_errno): New function.
23014 * target.h (struct ao_ref_s): Declare.
23015 * tree-ssa-alias.c: Include target.h.
23016 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
23017 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
23018 (targhooks.o): Likewise.
23019 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
23020 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
23021
9a6c9288
RG
230222011-01-14 Richard Guenther <rguenther@suse.de>
23023
23024 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
23025
0fdb0d27
RG
230262011-01-14 Richard Guenther <rguenther@suse.de>
23027
23028 PR tree-optimization/47280
23029 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
23030 return CFG changes.
23031 (tree_ssa_forward_propagate_single_use_vars): Deal with
23032 CFG changes from associate_plusminus.
23033
8f66db3b
RG
230342011-01-14 Richard Guenther <rguenther@suse.de>
23035
23036 PR middle-end/47281
23037 Revert
23038 2011-01-11 Richard Guenther <rguenther@suse.de>
23039
280d9630
EB
23040 PR tree-optimization/46076
23041 * tree-ssa.c (useless_type_conversion_p): Conversions from
23042 unprototyped to empty argument list function types are useless.
8f66db3b 23043
6c0c92e6
RG
230442011-01-14 Richard Guenther <rguenther@suse.de>
23045
23046 PR tree-optimization/47286
280d9630 23047 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 23048
db09f943
MJ
230492011-01-14 Martin Jambor <mjambor@suse.cz>
23050
23051 PR middle-end/46823
23052 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
23053
dde8a3a4
AS
230542011-01-13 Anatoly Sokolov <aesok@post.ru>
23055
23056 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
23057 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23058 * config/xtensa/xtensa.c (xtensa_libcall_value,
23059 xtensa_function_value_regno_p): New functions.
23060 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
23061
a2b63a20
KT
230622011-01-13 Kai Tietz <kai.tietz@onevision.com>
23063
23064 PR c++/47213
23065 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
23066 PE specific hook.
23067 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
23068 New function prototype.
23069 * config/i386/winnt.c (i386_pe_assemble_visibility):
23070 Warn only if attribute was specified by user.
23071
b41f0b34
MM
230722011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
23073
23074 PR target/47251
23075 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
23076 floating point.
23077 (floatunsdidf2_fcfidu): Ditto.
23078
3f3c098d
AK
230792011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23080
23081 * config/s390/s390.c (print_operand_address): Replace 'error' with
23082 'output_operand_lossage'.
23083 (print_operand): Likewise.
23084
29fa95ed
JL
230852011-01-13 Jeff Law <law@redhat.com>
23086
280d9630 23087 PR rtl-optimization/39077
29fa95ed
JL
23088 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
23089 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
23090 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
23091 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
23092 * gcse.c (prune_insertions_deletions): New function.
23093 (compute_pre_data): Use it.
23094
71d12276
DS
230952011-01-13 Dodji Seketeli <dodji@redhat.com>
23096
23097 PR debug/PR46973
23098 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
23099 static function.
61052244 23100 (prune_unused_types_mark): Use it.
71d12276 23101
9b0f04e7
AB
231022011-01-13 Andrey Belevantsev <abel@ispras.ru>
23103
23104 PR rtl-optimization/45352
1c3ba85b 23105 * sel-sched.c: Update copyright years.
9b0f04e7 23106 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 23107 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 23108
d6a3e264
RH
231092011-01-12 Richard Henderson <rth@redhat.com>
23110
a49b692a
RH
23111 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
23112 (TARGET_MD_ASM_CLOBBERS): New.
23113
126b1483
RH
23114 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
23115 (TARGET_DELEGITIMIZE_ADDRESS): New.
23116
f3d9d2e0
RH
23117 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
23118 (clzsi2, *bsch): New patterns.
23119
d84760c9
RH
23120 * config/mn10300/mn10300.md (INT): New mode iterator.
23121 (*mov<INT>_clr): New pattern, and peep2 to generate it.
23122
ec815d65
RH
23123 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
23124 flag_split_wide_types.
23125
d6a3e264
RH
23126 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
23127 (mn10300_trampoline_init): Rewrite without a template, an immediate
23128 load and a direct branch.
23129 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
23130
0f8ab434
AS
231312011-01-12 Anatoly Sokolov <aesok@post.ru>
23132
23133 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23134 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
23135 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
23136 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23137
d8a24b65
KT
231382011-01-12 Kai Tietz <kai.tietz@onevision.com>
23139
23140 PR debug/47209
23141 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
23142 of type.
23143
56e22cab
JH
231442011-01-12 Jan Hubicka <jh@suse.cz>
23145
23146 PR driver/47244
23147 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
23148 (PLUGIN_COND_CLOSE): New macro.
23149 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
23150
4b18b3c2
RG
231512011-01-12 Richard Guenther <rguenther@suse.de>
23152
23153 PR lto/47259
23154 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
23155 register variables in a MEM_REF.
23156
8e38461c
JM
231572011-01-12 Joseph Myers <joseph@codesourcery.com>
23158
23159 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
23160 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
23161 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
23162 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
23163 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
23164 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
23165 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
23166 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
23167 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
23168 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
23169 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
23170 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
23171 * config/gnu-user.h: New. Copied from linux.h.
23172 (LINUX_TARGET_STARTFILE_SPEC): Rename to
23173 GNU_USER_TARGET_STARTFILE_SPEC.
23174 (LINUX_TARGET_ENDFILE_SPEC): Rename to
23175 GNU_USER_TARGET_ENDFILE_SPEC.
23176 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
23177 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
23178 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
23179 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
23180 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
23181 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
23182 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
23183 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
23184 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
23185 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
23186 * config/arm/linux-eabi.h (CC1_SPEC): Use
23187 GNU_USER_TARGET_CC1_SPEC.
23188 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
23189 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
23190 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
23191 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
23192 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
23193 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
23194 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
23195 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
23196
a570fc16
RG
231972011-01-12 Richard Guenther <rguenther@suse.de>
23198
23199 PR other/46946
23200 * doc/invoke.texi (ffast-math): Document it is turned on
23201 with -Ofast.
23202
b0223c3e
JH
232032011-01-12 Jan Hubicka <jh@suse.cz>
23204
23205 PR tree-optimization/47233
ca1e00b3
EB
23206 * opts.c (common_handle_option): Disable ipa-reference with profile
23207 feedback.
b0223c3e 23208
1c3ba85b 232092011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
23210
23211 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
23212 error message.
23213
d853ee42
NP
232142011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
23215
23216 * c-parser.c (c_lex_one_token): Updated and reindented some
23217 comments. No changes in code.
23218
4053a5a0
ILT
232192011-01-11 Ian Lance Taylor <iant@google.com>
23220
23221 * godump.c (go_output_var): Don't output the variable if there is
23222 already a type with the same name.
23223
fa3e04d2
ILT
232242011-01-11 Ian Lance Taylor <iant@google.com>
23225
23226 * godump.c (go_format_type): Don't generate float80.
23227
885fe07c
RH
232282011-01-11 Richard Henderson <rth@redhat.com>
23229
72d6e3c5
RH
23230 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
23231 declaration. Rewrite for both speed and size.
23232 (mn10300_address_cost_1): Remove.
23233 (mn10300_register_move_cost): New.
23234 (mn10300_memory_move_cost): New.
23235 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
23236 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
23237 extensions, shifts, BSWAP, CLZ.
23238 (mn10300_wide_const_load_uses_clr): Remove.
23239 (TARGET_REGISTER_MOVE_COST): New.
23240 (TARGET_MEMORY_MOVE_COST): New.
23241 * config/mn10300/mn10300-protos.h: Update.
23242 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
23243
df37c023
RH
23244 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
23245 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
23246 * config/mn10300/mn10300-protos.h: Update.
23247 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
23248 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
23249 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
23250 (*test_int_bitfield, *test_byte_bitfield): Remove.
23251 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 23252 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 23253
85a337b5
RH
23254 * config/mn10300/constraints.md ("c"): Rename from "A".
23255 ("A", "D"): New constraint letters.
23256 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
23257 (fmssf4, fnmasf4, fnmssf4): Likewise.
23258
a5c727e3
RH
23259 * config/mn10300/mn10300.md (isa): New attribute.
23260 (enabled): New attribute.
23261
0d9e23f4
RH
23262 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
23263 (abssf2, negsf2): Define only for hardware fp.
23264 (sqrtsf2): Reformat.
23265 (addsf3, subsf3, mulsf3): Merge expander and insn.
23266
c157b3f0
RH
23267 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
23268 (DEBUGGER_AUTO_OFFSET): Remove.
23269 (DEBUGGER_ARG_OFFSET): Remove.
23270
cc909bba
RH
23271 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
23272 Emit register stores with the same offsets as the hardware.
23273 (mn10300_store_multiple_operation): Don't check that the register
23274 save offsets are monotonic.
23275 * config/mn10300/mn10300-protos.h: Update.
23276
e3b5c2f3
RH
23277 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
23278
885fe07c
RH
23279 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
23280 in terms of the value on the stack, not the MDR register.
23281
6e701822
JH
232822011-01-11 Jan Hubicka <jh@suse.cz>
23283
23284 PR lto/45721
23285 PR lto/45375
23286 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
23287 (symbol_alias_set_destroy, symbol_alias_set_contains,
23288 propagate_aliases_backward): Declare.
23289 * lto-streamer-out.c (struct sets): New sturcture.
23290 (trivally_defined_alias): New function.
23291 (output_alias_pair_p): Rewrite.
23292 (output_unreferenced_globals): Fix output of alias pairs.
23293 (produce_symtab): Likewise.
23294 * ipa.c (function_and_variable_visibility): Set weak alias destination
23295 as needed in lto.
23296 * varasm.c (symbol_alias_set_t): Remove.
23297 (symbol_alias_set_destroy): Export.
23298 (propagate_aliases_forward, propagate_aliases_backward): New functions
23299 based on ...
23300 (compute_visible_aliases): ... this one; remove.
23301 (trivially_visible_alias): New
23302 (trivially_defined_alias): New.
23303 (remove_unreachable_alias_pairs): Rewrite.
23304 (finish_aliases_1): Reorganize code checking if alias is defined.
23305 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
23306 in LTO mode.
23307
1b248907
RG
233082011-01-11 Richard Guenther <rguenther@suse.de>
23309
23310 PR tree-optimization/46076
23311 * tree-ssa.c (useless_type_conversion_p): Conversions from
23312 unprototyped to empty argument list function types are useless.
23313
b1923f0a
RG
233142011-01-11 Richard Guenther <rguenther@suse.de>
23315
23316 PR middle-end/45235
23317 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
23318 volatile MEMs as MEM_READONLY_P.
23319
e98965af
RG
233202011-01-11 Richard Guenther <rguenther@suse.de>
23321
23322 PR tree-optimization/47239
23323 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
23324
9f9ca914
JL
233252011-01-11 Jeff Law <law@redhat.com>
23326
1ee3ea05 23327 PR tree-optimization/47086
9f9ca914
JL
23328 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
23329 IVs from statements that might throw.
23330
345fdcb7
JH
233312011-01-10 Jan Hubicka <jh@suse.cz>
23332
23333 PR lto/45375
23334 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
23335
c459c97b
JH
233362011-01-10 Jan Hubicka <jh@suse.cz>
23337
23338 PR lto/45375
23339 * profile.c (read_profile_edge_counts): Ignore profile inconistency
23340 when correcting profile.
23341
06c9eb51
JH
233422011-01-10 Jan Hubicka <jh@suse.cz>
23343
23344 PR lto/46083
23345 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
23346 DECL_FINI_PRIORITY.
23347 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
23348 Restore DECL_FINI_PRIORITY.
23349
ae9fd815
RW
233502011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23351
23352 * doc/gimple.texi: Fix quoting of multi-word return values in
23353 @deftypefn statements. Ensure presence of return value. Wrap
23354 overlong @deftypefn lines.
23355 (is_gimple_operand, is_gimple_min_invariant_address): Remove
23356 descriptions of removed functions.
23357 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
23358 of multi-word return value in @deftypefn statement.
23359
0ecb4a7c
RW
233602011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23361
23362 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
23363 (Conditional Expressions, Logical Operators)
23364 (Statement and operand traversals): Do not indent smallexample
23365 code. Fix duplicate function argument in example.
23366
2e5e346d
JL
233672011-01-10 Jeff Law <law@redhat.com>
23368
1ee3ea05 23369 PR tree-optimization/47141
2e5e346d
JL
23370 * ipa-split.c (split_function): Handle case where we are
23371 returning a value and the return block has a virtual operand phi.
23372
cf9712cc
JH
233732011-01-10 Jan Hubicka <jh@suse.cz>
23374
1c3ba85b 23375 PR tree-optimization/47234
cf9712cc
JH
23376 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
23377 (pass_feedback_split_functions): Declare.
23378 * passes.c (init_optimization_passes): Add ipa-split as subpass of
23379 tree-profile.
23380 * ipa-split.c (gate_split_functions): Update comments; disable
23381 split-functions for profile_arc_flag and branch_probabilities.
23382 (gate_feedback_split_functions): New function.
23383 (execute_feedback_split_functions): New function.
23384 (pass_feedback_split_functions): New global var.
23385
94cd932c
L
233862011-01-10 H.J. Lu <hongjiu.lu@intel.com>
23387
23388 PR lto/46760
23389 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
23390 calling gimple_call_set_cannot_inline.
23391
fbbfcaf1
IS
233922011-01-10 Iain Sandoe <iains@gcc.gnu.org>
23393
23394 * config/darwin-sections.def: Remove unused section.
23395
d06865bf
DK
233962011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
23397
23398 PR c++/47218
23399 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
23400
96bbfbac
NP
234012011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
23402
23403 PR objc/47232
23404 * c-parser.c (c_parser_declaration_or_fndef): Improved
23405 error message.
23406
1ba6516f
KT
234072011-01-09 Kai Tietz <kai.tietz@onevision.com>
23408
23409 * config/i386/winnt.c (i386_pe_start_function): Make sure
23410 to switch back to function's section.
23411
0c5d770e
IS
234122011-01-09 Iain Sandoe <iains@gcc.gnu.org>
23413
23414 PR gcc/46902
23415 PR testsuite/46912
23416 * plugin.c: Move include of dlfcn.h from here...
23417 * system.h: ... to here.
23418
234192011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
23420
23421 * doc/cpp.texi (C++ Named Operators): Fix markup for header
23422 file name.
23423 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
23424 two extra empty pages in PDF output.
23425
046608a3
NP
234262011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
23427
23428 PR objc/47078
23429 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
23430 for error recovery purposes behave as if it was not specified so
23431 that the default type is usd.
23432
8cb114b9
JH
234332011-01-07 Jan Hubicka <jh@suse.cz>
23434
23435 PR tree-optmization/46469
23436 * ipa.c (function_and_variable_visibility): Clear needed flags on
23437 nodes with external decls; handle weakrefs merging correctly.
23438
b294a75e
JM
234392011-01-07 Joseph Myers <joseph@codesourcery.com>
23440
23441 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
23442 not false.
23443
96bdf9b4
JH
234442011-01-07 Jan Hubicka <jh@suse.cz>
23445
f60c2554 23446 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
23447 and no longer claim that gold is required for linker plugin.
23448 * configure: Regenerate.
23449 * gcc.c (PLUGIN_COND): New macro.
23450 (LINK_COMMAND_SPEC): Use it.
23451 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
23452 * config.in (HAVE_LTO_PLUGIN): New.
23453 * configure.ac (--with-lto-plugin): New parameter; autodetect
23454 HAVE_LTO_PLUGIN.
23455
17afc0fe
JH
234562011-01-07 Jan Hubicka <jh@suse.cz>
23457
23458 PR tree-optimization/46367
23459 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
23460 when we can update original.
23461 (cgraph_mark_inline_edge): Sanity check.
23462 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
23463
d4c48c0f
UW
234642011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23465
23466 * config/spu/spu.h (ASM_COMMENT_START): Define.
23467
96f5b137
L
234682011-01-07 H.J. Lu <hongjiu.lu@intel.com>
23469
23470 PR driver/42445
23471 * gcc.c (%>S): New.
23472 (SWITCH_KEEP_FOR_GCC): Likewise.
23473 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
23474 (do_spec_1): Handle "%>".
23475
23476 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
23477
c6a8f6de
JJ
234782011-01-07 Jakub Jelinek <jakub@redhat.com>
23479
c21bbd7a
JJ
23480 PR target/47201
23481 * config/i386/i386.c (ix86_delegitimize_address): If
23482 simplify_gen_subreg fails, return orig_x.
23483
c6a8f6de
JJ
23484 PR bootstrap/47187
23485 * value-prof.c (gimple_stringop_fixed_value): Handle
23486 lhs of the call properly.
23487
fe95fbf9
JH
234882011-01-07 Jan Hubicka <jh@suse.cz>
23489
23490 PR lto/45375
23491 * lto-opt.c (lto_reissue_options): Set flag_shlib.
23492
14d11d40
IS
234932011-01-07 Iain Sandoe <iains@gcc.gnu.org>
23494
72e961c8
EB
23495 * target.def (function_switched_text_sections): New hook.
23496 * doc/tm.texi: Regenerated.
23497 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 23498 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
23499 (final_scan_insn): Call function_switched_text_sections when a
23500 mid-function section change occurs.
14d11d40 23501 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
23502 * config/darwin-protos.h (darwin_function_switched_text_sections):
23503 Likewise.
14d11d40 23504 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 23505 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 23506
0b764288
IS
235072011-01-07 Iain Sandoe <iains@gcc.gnu.org>
23508
23509 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
23510 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
23511 the secondary code fragment when outputting for DWARF == 2.
23512
2ac6bb04
AS
235132011-01-07 Anatoly Sokolov <aesok@post.ru>
23514
23515 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23516 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
23517 Remove.
23518 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
23519 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23520
9f82de11
EB
235212011-01-06 Eric Botcazou <ebotcazou@adacore.com>
23522
23523 PR debug/46704
280d9630
EB
23524 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
23525 when it is not empty.
9f82de11
EB
23526
235272011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 23528
1ed72abf 23529 Bobcat Enablement
14b52538 23530 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 23531 (case ${target}): Add btver1.
14b52538 23532 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 23533 -march=native recognize btver1 processors.
14b52538 23534 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 23535 btver1 def_and_undef
14b52538 23536 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
23537 btver1 cost table.
23538 (m_BTVER1): New definition.
23539 (m_AMD_MULTIPLE): Includes m_BTVER1.
23540 (initial_ix86_tune_features): Add btver1 tune.
23541 (processor_target_table): Add btver1 entry.
23542 (static const char *const cpu_names): Add btver1 entry.
23543 (software_prefetching_beneficial_p): Add btver1.
23544 (ix86_option_override_internal): Add btver1 instruction sets.
23545 (ix86_issue_rate): Add btver1.
23546 (ix86_adjust_cost): Add btver1.
14b52538 23547 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
23548 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
23549 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
23550 * config/i386/i386.md (define_attr "cpu"): Add btver1.
23551
e1a973d8
RO
235522011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23553
23554 PR target/43309
23555 * config/i386/i386.c (legitimize_tls_address)
23556 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
23557 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
23558 (tls_initial_exec_64_sun): New pattern.
23559
c73f67c5
GP
235602011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
23561
23562 * doc/invoke.texi (Overall Options): Improve wording and markup
23563 of the description of -wrapper.
23564
bc4c6f9c
JM
235652011-01-06 Joseph Myers <joseph@codesourcery.com>
23566
23567 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
23568 rdynamic, threads): New Driver options.
23569
adb75db0
RO
235702011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23571
23572 PR target/38118
23573 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
23574 if coming from .tdata.
23575 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
23576
402c1cb4
JH
235772011-01-06 Jan Hubicka <jh@suse.cz>
23578
23579 PR lto/47188
23580 * collect2.c (main): Do not enable LTOmode when plugin is active.
23581
a4da6485
RO
235822011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23583
23584 PR other/45915
23585 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
23586 --version output if supported.
23587 * configure: Regenerate.
23588
028dbdf4
JM
235892011-01-06 Joseph Myers <joseph@codesourcery.com>
23590
23591 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
23592 Driver options.
23593
dfe776dd
JJ
235942011-01-06 Jakub Jelinek <jakub@redhat.com>
23595
23596 PR c/47150
23597 * c-convert.c (convert): When converting a complex expression
23598 other than COMPLEX_EXPR to a different complex type, ensure
23599 c_save_expr is called instead of save_expr, unless in_late_binary_op.
23600 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
23601 when converting COMPLEX_TYPE.
23602
210dedfe
IR
236032011-01-06 Ira Rosen <irar@il.ibm.com>
23604
23605 PR tree-optimization/47139
23606 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
23607 only the last reduction value is used outside the loop. Update
23608 documentation.
23609
cd33a412
JM
236102011-01-05 Joseph Myers <joseph@codesourcery.com>
23611
23612 * config/rtems.opt: New.
23613 * config.gcc (*-*-rtems*): Use rtems.opt.
23614
819edd94
CF
236152011-01-05 Changpeng Fang <changpeng.fang@amd.com>
23616
23617 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
23618 processors do not support 3DNow instructions.
23619
dc242c4a
UW
236202011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23621
23622 * config/spu/spu.c (spu_option_override): Set parameter
23623 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
23624
be286227
JH
236252011-01-05 Jan Hubicka <jh@suse.cz>
23626
23627 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
23628 at the command line.
23629
644e637f
MJ
236302011-01-05 Martin Jambor <mjambor@suse.cz>
23631
23632 PR lto/47162
23633 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
23634 deltas on streamed outgoing edges.
23635 (output_node_opt_summary): Output info for outgoing edges only when
23636 the node is in new parameter set.
23637 (output_cgraph_opt_summary): New parameter set, passed to the two
23638 aforementioned functions. Update its forward declaration and its
23639 callee too.
23640
7bd11157
TT
236412011-01-05 Tom Tromey <tromey@redhat.com>
23642
23643 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
23644 operator to c_finish_omp_atomic.
23645 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
23646 (build_unary_op): Update.
23647 (build_modify_expr): Update.
23648 (build_asm_expr): Update.
23649
f626b979
UW
236502011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23651
23652 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
23653 newly inserted insns.
23654 (pad_bb): Likewise.
23655 (spu_emit_branch_hint): Likewise.
23656 (insert_hbrp_for_ilb_runout): Likewise.
23657 (spu_machine_dependent_reorg): Call df_finish_pass after
23658 schedule_insns returns.
23659
4c825c02
UW
236602011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23661
23662 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
23663
5e9fba51
EB
236642011-01-05 Eric Botcazou <ebotcazou@adacore.com>
23665
23666 PR tree-optimization/47005
23667 * tree-sra.c (struct access): Add 'non_addressable' bit.
23668 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
23669 (decide_one_param_reduction): Return 0 if the parameter is passed by
23670 reference and one of the accesses in the group is non_addressable.
23671
3ebb5ca6
EB
236722011-01-04 Eric Botcazou <ebotcazou@adacore.com>
23673
23674 PR tree-optimization/47056
23675 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
23676 (mark_load): Likewise. Handle FUNCTION_DECL specially.
23677 (mark_store): Likewise. Pass STMT to ipa_record_reference.
23678
d5d4d14e
EB
236792011-01-04 Eric Botcazou <ebotcazou@adacore.com>
23680
23681 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
23682 initializer. Skip view conversions from aggregate types.
23683
d996ef70
KT
236842011-01-04 Kai Tietz <kai.tietz@onevision.com>
23685
23686 PR bootstrap/47055
23687 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
23688
509d65dd 236892011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
23690
23691 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
23692 obvious typo.
23693
55c623b5
UW
236942011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23695
23696 * function.c (thread_prologue_and_epilogue_insns): Do not crash
23697 on empty epilogue sequences.
23698
b98d6b35
JM
236992011-01-04 Joseph Myers <joseph@codesourcery.com>
23700
23701 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
23702 non-static): New Driver options.
23703
a0d43bac
JZ
237042011-01-04 Jie Zhang <jie@codesourcery.com>
23705
23706 PR driver/47137
23707 * gcc.c (default_compilers[]): Set combinable field to 0
23708 for all assembly languages.
23709
2b18eb32
MX
237102011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
23711
23712 * config/mips/loongson3a.md: New file.
23713 * config/mips/mips.md: Include loongson3a.md.
23714 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
23715 TUNE_LOONGSON_3A.
23716
42a48c4f
EB
237172011-01-03 Eric Botcazou <ebotcazou@adacore.com>
23718
23719 PR middle-end/47017
23720 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
23721 instead of convert_memory_address_addr_space on the base expression.
23722
9c1732c4
UW
237232011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23724
23725 * config/spu/spu.c (spu_option_override): Update error text
23726 for bad -march= / -mtune= values.
23727
aa474365
UW
237282011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23729
23730 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
23731 if branch-hint optimization will be performed.
23732
9766135b
JJ
237332011-01-03 Jakub Jelinek <jakub@redhat.com>
23734
371556ee
JJ
23735 PR tree-optimization/47148
23736 * ipa-split.c (split_function): Convert arguments to
23737 DECL_ARG_TYPE if possible.
23738
1ac12fa2
JJ
23739 PR tree-optimization/47155
23740 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
23741 when computing uns.
23742
9766135b
JJ
23743 PR rtl-optimization/47157
23744 * combine.c (try_combine): If undobuf.other_insn becomes
23745 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
23746 and set *new_direct_jump_p too.
23747
f4a2e571
SP
237482011-01-03 Sebastian Pop <sebastian.pop@amd.com>
23749
23750 PR tree-optimization/47021
23751 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
23752
9f8e43c0
JJ
237532011-01-03 Jakub Jelinek <jakub@redhat.com>
23754
23755 * gcc.c (process_command): Update copyright notice dates.
23756 * gcov.c (print_version): Likewise.
23757 * gcov-dump.c (print_version): Likewise.
23758 * mips-tfile.c (main): Likewise.
23759 * mips-tdump.c (main): Likewise.
23760
1a2e38f3
MJ
237612011-01-03 Martin Jambor <mjambor@suse.cz>
23762
23763 PR tree-optimization/46801
23764 * tree-sra.c (type_internals_preclude_sra_p): Check whether
23765 aggregate fields start at byte boundary instead of the bit-field flag.
23766
56b721c5
L
237672011-01-03 H.J. Lu <hongjiu.lu@intel.com>
23768
23769 PR driver/47137
23770 * gcc.c (main): Revert revision 168407.
23771
839d549b
MJ
237722011-01-03 Martin Jambor <mjambor@suse.cz>
23773
23774 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
23775
4ce99a20 237762011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
23777
23778 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
23779 vector optab to expand vector/scalar shift, update gimple to vector.
23780
76df0ae6
MJ
237812011-01-03 Martin Jambor <mjambor@suse.cz>
23782
23783 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
23784 a thunk.
23785
ce47fda3
MJ
237862011-01-03 Martin Jambor <mjambor@suse.cz>
23787
23788 PR tree-optimization/46984
23789 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
23790 HOST_WIDE_INT.
23791 (cgraph_create_indirect_edge): Fixed line length.
23792 (cgraph_indirect_call_info): Declare.
23793 (cgraph_make_edge_direct) Update declaration.
23794 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
23795 (cgraph_create_indirect_edge): Use it.
23796 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
23797 callees.
23798 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
23799 the new thunk_delta representation.
23800 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
23801 HOST_WIDE_INT.
23802 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
23803 (ipa_read_indirect_edge_info): Likewise.
23804 * lto-cgraph.c (output_edge_opt_summary): New function.
23805 (output_node_opt_summary): Call it on all outgoing edges.
23806 (input_edge_opt_summary): New function.
23807 (input_node_opt_summary): Call it on all outgoing edges.
23808
1e67fa1f
L
238092011-01-02 H.J. Lu <hongjiu.lu@intel.com>
23810
23811 PR driver/47137
23812 * gcc.c (main): Don't check have_o when settting combine_inputs.
23813
6656b2ac
EB
238142011-01-02 Eric Botcazou <ebotcazou@adacore.com>
23815
23816 * regrename.c: Add general comment describing the pass.
23817 (struct du_head): Remove 'length' field.
23818 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
23819 (regrename_optimize): Do not sort chains. Rework comments, add others.
23820 Force renaming to the preferred class (if any) in the first pass and do
23821 not consider registers that belong to it in the second pass.
23822 (create_new_chain): Do not set 'length' field.
23823 (scan_rtx_reg): Likewise.
23824
bc470c24
JJ
238252011-01-02 Jakub Jelinek <jakub@redhat.com>
23826
4e996296
JJ
23827 PR tree-optimization/47140
23828 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
23829 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
23830 to bit_value_binop.
23831
bc470c24 23832 PR rtl-optimization/47028
6656b2ac
EB
23833 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
23834 parm_birth_insn instead of at the beginning of first bb.
bc470c24 23835
5af62fcd 238362011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
23837
23838 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
23839 Remove the word "see" before "@pxref".
23840 * doc/rtl.texi: Remove the word "see" before "@pxref".
23841
0e20c89f
JH
238422011-01-01 Jan Hubicka <jh@suse.cz>
23843
6656b2ac
EB
23844 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
23845 memory.
0e20c89f 23846
220e83ca
KT
238472011-01-01 Kai Tietz <kai.tietz@onevision.com>
23848
23849 PR target/38662
6656b2ac 23850 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 23851
ad41bd84 23852\f
797103eb 23853Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
23854
23855Copying and distribution of this file, with or without modification,
23856are permitted in any medium without royalty provided the copyright
23857notice and this notice are preserved.