OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [ChangeLog-2008] - Blame information for rev 295

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 280 jeremybenn
2008-12-31  Uros Bizjak  
2
 
3
        * sched-deps.c (sched_analyze_2) [UNSPEC_VOLATILE]: Flush pending
4
        memory loads and stores.
5
 
6
2008-12-31  Jakub Jelinek  
7
 
8
        PR middle-end/38505
9
        * tree-ssa-ccp.c (may_propagate_address_into_dereference): Return
10
        false if ADDR's operand has incomplete type.
11
 
12
        Revert:
13
        2008-12-15  Jakub Jelinek  
14
        PR middle-end/38505
15
        * tree-ssa.c (useless_type_conversion_p_1): Return
16
        false if inner_type is incomplete and outer_type is complete.
17
 
18
2008-12-31  Jakub Jelinek  
19
 
20
        PR middle-end/38676
21
        * gimplify.c (gimple_regimplify_operands): For GIMPLE_SWITCH
22
        only regimplify switch index.
23
 
24
2008-12-30  Richard Guenther  
25
 
26
        PR tree-optimization/38645
27
        * tree-ssa-ccp.c (fold_gimple_assign): Use the correct pointer
28
        type.
29
        * tree-ssa-dom.c (cprop_operand): Simplify.  Do not propagate
30
        volatileness changing operands.
31
 
32
2008-12-30  Steven Bosscher  
33
 
34
        * tree-cfg.c (verify_eh_throw_stmt_node): Return nonzero,
35
        to visit all EH statement and fix EH checking.
36
 
37
2008-12-31  Seongbae Park  
38
 
39
        Revert:
40
        2008-12-29  Seongbae Park  
41
        * tree-profile.c (tree_init_ic_make_global_vars): Make static
42
        variables TLS.
43
 
44
2008-12-30  Andrew Pinski  
45
 
46
        PR middle-end/38661
47
        * tree-switch-conversion.c (build_constructors): Test for wrapping of
48
        pos case.
49
 
50
2008-12-30  Steven Bosscher  
51
 
52
        PR middle-end/38584
53
        * ipa-inline.c (compute_inline_parameters): When not optimizing,
54
        don't compute the inline parameters, just set them to 0 instead.
55
 
56
2008-12-30  Paolo Bonzini  
57
 
58
        PR tree-optimization/38572
59
        * tree-vrp.c (vrp_visit_phi_node): Look out for invalid ranges
60
        and change them to VARYING.
61
 
62
2008-12-30  Richard Guenther  
63
 
64
        PR middle-end/38564
65
        * fold-const.c (fold_comparison): Use the correct result type.
66
 
67
2008-12-30  Dorit Nuzman  
68
            Ira Rosen  
69
 
70
        PR tree-optimization/38529
71
        * tree-vect-transform (vect_transform_stmt): Handle inner-loop stmts
72
        whose DEF is used in the loop-nest that is being vectorized, but
73
        outside the immediately enclosing loop.
74
 
75
2008-12-29  Seongbae Park  
76
 
77
        * tree-profile.c (tree_init_ic_make_global_vars): Make static
78
        variables TLS.
79
 
80
2008-12-29  Jakub Jelinek  
81
 
82
        PR c++/36191
83
        * tree-complex.c (expand_complex_libcall): Call
84
        maybe_clean_or_replace_eh_stmt and gimple_purge_dead_eh_edges
85
        instead of passing true as 3rd argument to gsi_replace.
86
 
87
2008-12-28  Uros Bizjak  
88
 
89
        PR middle-end/38652
90
        * dse.c: Include target.h.
91
        * Makefile.in (dse.o): Depend on $(TARGET_H).
92
 
93
2008-12-29  Jakub Jelinek  
94
 
95
        PR driver/38381
96
        * gcc.c (process_command): Accept also -b with configuration name
97
        in the next argument.
98
        * doc/invoke.texi (-b): Document that no hyphen is required if
99
        configuration name is in the next argument after -b.
100
 
101
2008-12-27  Jakub Jelinek  
102
 
103
        PR middle-end/38641
104
        * gimple-pretty-print.c (dump_binary_rhs): Print
105
        VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR,
106
        VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR, VEC_PACK_FIX_TRUNC_EXPR,
107
        VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR
108
        VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR similarly
109
        to COMPLEX_EXPR, MIN_EXPR and MAX_EXPR.
110
 
111
        PR middle-end/38633
112
        * tree-cfg.c (replace_block_vars_by_duplicates): Only call
113
        replace_by_duplicate_decl for VAR_DECLs or CONST_DECLs.
114
 
115
2008-12-24  Kazu Hirata  
116
 
117
        * Makefile.in (GTFILES): Add $(srcdir)/expr.h.
118
        * expr.h: Fix the declaration of block_clear_fn.
119
 
120
2008-12-23  Andrew Pinski  
121
 
122
        PR middle-end/38590
123
        * fold-const.c (fold_binary): Call fold_convert on arguments to
124
        fold_build2 for negative divide optimization.
125
 
126
2008-12-23  Jakub Jelinek  
127
 
128
        PR middle-end/31150
129
        * dse.c (struct store_info): Add const_rhs field.
130
        (clear_rhs_from_active_local_stores): Clear also const_rhs.
131
        (record_store): Try also cselib_expand_value_rtx to get a constant.
132
        (find_shift_sequence, get_stored_val): Use const_rhs instead of
133
        rhs if worthwhile.
134
        * cselib.c (cselib_record_sets): If !cselib_record_memory and
135
        there is just one set from read-only MEM, look at REG_EQUAL or
136
        REG_EQUIV note.
137
 
138
        * dse.c (struct store_info): Add redundant_reason field.
139
        (record_store): When storing the same constant as has been stored by
140
        an earlier store, set redundant_reason field to the earlier store's
141
        insn_info_t.  Don't delete cannot_delete insns.
142
        (find_shift_sequence): Remove read_info argument, add read_mode
143
        and require_cst arguments.  Return early if require_cst and
144
        constant wouldn't be returned.
145
        (get_stored_val): New function.
146
        (replace_read): Use it.
147
        (scan_insn): Put even cannot_delete insns with exactly 1 store
148
        into active_local_stores.
149
        (dse_step1): Don't delete cannot_delete insns.  Remove redundant
150
        constant stores if contains_cselib_groups and earlier store storing
151
        the same value hasn't been eliminated.
152
        (dse_step6): Renamed to dse_step7.  New function.
153
        (dse_step7): Renamed from dse_step6.
154
        (rest_of_handle_dse): Call dse_step6 and dse_step7 at the end.
155
        * cselib.c (cselib_expand_value_rtx): Don't wrap CONST_INTs
156
        into CONST unless really necessary.  Handle SUBREG, unary,
157
        ternary, bitfield and compares specially, to be able to simplify
158
        operations on constants.
159
        (expand_loc): Try to optimize LO_SUM.
160
 
161
        * dse.c (get_call_args): New function.
162
        (scan_insn): Don't handle BUILT_IN_BZERO.  For memset, attempt
163
        to get call arguments and if successful and both len and val are
164
        constants, handle the call as (mem:BLK) (const_int) store.
165
 
166
        * dse.c (struct store_info): Add is_large bool field, change
167
        positions_needed into a union of a bitmask and bitmap + count.
168
        (free_store_info): Free bitmap if is_large.
169
        (set_usage_bits): Don't look at stores where
170
        offset + width >= MAX_OFFSET.
171
        (set_position_unneeded, set_all_positions_unneeded,
172
        any_positions_needed_p, all_positions_needed_p): New static inline
173
        functions.
174
        (record_store): Handle BLKmode stores of CONST_INT, if
175
        MEM_SIZE is set on the MEM.  Use the new positions_needed
176
        accessor inlines.
177
        (replace_read): Handle reads from BLKmode CONST_INT stores.
178
        (check_mem_read_rtx): Use all_positions_needed_p function.
179
        (dse_step1): Free large positions_needed bitmaps and clear is_large.
180
 
181
        * dse.c (struct store_info): Change begin and end types to
182
        HOST_WIDE_INT.
183
 
184
        * dse.c (record_store): Fix check for unused store.
185
 
186
        * expr.c (block_clear_fn): No longer static.
187
        * expr.h (block_clear_fn): Declare.
188
        * dse.c (scan_insn): Memset and bzero can just read their arguments.
189
 
190
        * config/i386/i386.c (expand_setmem_via_rep_stos): Add ORIG_VALUE
191
        argument.  If ORIG_VALUE is const0_rtx and COUNT is constant,
192
        set MEM_SIZE on DESTMEM.
193
        (ix86_expand_setmem): Adjust callers.
194
 
195
        PR target/38488
196
        * expr.h (get_mem_align_offset): New prototype.
197
        * emit-rtl.c (get_mem_align_offset): New function.
198
        * config/i386/i386.c (expand_movmem_via_rep_mov): Set MEM_SIZE
199
        correctly.
200
        (expand_constant_movmem_prologue, expand_constant_setmem_prologue):
201
        New functions.
202
        (ix86_expand_movmem): Optimize if COUNT_EXP
203
        is constant, desired_align > align and dst & (desired_align - 1)
204
        is computable at compile time.
205
        (ix86_expand_setmem): Likewise.
206
 
207
        * builtins.c (get_memory_rtx): Try to derive MEM_ATTRS from not yet
208
        resolved SAVE_EXPR or POINTER_PLUS_EXPR.
209
 
210
2008-12-22  Uros Bizjak  
211
 
212
        * config/alpha/elf.h (ASM_OUTPUT_EXTERNAL): New macro.
213
 
214
        PR target/34571
215
        * config/alpha/predicates.md (symbolic_operand): Return 1 for a
216
        label_ref with an offset.
217
 
218
2008-12-21  Andrew Pinski  
219
 
220
        PR target/38300
221
        * configure: Regenerate.
222
 
223
2008-12-21  Richard Sandiford  
224
 
225
        * config/mips/mips-dsp.md (mips_lbux): Turn into a define_expand,
226
        changing operand 1 to a pmode_register_operand.
227
        (mips_lhx, mips_lwx): Likewise.
228
        (mips_lbux_, mips_lhx_, mips_lwx_): New patterns.
229
        * config/mips/mips.c (mips_prepare_builtin_arg): Get the mode of
230
        the value from the argument expression.
231
 
232
2008-12-21  Jan Hubicka  
233
            Kai Tietz  
234
 
235
        * i386.md (UNSPEC_MS_TO_SYSV_CALL): New constant.
236
        (call_1_rex64_ms_sysv, call_value_0_rex64_ms_sysv,
237
        call_value_1_rex64_ms_sysv): New patterns.
238
        * i386.c (function_arg_ms_64): Pass magical value of -2 as callarg.
239
        (ix86_expand_call): Emit extra clobbers for ms->sysv ABI calls.
240
 
241
2008-12-21  Uros Bizjak  
242
 
243
        * config/alpha/alpha.c (alpha_pad_noreturn): New static function.
244
        (alpha_reorg): Call alpha_pad_noreturn.
245
 
246
2008-12-21  Denis Chertykov  
247
 
248
        * config/avr/avr.md ("andsi3"): Fix wrong cc attribute.
249
 
250
2008-12-20  Eric Botcazou  
251
 
252
        PR target/37610
253
        * configure.ac (gcc_cv_as_cfi_advance_working): Fall back to 'no'
254
        if readelf is nowhere to be found.
255
        * configure: Regenerate.
256
 
257
2008-12-19  Andrew Haley  
258
 
259
        * builtins.c, tree-ssa-loop-ivopts.c, fixed-value.c:
260
        Fix comments.
261
 
262
2008-12-19  Richard Earnshaw  
263
 
264
        PR target/38548
265
        * arm/t-linux (LIB1ASMFUNCS): Add _arm_addsubdf3 and _arm_addsubsf3.
266
        * arm/lib1funcs.asm (clzsi2): Use RET macro for return instruction.
267
 
268
2008-12-19  Richard Earnshaw  
269
 
270
        PR bootstrap/38578
271
        * arm.c (load_multiple_sequence): Initialize ORDER array.
272
        (store_multiple_sequence): Likewise.
273
        (output_move_double): Make reg0 unsigned.
274
        (arm_output_epilogue): Make amount unsigned.
275
        (arm_expand_prologue): Move declaration of dwarf before block
276
        statements.
277
 
278
2008-12-19  Steve Ellcey  
279
 
280
        * df-scan.c (df_hard_reg_init): Move declaration of i.
281
 
282
2008-12-19  Jakub Jelinek  
283
 
284
        PR bootstrap/37739
285
        * config.host: For powerpc*-*-linux* host with 32-bit GCC,
286
        use rs6000/x-linux-relax snippet if ld is new enough,
287
        otherwise use rs6000/x-linux-O1.
288
        * config/rs6000/x-linux-relax: New file.
289
        * config/x-cflags-O1: New file.
290
 
291
2008-12-18  Joseph Myers  
292
 
293
        * config/rs6000/rs6000.c (rs6000_generate_compare): Condition
294
        choice of e500 comparison instructions on flag_finite_math_only &&
295
        !flag_trapping_math, not flag_unsafe_math_optimizations.
296
        * config/rs6000/rs6000.md (abstf2): Condition choice of e500
297
        instructions on flag_finite_math_only && !flag_trapping_math, not
298
        flag_unsafe_math_optimizations.
299
        (bltgt, sltgt): Disable for TARGET_HARD_FLOAT && !TARGET_FPRS.
300
        * config/rs6000/spe.md (cmpsfeq_gpr, tstsfeq_gpr, cmpsfgt_gpr,
301
        tstsfgt_gpr, cmpsflt_gpr, tstsflt_gpr, cmpdfeq_gpr, tstdfeq_gpr,
302
        cmpdfgt_gpr, tstdfgt_gpr, cmpdflt_gpr, tstdflt_gpr, cmptfeq_gpr,
303
        tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
304
        Condition choice of comparison instructions on
305
        flag_finite_math_only && !flag_trapping_math, not
306
        flag_unsafe_math_optimizations.
307
 
308
2008-12-18  Ralf Wildenhues  
309
 
310
        * configure: Regenerate.
311
 
312
2008-12-18  Jan Hubicka  
313
            Kai Tietz  
314
 
315
        * df-scan.c (persistent_obstack, df_invalidated_by_call): Remove.
316
        (df_scan_start_dump, df_get_call_refs, df_hard_reg_init): Rename
317
        df_invalidated_by_call to invalidated_by_call_regset.
318
        * df.h (df_invalidated_by_call): Remove.
319
        * regclass.c (regs_invalidated_by_call_regset, persistent_obstack):
320
        New variables.
321
        (init_reg_sets_1): Initialize regs_invalidated_by_call_regset.
322
        (globalize_reg): Likewise.
323
        * df-problems.c (df_rd_local_compute, df_lr_confluence_n,
324
        df_byte_lr_alloc): Rename df_invalidated_by_call to
325
        invalidated_by_call_regset.
326
        * basic-block.h (regs_invalidated_by_call_regset): Declare.
327
 
328
2008-12-18  Jan Hubicka  
329
            Kai Tietz  
330
 
331
        * ira-cost.c (copy_cost): Lazilly initialize move_cost if needed.
332
 
333
2008-12-18  Jan Hubicka  
334
            Kai Tietz  
335
 
336
        * i386.h (CONDITIONAL_REGISTER_USAGE): Initialize for current
337
        function ABI.
338
        * i386.c (ix86_call_abi_override): Do not trigger target re-init and
339
        do not try to modify call used regs.
340
        (ix86_maybe_switch_abi): New function.
341
        (TARGET_EXPAND_TO_RTL_HOOK): New macro.
342
 
343
2008-12-18  Kenneth Zadeck  
344
 
345
        PR rtl-optimization/37922
346
        * dse.c (bb_info): Added regs_live field.
347
        (look_for_hardregs): New function.
348
        (replace_read): Added regs_live parameter and code to check that
349
        shift sequence does not clobber live hardregs.
350
        (check_mem_read_rtx): Added parameter to replace_read.
351
        (dse_step1): Added regs_live bitmap and initialize it.
352
        (rest_of_handle_dse): Added DF_NOTES problem and earlier call to
353
        df_analyze.
354
        * df-problems.c Renamed to df_simulate_initialize_backwards.
355
        (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards.
356
        (df_simulate_artificial_refs_at_top): Renamed to
357
        df_simulate_finalize_backwards.
358
        (df_simulate_initialized_forwards, df_simulate_one_insn_forwards,
359
        df_simulate_finalize_backwards): New functions.
360
        * df.h (df_simulate_artificial_refs_at_end): Renamed to
361
        df_simulate_initialize_backwards.
362
        (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards.
363
        (df_simulate_artificial_refs_at_top): Renamed to
364
        df_simulate_finalize_backwards.
365
        (df_simulate_initialized_forwards, df_simulate_one_insn_forwards,
366
        df_simulate_finalize_backwards): New functions.
367
        * ra-conflict.c (global_conflicts): Renamed
368
        df_simulate_artificial_refs_at_end to
369
        df_simulate_initialize_backwards.
370
        * sel-sched.c (propagate_lv_set): Renamed df_simulate_one_insn to
371
        df_simulate_one_insn_backwards.
372
        * ifcvt.c (dead_or_predicable): Renamed
373
        df_simulate_artificial_refs_at_end to
374
        df_simulate_initialize_backwards. Renamed df_simulate_one_insn to
375
        df_simulate_one_insn_backwards.
376
        * recog.c (peephole2_optimize): Ditto.
377
        * rtl-factoring (collect_pattern_seqs, clear_regs_live_in_seq): Ditto.
378
 
379
2008-12-18  Jakub Jelinek  
380
 
381
        PR middle-end/38533
382
        * tree-ssa-reassoc.c (remove_visited_stmt_chain): New function.
383
        (rewrite_expr_tree): Add moved argument, move stmts together if
384
        needed.  Call remove_visited_stmt_chain.
385
        (linearize_expr_tree): Don't move stmts here.
386
        (reassociate_bb): Call remove_visited_stmt_chain if num ops is 1.
387
        Adjust rewrite_expr_tree caller.
388
 
389
        PR middle-end/38505
390
        * tree-ssa.c (useless_type_conversion_p_1): Return
391
        false if inner_type is incomplete and outer_type is complete.
392
 
393
2008-12-17  Sebastian Pop  
394
 
395
        * doc/install.texi (Prerequisites): Document PPL and CLooG-PPL
396
        dependences and the configure options.
397
        (Configuration): Document --with-cloog, --with-ppl, --with-cloog-lib,
398
        --with-ppl-lib, --with-cloog-incude, --with-ppl-include.
399
 
400
2008-12-17  H.J. Lu  
401
 
402
        PR middle-end/38556
403
        * calls.c (expand_call): Check outgoing_reg_parm_stack_space
404
        only if REG_PARM_STACK_SPACE is defined.
405
 
406
2008-12-17  Jan Hubicka  
407
            Kai Tietz  
408
 
409
        * calls.c (expand_call): Do not sibcall if
410
        outgoing_reg_parm_stack_space does not match.
411
 
412
2008-12-16  Anatoly Sokolov  
413
 
414
        * config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81,
415
        atmega16m1, at90scr100, atmega128rfa1, m3000f, m3000s and m3001b
416
        devices.
417
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
418
        * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
419
 
420
2008-12-16  Hariharan Sandanagobalane  
421
 
422
        PR target/38842
423
        * config/picochip/picochip.opt (mae): Squeezed the comments onto one
424
        line.
425
 
426
2008-12-16  Rainer Orth  
427
 
428
        * configure.ac (gcc_cv_ld_hidden): Sun ld on Solaris 9 and up
429
        supports hidden.
430
        * configure: Regenerate.
431
 
432
2008-12-16  Richard Earnshaw  
433
 
434
        PR target/37436
435
        * arm.c (arm_legitimate_index): Only accept addresses that are in
436
        canonical form.
437
        * predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
438
        * arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
439
        for operand1.
440
        (extendqisi2): Likewise.
441
        (arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
442
        predicate for operand1.
443
 
444
2008-12-15  Adam Nemet  
445
 
446
        * config/mips/mips.c (mips_output_conditional_branch): Assert that
447
        openrands[1] is a CODE_LABEL.
448
 
449
2008-12-15  Richard Sandiford  
450
 
451
        * config/mips/mips.c (mips_expand_builtin_direct): Set TARGET to
452
        the result of mips_prepare_builtin_target.
453
 
454
2008-12-15  Richard Sandiford  
455
 
456
        * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_abicalls
457
        if TARGET_ABICALLS is true.
458
 
459
2008-12-15  Richard Sandiford  
460
 
461
        * config/mips/mips.md (move_doubleword_fpr): Use
462
        TARGET_FLOAT64 && !TARGET_64BIT to detect the mxhc1 case.
463
 
464
2008-12-15  Hariharan Sandanagobalane  
465
 
466
        * config/picochip/picochip.c (picochip_override_options): Disable CFI
467
        asm and change the signature of brev and byteSwap functions to use
468
        unsigned values.
469
        * config/picochip/picochip.md (commsTestPort): This is a complex
470
        instruction and should not be vliwed. Don't set insn type.
471
 
472
2008-12-15  Wolfgang Gellerich  
473
        * config/s390/s390.c (s390_swap_cmp): New function.
474
        (s390_non_addr_reg_read_p): New function.
475
        (s390_z10_optimize_cmp): New function.
476
        (s390_reorg): Added call to s390_optimize_cmp.
477
        * config/s390/s390.md (nop1): New insn.
478
 
479
2008-12-12  Rainer Emrich  
480
 
481
        PR bootstrap/38383
482
        * pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Don't hardcode search path
483
        for the milli.a library.
484
 
485
2008-12-12  Andrew Pinski  
486
            Peter Bergner  
487
 
488
        PR target/24779
489
        * config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the
490
        TOC into the call pattern.
491
        (call_indirect_aix64): Likewise.
492
        (call_value_indirect_aix32): Likewise.
493
        (call_value_indirect_aix64): Likewise.
494
        (call_indirect_nonlocal_aix32_internal): New insn and split patterns
495
        to split off the load of the TOC.
496
        (call_indirect_nonlocal_aix32): Enable only after reload.
497
        (call_indirect_nonlocal_aix64_internal): New insn and split patterns
498
        to split off the load of the TOC.
499
        (call_indirect_nonlocal_aix64): Enable only after reload.
500
        (call_value_indirect_nonlocal_aix32_internal): New insn and split
501
        patterns to split off the load of the TOC.
502
        (call_value_indirect_nonlocal_aix32): Enable only after reload.
503
        (call_value_indirect_nonlocal_aix64_internal): New insn and split
504
        patterns to split off the load of the TOC.
505
        (call_value_indirect_nonlocal_aix64): Enable only after reload.
506
 
507
2008-12-12  Andreas Schwab  
508
 
509
        Revert:
510
        2008-12-12  Andreas Schwab  
511
        * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
512
        a BARRIER insn.
513
 
514
2008-12-12  Zdenek Dvorak  
515
 
516
        PR tree-optimization/32044
517
        * tree-scalar-evolution.h (expression_expensive_p): Declare.
518
        * tree-scalar-evolution.c (expression_expensive_p): New function.
519
        (scev_const_prop): Avoid introducing expensive expressions.
520
        * tree-ssa-loop-ivopts.c (may_eliminate_iv): Ditto.
521
 
522
2008-12-12  Sebastian Pop  
523
 
524
        PR middle-end/38409
525
        * graphite.c (nb_reductions_in_loop): Use simple_iv.
526
 
527
2008-12-12  Dwarakanath Rajagopal  
528
 
529
        * config/i386/x86intrin.h: New header file to support all x86
530
        intrinsics
531
        * config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h
532
 
533
2008-12-12  H.J. Lu  
534
 
535
        PR target/38402
536
        * gcc/doc/md.texi: Remove Y and document Yz, Y2, Yi and Ym
537
        constraints for x86.
538
 
539
2008-12-12  Andreas Schwab  
540
 
541
        * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
542
        a BARRIER insn.
543
 
544
2008-12-12  Uros Bizjak  
545
 
546
        * config/alpha/sync.md (memory_barrier): Remove mem:BLK from operands.
547
        Use Pmode for scratch reg.
548
        (*mb_internal): Use (match_dup 0) for unspec operand.
549
 
550
2008-12-12  Alexandre Oliva  
551
 
552
        * tree-vrp.c (extract_range_from_binary_expr): Don't shift by
553
        floor_log2 of zero.  Negate widened zero.
554
 
555
2008-12-12  Ben Elliston  
556
 
557
        * config/fp-bit.c (nan): Rename from this ...
558
        (makenan): ... to this.
559
 
560
2008-12-11  Adam Nemet  
561
 
562
        * config/mips/mips.md (*branch_bit,
563
        *branch_bit_inverted): Renumber operands so that the
564
        label becomes operands[1].
565
 
566
2008-12-11  Harsha Jagasia  
567
 
568
        PR tree-optimization/38446
569
        * graphite.c (register_bb_in_sese): New.
570
        (bb_in_sese_p): Check if bb belongs to sese region by explicitly
571
        looking at the bbs in the region.
572
        * graphite.h (sese): Add region_basic_blocks pointer set to
573
        structure and initialize at the time of defining new scop.
574
 
575
2008-12-11  Tobias Grosser  
576
 
577
        * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
578
        (find_params_in_bb): Do not free data refs.
579
        (free_graphite_bb): Add FIXME on disabled free_data_refs.
580
 
581
2008-12-11  Sebastian Pop  
582
 
583
        * graphite.c (struct ivtype_map_elt): New.
584
        (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
585
        new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
586
        gcc_type_for_cloog_iv): New.
587
        (loop_iv_stack_patch_for_consts): Use the type of the induction
588
        variable from the original loop, except for the automatically
589
        generated loops, i.e., in the case of a strip-mined loop, in
590
        which case there is no original loop: in that case just use
591
        integer_type_node.
592
        (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
593
        (free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
594
        (clast_name_to_gcc): Accept params to be NULL.
595
        (clast_to_gcc_expression): Take an extra parameter for the type.
596
        Convert to that type all the expressions built by this function.
597
        (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
598
        (graphite_translate_clast_equation): Compute the type of the
599
        clast_equation before translating its LHS and RHS.
600
        (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
601
        (graphite_create_new_loop): Compute the type of the induction
602
        variable before translating the lower and upper bounds and before
603
        creating the induction variable.
604
        (rename_variables_from_edge, rename_phis_end_scop): New.
605
        (copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
606
        (sese_add_exit_phis_edge): Do not use integer_zero_node.
607
        (find_cloog_iv_in_expr, compute_cloog_iv_types_1,
608
        compute_cloog_iv_types): New.
609
        (gloog): Call compute_cloog_iv_types before starting the
610
        translation of the clast.
611
 
612
        * graphite.h (struct graphite_bb): New field cloog_iv_types.
613
        (GBB_CLOOG_IV_TYPES): New.
614
        (debug_ivtype_map): Declared.
615
        (oldiv_for_loop): New.
616
 
617
2008-12-10  Tobias Grosser  
618
 
619
        PR middle-end/38459
620
        * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
621
        (param_index): Assert if parameter is not know after parameter
622
        detection.
623
        (find_params_in_bb): Detect params directly in GBB_CONDITIONS.
624
        (find_scop_parameters): Mark, that we have finished parameter
625
        detection.
626
        (graphite_transform_loops): Move condition detection before parameter
627
        detection.
628
        * graphite.h (struct scop): Add SCOP_ADD_PARAMS.
629
 
630
2008-12-11  John David Anglin  
631
 
632
        PR testsuite/35677
633
        * emutls.c (__emutls_get_address): Make sure offset is really zero
634
        before initializing the object's offset.
635
 
636
2008-12-11  Jakub Jelinek  
637
 
638
        PR c++/38253
639
        * gimplify.c (gimplify_init_constructor): Don't force constructor
640
        into memory if there is just one nonzero element.
641
 
642
2008-12-11  Sebastian Pop  
643
 
644
        Fix testsuite/gfortran.dg/graphite/id-4.f90.
645
        * graphite.c (scan_tree_for_params): Do not compute the multiplicand
646
        when not needed.
647
 
648
2008-12-11  Sebastian Pop  
649
 
650
        * graphite.c (build_scops_1): Initialize open_scop.exit
651
        and sinfo.last.
652
 
653
2008-12-11  Sebastian Pop  
654
            Jan Sjodin  
655
            Harsha Jagasia  
656
 
657
        PR middle-end/37852
658
        PR middle-end/37883
659
        PR middle-end/37928
660
        PR middle-end/37980
661
        PR middle-end/38038
662
        PR middle-end/38039
663
        PR middle-end/38073
664
        PR middle-end/38083
665
        PR middle-end/38125
666
 
667
        * tree-phinodes.c (remove_phi_nodes): New, extracted from...
668
        * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
669
        ... here.
670
        * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
671
        * Makefile.in (graphite.o): Depend on value-prof.h.
672
        (graphite.o-warn): Removed -Wno-error.
673
        * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list
674
        to be a NULL pointer.  Call update_stmt.  Return the newly created
675
        cannonical induction variable.
676
 
677
        * graphite.h (debug_rename_map): Declared.  Fix some comments.
678
 
679
        * graphite.c: Reimplement the code generation from graphite to gimple.
680
        Include value-prof.h.
681
        (loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
682
        (get_old_iv_from_ssa_name): Removed.
683
        (graphite_stmt_p): New.
684
        (new_graphite_bb): Test for useful statements before building a
685
        graphite statement for the basic block.
686
        (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
687
        in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without reason.
688
        (recompute_all_dominators, graphite_verify,
689
        nb_reductions_in_loop, graphite_loop_normal_form): New.
690
        (scop_record_loop): Call graphite_loop_normal_form.
691
        (build_scop_loop_nests): Iterate over all the blocks of the
692
        function instead of relying on the incomplete information from
693
        SCOP_BBS.  Return the success of the operation.
694
        (find_params_in_bb): Use the data from GBB_DATA_REFS.
695
        (add_bb_domains): Removed.
696
        (build_loop_iteration_domains): Don't call add_bb_domains.
697
        Add the iteration domain only to the basic blocks that have been
698
        translated to graphite.
699
        (build_scop_conditions_1): Add constraints only if the basic
700
        block have been translated to graphite.
701
        (build_scop_data_accesses): Completely disabled until data
702
        dependence is correctly implemented.
703
        (debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
704
        (remove_all_edges_1, remove_all_edges): Removed.
705
        (get_new_name_from_old_name): New.
706
        (graphite_rename_variables_in_stmt): Renamed.
707
        rename_variables_in_stmt.  Call get_new_name_from_old_name.
708
        Use replace_exp and update_stmt.
709
        (is_old_iv): Renamed is_iv.
710
        (expand_scalar_variables_stmt): Extra parameter for renaming map.
711
        Use replace_exp and update_stmt.
712
        (expand_scalar_variables_expr): Same.  Use the map to get the
713
        new names for the renaming of induction variables and for the
714
        renaming of variables after a basic block has been copied.
715
        (expand_scalar_variables): Same.
716
        (graphite_rename_variables): Renamed rename_variables.
717
        (move_phi_nodes): Removed.
718
        (get_false_edge_from_guard_bb): New.
719
        (build_iv_mapping): Do not insert the induction variable of a
720
        loop in the renaming iv map if the basic block does not belong
721
        to that loop.
722
        (register_old_new_names, graphite_copy_stmts_from_block,
723
        copy_bb_and_scalar_dependences): New.
724
        (translate_clast): Heavily reimplemented: copy basic blocks,
725
        do not move them.  Finally, in call cleanup_tree_cfg in gloog.
726
        At each translation step call graphite_verify ensuring the
727
        consistency of the SSA, loops and dominators information.
728
        (collect_virtual_phis, find_vdef_for_var_in_bb,
729
        find_vdef_for_var_1, find_vdef_for_var,
730
        patch_phis_for_virtual_defs): Removed huge hack.
731
        (mark_old_loops, remove_dead_loops, skip_phi_defs,
732
        collect_scop_exit_phi_args, patch_scop_exit_phi_args,
733
        gbb_can_be_ignored, scop_remove_ignoreable_gbbs): Removed.
734
        (remove_sese_region, ifsese, if_region_entry, if_region_exit,
735
        if_region_get_condition_block, if_region_set_false_region,
736
        create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
737
        sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb,
738
        sese_add_exit_phis_edge, sese_add_exit_phis_var,
739
        rewrite_into_sese_closed_ssa): New.
740
        (gloog): Remove dead code.  Early return if code cannot be
741
        generated.  Call cleanup_tree_cfg once the scop has been code
742
        generated.
743
        (graphite_trans_scop_block, graphite_trans_loop_block): Do not
744
        block loops with less than two loops.
745
        (graphite_apply_transformations): Remove the call to
746
        scop_remove_ignoreable_gbbs.
747
        (limit_scops): When build_scop_loop_nests fails, continue on next
748
        scop.  Fix open_scop.entry.
749
        (graphite_transform_loops): Call recompute_all_dominators: force the
750
        recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
751
        Call initialize_original_copy_tables and free_original_copy_tables
752
        to be able to copy basic blocks during code generation.
753
        When build_scop_loop_nests fails, continue on next scop.
754
        (value_clast): New union.
755
        (clast_to_gcc_expression): Fix type cast warning.
756
 
757
2008-12-10  Richard Guenther  
758
 
759
        PR tree-optimization/36792
760
        * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
761
        tcc_binary.
762
 
763
2008-12-10  Daniel Berlin  
764
 
765
        PR tree-optimization/36792
766
        * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal set.
767
 
768
2008-12-10  Alexandre Oliva  
769
 
770
        PR target/37033
771
        * dwarf2out.c (saved_do_cfi_asm): New.
772
        (dwarf2out_do_frame): Take it into account.
773
        (dwarf2out_d_cfi_asm): Likewise.  Set it when appropriate.
774
 
775
2008-12-10  Alexandre Oliva  
776
 
777
        PR middle-end/38271
778
        * tree-sra.c (sra_build_bf_assignment): Avoid warnings for
779
        variables initialized from SRAed bit fields.
780
 
781
2008-12-10  Martin Guy  
782
 
783
        PR target/37668
784
        * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
785
        result will be in an FPU register.
786
 
787
2008-12-10  Eric Botcazou  
788
 
789
        PR target/37170
790
        PR target/38448
791
        * final.c (output_addr_const) : Call assemble_external
792
        on the associated SYMBOL_REF_DECL node, if any.
793
 
794
2008-12-09  David Daney  
795
 
796
        * config/mips/sync.md (sync__12): Replace
797
        MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND.
798
        (sync_old__12): Remove third paramater to
799
        MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP
800
        with MIPS_SYNC_OLD_OP_12_AND.
801
        (sync_new__12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP
802
        with MIPS_SYNC_NEW_OP_12_AND.
803
        (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with
804
        MIPS_SYNC_OP_12_XOR, reduce length attribute to 40.
805
        (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12
806
        macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with
807
        MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40.
808
        (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with
809
        MIPS_SYNC_NEW_OP_12_XOR.
810
        * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
811
        MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP,
812
        MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12,
813
        MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT,
814
        MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten
815
        to implement new __sync_nand semantics.
816
        (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and
817
        remove third parameter.
818
        (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
819
        MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed.
820
        (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND.
821
        (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR.
822
        (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND.
823
        (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR.
824
        (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND.
825
        (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR
826
 
827
2008-12-09  Tobias Grosser  
828
 
829
        * graphite.c (graphite_transform_loops): Always call find_transform ()
830
        in ENABLE_CHECKING.  So we test these code paths, even if we do not
831
        generate code.
832
 
833
2008-12-09  Tobias Grosser  
834
 
835
        * graphite.c (print_graphite_bb): Fix printing to file != dump_file.
836
 
837
2008-12-09  Jakub Jelinek  
838
 
839
        PR middle-end/38454
840
        * function.h (struct function): Add always_inline_functions_inlined.
841
        * ipa-inline.c (cgraph_early_inlining): Set it to true.
842
        * tree-optimize.c (execute_fixup_cfg): Likewise.
843
        * builtins.c (avoid_folding_inline_builtin): New function.
844
        (fold_call_expr): Don't optimize always_inline builtins before
845
        inlining.
846
        (fold_call_stmt): Likewise.
847
        (fold_builtin_call_array): Likewise.  Don't call
848
        fold_builtin_varargs for BUILT_IN_MD builtins.
849
 
850
        PR tree-optimization/37416
851
        * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.
852
 
853
2008-12-09  Janis Johnson  
854
 
855
        * doc/sourcebuild.texi (Test Directives): Fix formatting.
856
 
857
2008-12-09  Vladimir Makarov  
858
 
859
        * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
860
 
861
        * doc/invoke.texi (-fira-region): Describe new option.
862
        (-fira-algorithm): Change the values.
863
 
864
        * ira-conflicts.c (build_conflict_bit_table,
865
        build_allocno_conflicts): Use ira_reg_classes_intersect_p.
866
        (ira_build_conflicts): Use flag flag_ira_region instead of
867
        flag_ira_algorithm.  Prohibit usage of callee-saved likely spilled
868
        base registers for allocnos crossing calls.
869
 
870
        * flags.h (enum ira_algorithm): Redefine.
871
        (enum ira_region): New.
872
        (flag_ira_region): New.
873
 
874
        * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
875
        instead of flag_ira_algorithm.
876
 
877
        * toplev.c (flag_ira_algorithm): Change the initial value.
878
        (flag_ira_region): New.
879
 
880
        * ira-int.h (ira_reg_classes_intersect_p,
881
        ira_reg_class_super_classes): New.
882
 
883
        * ira-color.c (update_copy_costs): Use
884
        ira_reg_classes_intersect_p.  Use right class to find hard reg index.
885
        (update_conflict_hard_regno_costs): Ditto.  Add a new parameter.
886
        (assign_hard_reg): Ditto.  Pass additional argument to
887
        update_conflict_hard_regno_costs.  Do not uncoalesce for priority
888
        coloring.
889
        (allocno_priorities, setup_allocno_priorities,
890
        allocno_priority_compare_func): Move before color_allocnos.
891
        (color_allocnos): Add priority coloring.  Use flag flag_ira_region
892
        instead of flag_ira_algorithm.
893
        (move_spill_restore): Check classes of the same reg allocno from
894
        different regions.
895
        (update_curr_costs): Use ira_reg_classes_intersect_p.
896
        (ira_reassign_conflict_allocnos): Ditto.
897
 
898
        * opts.c (decode_options): Always set up flag_ira.  Set up
899
        flag_ira_algorithm.  Warn CB can not be used for architecture.
900
        (common_handle_option): Modify code for -fira-algorithm.  Add code
901
        to process -fira-region.
902
 
903
        * ira-lives.c (update_allocno_pressure_excess_length): Process
904
        superclasses too.
905
        (set_allocno_live, clear_allocno_live, mark_reg_live,
906
        mark_reg_dead, process_bb_node_lives): Ditto.
907
 
908
        * ira-emit.c (ira_emit): Fix insn codes.
909
 
910
        * ira-build.c (propagate_allocno_info): Use flag flag_ira_region
911
        instead of flag_ira_algorithm.
912
        (allocno_range_compare_func): Ignore classes for priority coloring.
913
        (setup_min_max_conflict_allocno_ids): Ditto.
914
        (ira_flattening): Use ira_reg_classes_intersect_p.
915
 
916
        * genpreds.c (write_enum_constraint_num): Output CONSTRAINT__LIMIT.
917
 
918
        * common.opt (fira-algorithm): Modify.
919
        (fira-region): New.
920
 
921
        * ira.c (setup_class_hard_regs): Initialize.
922
        (setup_cover_and_important_classes): Modify code setting class
923
        related info for priority coloring.
924
        (setup_class_translate): Ditto.
925
        (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
926
        (setup_reg_class_intersect_union): Rename to
927
        setup_reg_class_relations.  Add code for setting up new variables.
928
        (find_reg_class_closure): Do not check targetm.ira_cover_classes.
929
        (ira): Use flag flag_ira_region instead of flag_ira_algorithm.
930
 
931
        * ira-costs.c (common_classes): New.
932
        (print_costs): Use flag flag_ira_region instead of flag_ira_algorithm.
933
        (find_allocno_class_costs): Ditto.  Use common_classes.  Translate
934
        alt_class.
935
        (ira_costs): Allocate/deallocate common_classes.
936
 
937
        * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
938
        (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
939
        R02A_REGS.
940
 
941
        * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
942
        smallest_mode_for_size.
943
 
944
2008-12-10  Ben Elliston  
945
 
946
        * config/rs6000/linux-unwind.h (get_regs): Constify casts.
947
 
948
2008-12-09  Jan Hubicka  
949
 
950
        * predict.c (estimate_bb_frequencies): Fix test if profile is present.
951
 
952
2008-12-09  Jakub Jelinek  
953
 
954
        PR tree-optimization/35468
955
        * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant
956
        string on LHS.
957
 
958
2008-12-09  Richard Guenther  
959
 
960
        PR tree-optimization/38445
961
        * tree-ssa-structalias.c (emit_pointer_definition): Only visit
962
        names once.
963
        (emit_alias_warning): Adjust.
964
 
965
2008-12-09  Andrew Haley  
966
 
967
        * fixed-value.c (do_fixed_add): Add comment.
968
        * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
969
        * builtins.c (fold_builtin_sqrt): Likewise.
970
 
971
2008-12-09  Kai Tietz  
972
 
973
        PR/38366
974
        * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
975
        case.
976
        * calls.c (nitialize_argument_information): Add fntype argument
977
        and use it for calls.promote_function_args.
978
        (expand_call): Pass fntype to aggregate_value_p if no fndecl
979
        available and pass additional fntype to
980
        initialize_argument_information.
981
        * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
982
        to get function abi type.
983
        (init_cumulative_args): Use for abi kind detection fntype, when no
984
        fndecl is available.
985
 
986
2008-12-09  Andreas Krebbel  
987
 
988
        * config/s390/s390.md (movti, movdi_64, movdi_31,
989
        *movsi_zarch, *movhi, *movqi, *mov_64, *mov_31,
990
        *mov_64dfp, *mov_64, *mov_31, mov): Remove
991
        Q->Q alternative.
992
        (Integer->BLKmode splitter): Removed.
993
 
994
2008-12-08  Uros Bizjak  
995
 
996
        * config/alpha/alpha.c (alpha_set_memflags): Process memory
997
        references in full insn sequence.
998
 
999
2008-12-09  Jason Merrill  
1000
 
1001
        * gimplify.c (gimplify_init_constructor): Revert to using < rather
1002
        than <= for sparseness test.
1003
 
1004
        PR c++/38410
1005
        * gimplify.c (gimplify_init_constructor): Don't write out a static
1006
        copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse
1007
        initializers.
1008
 
1009
2008-12-09  Tobias Grosser  
1010
 
1011
        PR middle-end/38084
1012
        Fix testsuite/gfortran.dg/graphite/id-3.f90.
1013
        * graphite.c (scopdet_basic_block_info): Fix bug that found some
1014
        regions more than once.
1015
 
1016
2008-12-09  Ben Elliston  
1017
 
1018
        * emutls.c (__emutls_get_address): Prototype.
1019
        (__emutls_register_common): Likewise.
1020
 
1021
        * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast.
1022
 
1023
2008-12-09  Ben Elliston  
1024
 
1025
        * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v.
1026
 
1027
2008-12-08  Steve Ellcey  
1028
 
1029
        * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
1030
        (nonlocal_goto_receiver): New instruction.
1031
 
1032
2008-12-08  Jakub Jelinek  
1033
 
1034
        PR c/35443
1035
        * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR.
1036
 
1037
        PR c/35442
1038
        * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
1039
        VIEW_CONVERT_EXPR the same as CASE_CONVERT.
1040
 
1041
2008-12-08  Richard Henderson  
1042
 
1043
        PR 38240
1044
        * tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
1045
        (SET_TYPE_MODE): New.
1046
        * c-decl.c (parser_xref_tag): Use it.
1047
        (finish_enum): Likewise.
1048
        * tree.c (build_pointer_type_for_mode): Likewise.
1049
        (build_reference_type_for_mode, build_index_type): Likewise.
1050
        (build_range_type, make_vector_type): Likewise.
1051
        (build_common_tree_nodes_2): Likewise.
1052
        * stor-layout.c (compute_record_mode): Likewise.
1053
        (finalize_type_size, layout_type, make_fract_type): Likewise.
1054
        (make_accum_type, initialize_sizetypes): Likewise.
1055
        (vector_type_mode): New.
1056
        * function.c (allocate_struct_function): Call
1057
        invoke_set_current_function_hook before querying anything else.
1058
 
1059
        * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
1060
 
1061
2008-12-08  Luis Machado  
1062
 
1063
        * alias.c (find_base_term): Synch LO_SUM handling with what
1064
        find_base_value does.
1065
 
1066
2008-12-08  Andrew Haley  
1067
            Kamaraju Kusumanchi  
1068
 
1069
        * gimple.h (gimple_build_try): Fix declaration.
1070
 
1071
        * builtins.c (fold_builtin_sqrt): Don't use a conditional operator.
1072
        * fixed-value.c (do_fixed_add): Likewise.
1073
        * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
1074
 
1075
2008-12-08  Jakub Jelinek  
1076
 
1077
        PR middle-end/36802
1078
        * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl
1079
        on parallel and task contexts.
1080
 
1081
2008-12-07  Eric Botcazou  
1082
 
1083
        * gimple.c (recalculate_side_effects) : New case.
1084
 
1085
2008-12-07  Richard Guenther  
1086
 
1087
        PR tree-optimization/38405
1088
        * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to
1089
        not sign-extend truth values.
1090
 
1091
2008-12-07  Eric Botcazou  
1092
 
1093
        * tree-sra.c (scalarize_use): Create another temporary with the proper
1094
        type for signed types in the use_all && !is_output bitfield case.
1095
 
1096
2008-12-06  Steven Bosscher  
1097
 
1098
        PR rtl-optimization/36365
1099
        * df-core.c (df_worklist_dataflow_overeager): Remove.
1100
        (df_worklist_dataflow): Don't call it, use double-queue only.
1101
        * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove.
1102
 
1103
2008-12-06  Jakub Jelinek  
1104
 
1105
        PR middle-end/38428
1106
        * tree-ssa-operands.c (get_expr_operands) : Set
1107
        gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.
1108
 
1109
2008-12-07  Ben Elliston  
1110
 
1111
        * gthr-single.h (__gthread_once): Adjust prototype to match all
1112
        other gthreads models.
1113
 
1114
2008-12-06  Jakub Jelinek  
1115
 
1116
        * config/i386/i386.c (override_options): Use CPU_AMDFAM10
1117
        instead of PROCESSOR_AMDFAM10 for barcelona's schedule.
1118
 
1119
        PR middle-end/38422
1120
        * fold-const.c (fold_unary) : Don't convert MULT_EXPR
1121
        operands to mult_type if it isn't narrower than op0's type.
1122
 
1123
2008-12-06  Jan Hubicka  
1124
            Jakub Jelinek  
1125
 
1126
        PR tree-optimization/38074
1127
        * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
1128
        entry frequency.
1129
        * predict.c (combine_predictions_for_bb): Ignore predictor predicting
1130
        in both dirrection for first match heuristics.
1131
        (tree_bb_level_predictions): Disable noreturn heuristic when there
1132
        is no returning path.
1133
 
1134
2008-12-05  Bernd Schmidt  
1135
 
1136
        PR rtl-optimization/38272
1137
        * reload1.c (choose_reload_regs): Keep reload_spill_index correct
1138
        in all cases.
1139
 
1140
2008-12-05  Jakub Jelinek  
1141
 
1142
        PR c++/35336
1143
        * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
1144
        (pp_c_expression): Likewise.
1145
 
1146
2008-12-05  Michael Meissner  
1147
 
1148
        PR c/38416
1149
        * c-parser.c (struct c_token): Make pragma_kind 8 bits.
1150
 
1151
2008-12-05  Jakub Jelinek  
1152
 
1153
        PR middle-end/37248
1154
        * fold-const.c (make_bit_field_ref): Change bitpos and bitsize
1155
        arguments to HOST_WIDE_INT.  If type has different signedness
1156
        than unsignedp or different precision from bitsize, create
1157
        the right type for BIT_FIELD_REF and cast to type.
1158
        (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.
1159
 
1160
        Revert:
1161
        2008-03-05  Richard Guenther  
1162
        PR c++/35336
1163
        * fold-const.c (fold_truthop): Remove code generating
1164
        BIT_FIELD_REFs of structure bases.
1165
        (fold_binary): Likewise.
1166
        (make_bit_field_ref): Remove.
1167
        (optimize_bit_field_compare): Remove.
1168
        (all_ones_mask_p): Remove.
1169
 
1170
2008-12-05  Jakub Jelinek  
1171
 
1172
        * tree-sra.c (sra_explode_bitfield_assignment): Always
1173
        call unsigned_type_for, if the precision is higher than
1174
        needed, call build_nonstandard_integer_type.
1175
 
1176
        PR debug/38367
1177
        * function.c (assign_parm_find_stack_rtl): If promoted_mode
1178
        is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
1179
        big endian.
1180
 
1181
        PR middle-end/38338
1182
        * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
1183
        only if internal_arg_pointer is a non-virtual pseudo.
1184
 
1185
2008-12-05  Joseph Myers  
1186
 
1187
        * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
1188
        TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
1189
        * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
1190
 
1191
2008-12-05  Jakub Jelinek  
1192
 
1193
        PR tree-optimization/37716
1194
        * gimplify.c (gimplify_expr): Allow COND_EXPR if
1195
        gimplify_ctxp->allow_rhs_cond_expr.
1196
 
1197
2008-12-05  Uros Bizjak  
1198
 
1199
        * config/alpha/alpha.c (alpha_fold_vector_minmax): Create
1200
        VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
1201
 
1202
        (alpha_emit_conditional_branch): Do not generate direct branch
1203
        for UNORDERED comparisons.
1204
 
1205
2008-12-05  Andreas Schwab  
1206
 
1207
        * config/rs6000/linux-unwind.h (frob_update_context): Check for
1208
        NULL lr.
1209
 
1210
2008-12-05  Jakub Jelinek  
1211
 
1212
        PR c/38408
1213
        * fold-const.c (fold_checksum_tree): Change buf type to union
1214
        tree_node.
1215
 
1216
2008-12-05  Sebastian Pop  
1217
 
1218
        PR bootstrap/38262
1219
        * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
1220
        (BACKENDLIBS): New.
1221
        (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.
1222
 
1223
2008-12-05  Ben Elliston  
1224
 
1225
        * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
1226
        comma_loc.
1227
        (c_parser_initelt): Initialise des_loc and ellipsis_loc.
1228
 
1229
2008-12-04  Eric Botcazou  
1230
            Gary Funck  
1231
 
1232
        * cse.c (lookup_as_function): Delete mode frobbing code.
1233
        (equiv_constant): Re-implement it there for SUBREGs.
1234
 
1235
2008-12-04  Richard Guenther  
1236
 
1237
        PR middle-end/36509
1238
        * Makefile.in (tree-ssa-alias-warnings.o): Remove.
1239
        (tree-ssa-structalias.o): Remove errors.h dependency.
1240
        (tree-ssa-reassoc.o): Likewise.
1241
        * tree-ssa-reassoc.c: Do not include errors.h.
1242
        * tree-ssa-alias-warnings.c: Remove.
1243
        * tree-ssa-alias.c (compute_may_aliases): Remove call to
1244
        strict_aliasing_warning_backend.
1245
        * tree-ssa-structalias.c (emit_pointer_definition): New function.
1246
        (emit_alias_warning): Likewise.
1247
        (set_uids_in_ptset): Warn for clear cases of type-punning.
1248
        * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
1249
        on INDIRECT_REFs.
1250
 
1251
2008-12-04  Eric Botcazou  
1252
 
1253
        * cse.c (equiv_constant): Fix pasto.
1254
 
1255
2008-12-04  Nick Clifton  
1256
 
1257
        * config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
1258
        * config/stormy16/stormy16.c: Remove extraneous spaces and fix up
1259
        formatting of quotes.
1260
 
1261
2008-12-04  Jakub Jelinek  
1262
 
1263
        PR middle-end/38371
1264
        * fold-const.c (fold_checksum_tree): Allow modification of
1265
        TYPE_NEXT_VARIANT.
1266
 
1267
2008-12-03  Jakub Jelinek  
1268
 
1269
        PR middle-end/38360
1270
        * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
1271
        have the right number of arguments.
1272
 
1273
2008-12-03  Richard Guenther  
1274
 
1275
        PR middle-end/36326
1276
        * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
1277
        non-BLKmode types.
1278
 
1279
2008-12-03  Tomas Bily  
1280
 
1281
        PR middle-end/38250
1282
        * tree-loop-distribution.c (build_size_arg): New function.
1283
        (generate_memset_zero): Checks if dr_analyze_innermost succeed.
1284
        Reorganized generating of stmts.
1285
        * testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
1286
        * tree-data-ref.c (dr_analyze_innermost): Returns bool.
1287
        Indicate if analysis succeed.
1288
        * tree-data-ref.h (dr_analyze_innermost): Returns bool.
1289
        * tree-predcom.c (valid_initializer_p, find_looparound_phi):
1290
        Uses new definition of dr_analyze_innermost.
1291
 
1292
2008-12-03  Ben Elliston  
1293
 
1294
        * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.
1295
 
1296
2008-12-03  Jakub Jelinek  
1297
 
1298
        PR tree-optimization/37716
1299
        * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
1300
        all the needed operations as trees and gimplify_assign it to dst.
1301
 
1302
        PR target/37610
1303
        * configure.ac (gcc_cv_readelf): Look for readelf.
1304
        (gcc_cv_as_cfi_advance_working): Check for working
1305
        cfi advances with code alignment factor > 1.
1306
        (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
1307
        don't work properly.
1308
        * configure: Regenerated.
1309
 
1310
2008-12-03  Eric Botcazou  
1311
            Jakub Jelinek  
1312
            Andrew Pinski  
1313
 
1314
        PR rtl-optimization/38281
1315
        * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
1316
        set it to NULL_RTX afterwards.
1317
 
1318
        * emit-rtl.c (set_insn_deleted): Fix formatting.
1319
 
1320
2008-12-02  Richard Sandiford  
1321
 
1322
        * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
1323
        error return value.
1324
        * config/mips/mips.md (IMOVE32): New mode iterator.
1325
        (movsi): Generalize with IMOVE32.
1326
        (*movsi_internal): Likewise.
1327
        (*mov_mips16): Likewise.
1328
        (*lwxs): Likewise.
1329
 
1330
2008-12-02  Nathan Sidwell  
1331
            Maxim Kuvyrkov  
1332
 
1333
        * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
1334
        PC-relative addressing when compiling for uclinux PIC.
1335
        (__cmpdf_internal, __cmpsf_internal): Hide.
1336
        (__cmpdf, __cmpsf): Use PIC call sequence.
1337
 
1338
2008-12-02  Andreas Tobler  
1339
            Jack Howarth  
1340
 
1341
        * config/i386/t-darwin64: Add m32 multilib support.
1342
 
1343
2008-12-02  Jack Howarth  
1344
 
1345
        * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
1346
 
1347
2008-12-02  Jakub Jelinek  
1348
 
1349
        PR middle-end/38343
1350
        * builtins.c (fold_builtin_memory_op): Convert len to sizetype
1351
        before using it in POINTER_PLUS_EXPR.
1352
 
1353
2008-12-02  Richard Guenther  
1354
 
1355
        PR tree-optimization/38359
1356
        * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
1357
        non-negative x.
1358
 
1359
2008-12-02  Martin Jambor  
1360
 
1361
        PR middle-end/37861
1362
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
1363
        for INDIRECT_REFs.
1364
        (forward_propagate_addr_into_variable_array_index): Check that the
1365
        offset is not computed from a MULT_EXPR, use is_gimple_assign rather
1366
        than the gimple code directly.
1367
 
1368
2008-12-02  Ben Elliston  
1369
 
1370
        * config/spu/float_disf.c (__floatdisf): Prototype.
1371
        * config/spu/float_unsdisf.c (__float_undisf): Likewise.
1372
        * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
1373
        * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
1374
 
1375
2008-12-02  DJ Delorie  
1376
 
1377
        * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
1378
        (DWARF_CIE_DATA_ALIGNMENT): Define.
1379
 
1380
        * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
1381
        Invert add/sub for INCOMING_FRAME_SP_OFFSET.
1382
        (xstormy16_expand_prologue): Likewise.
1383
        (xstormy16_expand_builtin_va_start): Likewise.
1384
        (xstormy16_gimplify_va_arg_expr): Likewise.
1385
 
1386
2008-12-02  Jakub Jelinek  
1387
 
1388
        PR middle-end/38343
1389
        * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
1390
        potentially returned from folding memcpy.
1391
        (expand_builtin_stpcpy_args): Similarly for folding strcpy.
1392
        (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
1393
 
1394
2008-12-02  Danny Smith  
1395
 
1396
        PR target/38054
1397
        * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
1398
        decoration of function RTL names here on Ada language.
1399
 
1400
2008-12-01  Vladimir Makarov  
1401
 
1402
        PR rtl-optimization/38280
1403
        * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
1404
        ira_rebuild_regno_allocno_list): New functions.
1405
        (regno_allocnos): New static variable.
1406
        (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
1407
        Call ira_rebuild_regno_allocno_list.
1408
 
1409
2008-12-01  David Daney  
1410
            Adam Nemet  
1411
 
1412
        * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
1413
        LINUX_DRIVER_SELF_SPECS.
1414
 
1415
2008-12-01  Vladimir Makarov  
1416
 
1417
        PR rtl-optimization/37514
1418
        * reload1.c (reload_as_needed): Invalidate reg_last_reload
1419
        from previous insns.
1420
 
1421
2008-12-01  Jakub Jelinek  
1422
 
1423
        PR c++/38348
1424
        * c-omp.c (c_finish_omp_for): Only transform pointer
1425
        ++ or -- into MODIFY_EXPR if second argument is non-NULL.
1426
 
1427
        PR rtl-optimization/38245
1428
        * tree-vrp.c (abs_extent_range): New function.
1429
        (extract_range_from_binary_expr): Compute range
1430
        for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
1431
        or includes zero or if vr1 is VR_RANGE and op0 has some
1432
        other range.
1433
 
1434
2008-12-01  Uros Bizjak  
1435
 
1436
        PR middle-end/37908
1437
        * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
1438
        case by calculating ~(new_reg & val) instead of (~new_reg & val).
1439
        * config/alpha/sync.md (sync_nand): Change insn RTX
1440
        to (not:I48MODE (and:I48MODE (...))).
1441
        (sync_old_nand): Ditto.
1442
        (sync_new_nand): Ditto.
1443
 
1444
2008-12-01  Nick Clifton  
1445
 
1446
        * config/stormy16/stormy16.md (CARRY_REG): New constant.
1447
        Replace uses of the "y" register class with direct references to
1448
        the CARRY_REG register.
1449
        * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
1450
        register with clobbers of the carry register.
1451
        (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
1452
        (xstormy16_split_cbranch): Remove redundant carry parameter.
1453
        (xstormy16_expand_arith): Likewise.
1454
        * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
1455
        (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
1456
        REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
1457
        (CARRY_REGNUM): Define.
1458
        * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
1459
        Update prototype.
1460
        (xstormy16_expand_arith): Likewise.
1461
 
1462
2008-12-01  Chen Liqin  
1463
 
1464
        * config/score/score.h (IRA_COVER_CLASSES): Define.
1465
 
1466
2008-11-30  Eric Botcazou  
1467
 
1468
        PR target/38287
1469
        * config/sparc/sparc.md (divsi3 expander): Remove constraints.
1470
        (divsi3_sp32): Add new alternative with 'K' for operand #2.
1471
        (cmp_sdiv_cc_set): Factor common string.
1472
        (udivsi3_sp32): Add new alternative with 'K' for operand #2.
1473
        Add TARGET_V9 case.
1474
        (cmp_udiv_cc_set): Factor common string.
1475
 
1476
2008-11-30  John David Anglin  
1477
 
1478
        PR middle-end/38283
1479
        * varasm.c (emutls_finish): Fix common registration.
1480
 
1481
2008-11-29  Jakub Jelinek  
1482
 
1483
        PR target/29987
1484
        * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
1485
 
1486
2008-11-29  David Edelsohn  
1487
 
1488
        * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
1489
        operand wrapped in NOT.  Emit NAND as (ior (not X) (not Y)).
1490
        (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
1491
        * config/rs6000/sync.md (sync_nand): Represent NAND in RTL.
1492
        Call rs6000_emit_sync with CODE=NOT and unmodified operands.
1493
        Ignore sub-word case for now.
1494
        (sync_nand_internal): Represent NAND in RTL.
1495
        (sync_old_nand
1496
        (sync_old_name_internal): Same.
1497
        (sync_new_nand): Same.
1498
        (sync_new_nand_internal): Same.
1499
        (sync_boolcshort_internal): Expect NAND.
1500
 
1501
2008-11-28  Richard Guenther  
1502
 
1503
        PR tree-optimization/37955
1504
        PR tree-optimization/37742
1505
        * tree-vect-transform.c (vectorizable_store): Remove assert for
1506
        compatible aliases.
1507
        (vectorizable_load): Likewise.
1508
 
1509
2008-11-27  Richard Guenther  
1510
 
1511
        * tree-ssa-structalias.c (intra_create_variable_infos): Make
1512
        a constraint for the static chain parameter.
1513
 
1514
2008-11-27  Bernd Schmidt  
1515
 
1516
        * config/bfin/bfin.opt (micplb): New option.
1517
        * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
1518
        * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
1519
        ENABLE_WA_INDIRECT_CALLS): New macros.
1520
        * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
1521
        all 54x CPUs.
1522
        (indirect_call_p): New function.
1523
        (workaround_speculation): Handle anomaly 05-00-0426 when
1524
        ENABLE_WA_INDIRECT_CALLS is true.
1525
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1526
        __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
1527
        * doc/invoke.texi (Blackfin Options): Document -micplb.
1528
 
1529
2008-11-26  DJ Delorie  
1530
 
1531
        * config/m32c/mov.md ("extendhipsi2"): New.
1532
 
1533
        * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
1534
 
1535
        * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
1536
        * config/m32c/mov.md (zero_extendqihi2): Likewise.
1537
 
1538
2008-11-26  Adam Nemet  
1539
 
1540
        * config/mips/mips.md (clear_hazard): Rename to
1541
        clear_hazard_.  Use mode-specific addition.
1542
        (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
1543
        or gen_clear_hazard_di depending on the size of Pmode.
1544
 
1545
2008-11-26  DJ Delorie  
1546
 
1547
        * configure.ac: Test m32c-elf-gas for .loc.
1548
        * configure: Likewise.
1549
 
1550
2008-11-26  Janis Johnson  
1551
 
1552
        PR testsuite/28870
1553
        * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
1554
        dg-timeout-factor.
1555
 
1556
2008-11-26  Uros Bizjak  
1557
 
1558
        * config/i386/sync.md (memory_barrier_nosse): Disable also for
1559
        TARGET_64BIT.  Remove special asm template for TARGET_64BIT case.
1560
        (memory_barrier): Do not generate memory_barrier_nosse instruction
1561
        for TARGET_64BIT.
1562
        * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
1563
 
1564
2008-11-26  Fredrik Unger  
1565
 
1566
        * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
1567
        function name from __floatundisf.
1568
        * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
1569
        DFtype.
1570
 
1571
2008-11-25  Daniel Berlin  
1572
            Richard Guenther  
1573
 
1574
        PR tree-optimization/37869
1575
        * tree-ssa-structalias.c (struct constraint_graph): Remove
1576
        pt_used and number_incoming members.
1577
        (build_pred_graph): Do not allocate them.
1578
        (condense_visit): Do not use them.
1579
        (label_visit): Likewise.
1580
        (free_var_substitution_info): Do not free them.
1581
 
1582
2008-11-25  Vladimir Makarov  
1583
 
1584
        * doc/invoke.texi (ira-max-loops-num): Change semantics.
1585
 
1586
        * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
1587
 
1588
        * ira-color.c (allocno_spill_priority): New function.
1589
        (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
1590
        Print more info about the spilled allocno.
1591
        (push_allocnos_to_stack): Use allocno_spill_priority.  Add more
1592
        checks on bad spill.
1593
 
1594
        * ira-build.c (loop_node_to_be_removed_p): Remove.
1595
        (loop_compare_func, mark_loops_for_removal): New functions.
1596
        (remove_uneccesary_loop_nodes_from_loop_t): Use member
1597
        to_remove_p.
1598
        (remove_unnecessary_allocnos): Call mark_loops_for_removal.
1599
 
1600
        * ira.c (ira): Don't change flag_ira_algorithm.
1601
 
1602
        * params.def (ira-max-loops-num): Change the value.
1603
 
1604
2008-11-25  Maxim Kuvyrkov  
1605
 
1606
        * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
1607
        Disable unsupported alternative for ColdFire,
1608
        add new alternative that ColdFire can handle.
1609
 
1610
2008-11-25  Eric Botcazou  
1611
 
1612
        * regrename.c (merge_overlapping_regs): Add registers artificially
1613
        defined at the top of the basic block to the set of live ones just
1614
        before the first insn.
1615
 
1616
2008-11-25  H.J. Lu  
1617
            Joey Ye  
1618
 
1619
        PR middle-end/37843
1620
        * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
1621
        false if we need to align the outgoing stack.
1622
        (ix86_update_stack_boundary): Check parm_stack_boundary.
1623
 
1624
2008-11-25  Richard Guenther  
1625
 
1626
        PR middle-end/38151
1627
        PR middle-end/38236
1628
        * tree-ssa-alias.c (struct alias_info): Remove written_vars.
1629
        Remove dereferenced_ptrs_store and dereferenced_ptrs_load
1630
        in favor of dereferenced_ptrs.
1631
        (init_alias_info): Adjust.
1632
        (delete_alias_info): Likewise.
1633
        (compute_flow_insensitive_aliasing): Properly
1634
        include all aliased variables.
1635
        (update_alias_info_1): Use dereferenced_ptrs.
1636
        (setup_pointers_and_addressables): Likewise.
1637
        (get_smt_for): Honor ref-all pointers and pointers with known alias
1638
        set properly.
1639
        * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
1640
 
1641
2008-11-25  Uros Bizjak  
1642
 
1643
        PR target/38254
1644
        * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
1645
        (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
1646
 
1647
2008-11-24  Maxim Kuvyrkov  
1648
 
1649
        * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
1650
 
1651
2008-11-24  Richard Sandiford  
1652
 
1653
        * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
1654
 
1655
2008-11-24  Maxim Kuvyrkov  
1656
 
1657
        PR target/35018
1658
        * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
1659
        (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
1660
 
1661
2008-11-24  Uros Bizjak  
1662
 
1663
        * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
1664
        UNSPECV_CMPXCHG_[12].
1665
        * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
1666
        UNSPECV_CMPXCHG_[12].
1667
 
1668
        PR target/36793
1669
        * config/i386/sync.md (memory_barrier): New expander.
1670
 
1671
2008-11-24  Jakub Jelinek  
1672
 
1673
        PR middle-end/37135
1674
        * dse.c (find_shift_sequence): Optimize extraction from a constant.
1675
 
1676
2008-11-23  John David Anglin  
1677
 
1678
        * pa.c (function_arg): Revert 2008-10-26 change.
1679
 
1680
2008-11-23  Helge Deller  
1681
 
1682
        * pa/linux-atomic.c (EBUSY): Define if not _LP64.
1683
        (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
1684
        succeeded and lws_ret is not equal to oldval.
1685
 
1686
2008-11-23  Kaz Kojima  
1687
 
1688
        * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
1689
 
1690
2008-11-22  Andreas Schwab  
1691
 
1692
        * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
1693
        -dA and -dP.
1694
 
1695
2008-11-22  Adam Nemet  
1696
 
1697
        * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_.
1698
        Use constant 1 as the operand.
1699
        * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
1700
        Rename gen_rdhwr to gen_rdhwr_synci_step_si or
1701
        gen_rdhwr_synci_step_di depending on the size of Pmode.
1702
 
1703
2008-11-22  Uros Bizjak  
1704
 
1705
        PR target/38222
1706
        * config/i386/i386.md (SWI248): New mode iterator.
1707
        (SWI32): Remove mode iterator.
1708
        (popcount2): Rename from popcounthi2, popcountsi2 and
1709
        popcounthi2 insn patterns. Macroize pattern using SWI248 mode
1710
        iterator.  Generate popcnt mnemonic without mode extensions
1711
        for Darwin x86 targets.
1712
        (*popcount2_cmp): Ditto.
1713
        (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
1714
        extensions for Darwin x86 targets.
1715
 
1716
2008-11-22  Eric Botcazou  
1717
 
1718
        * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
1719
        only if HAVE_AS_SPARC_UA_PCREL is defined.
1720
 
1721
2008-11-22  Richard Sandiford  
1722
 
1723
        * ira-costs.c (find_allocno_class_costs): Work out the maximum
1724
        allocno_costs value of the classees with the lowest total_costs
1725
        value.  Use this to set ALLOCNO_COVER_CLASS_COST here...
1726
        (setup_allocno_cover_class_and_costs): ...rather than here.
1727
        Use the ALLOCNO_COVER_CLASS_COST for all registers in the
1728
        preferred class.
1729
 
1730
2008-11-22  Jakub Jelinek  
1731
 
1732
        PR middle-end/37323
1733
        * builtins.c (expand_builtin_apply_args): Emit sequence before
1734
        parm_birth_insn instead of after entry_of_function's first insn.
1735
 
1736
        PR middle-end/37316
1737
        * function.c (assign_parm_remove_parallels): Pass
1738
        data->passed_type as third argument to emit_group_store.
1739
 
1740
        PR target/37170
1741
        * final.c (mark_symbol_refs_as_used): New function.
1742
        * output.h (mark_symbol_refs_as_used): New prototype.
1743
        * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
1744
        (s390_output_pool_entry): Use mark_symbol_refs_as_used.
1745
        * config/arm/arm.md (consttable_4): Likewise.
1746
 
1747
        PR target/37880
1748
        * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
1749
 
1750
2008-11-21  Jakub Jelinek  
1751
 
1752
        PR middle-end/38200
1753
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
1754
        propagate x = &a into *x = b if conversion from b to a's type is
1755
        useless.
1756
 
1757
2008-11-21  Eric Botcazou  
1758
 
1759
        * caller-save.c (insert_one_insn): Take into account REG_INC notes
1760
        for the liveness computation of the new insn.
1761
 
1762
2008-11-21  DJ Delorie  
1763
 
1764
        * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
1765
        Moves to/from below100 space (W) can only use r0-r7.
1766
 
1767
2008-11-21  Paolo Carlini  
1768
 
1769
        PR other/38214
1770
        * doc/invoke.texi (Optimization Options): Fix typo.
1771
 
1772
2008-11-21  H.J. Lu  
1773
            Xuepeng Guo  
1774
 
1775
        * config.gcc (extra_headers): For x86 and x86-64, remove
1776
        gmmintrin.h, add immintrin.h and avxintrin.h.
1777
 
1778
        * config/i386/gmmintrin.h: Renamed to ...
1779
        * config/i386/avxintrin.h: This.  Issue an error if
1780
        _IMMINTRIN_H_INCLUDED is undedined.
1781
 
1782
        * config/i386/immintrin.h: New.
1783
 
1784
2008-11-21  Jakub Jelinek  
1785
 
1786
        PR target/38208
1787
        * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
1788
        mode of PLUS, not mode of the eliminated register.
1789
 
1790
2008-11-21  Uros Bizjak  
1791
 
1792
        * config/i386/mmx.md (mmx_nand3): Rename to mmx_andnot3.
1793
        * config/i386/sse.md (avx_nand3): Rename to avx_andnot3.
1794
        (_nand3): Rename to _andnot3.
1795
        (sse2_nand3): Rename to sse2_andnot3.
1796
        (*sse_nand3): Rename to *sse_andnot3.
1797
        (*avx_nand3): Rename to *avx_andnot3.
1798
        (*nand3): Rename to *andnot3.
1799
        (*nandtf3): rename to *andnottf3.
1800
        * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
1801
        Use CODE_FOR_mmx_andnotv2si3.
1802
        [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
1803
        [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
1804
        [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
1805
        [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
1806
        [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
1807
 
1808
2008-11-21  Uros Bizjak  
1809
 
1810
        PR middle-end/37908
1811
        * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
1812
        case by calculating ~(new_reg & val) instead of (~new_reg & val).
1813
        * config/ia64/sync.md (sync_nand): Change insn RTX
1814
        to (not:IMODE (and:IMODE (...))).
1815
        (sync_old_nand): Ditto.
1816
        (sync_new_nand): Ditto.
1817
 
1818
2008-11-20  Joseph Myers  
1819
 
1820
        * config/arm/thumb2.md (thumb2_casesi_internal,
1821
        thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
1822
 
1823
2008-11-20  Andreas Krebbel  
1824
 
1825
        * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
1826
        nand to the changed 4.4 semantic.
1827
 
1828
2008-11-20  Jakub Jelinek  
1829
 
1830
        PR middle-end/29215
1831
        * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
1832
        (fold_builtin_memory_op): Handle even the case where just one
1833
        of src and dest is an address of a var decl component, using
1834
        TYPE_REF_CAN_ALIAS_ALL pointers.  Remove is_gimple_min_invariant
1835
        and readonly_data_expr src check.
1836
        * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
1837
        up warnings.
1838
 
1839
        PR rtl-optimization/36998
1840
        * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
1841
        arguments.  Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
1842
        (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
1843
        stack_adjust_offset callers.
1844
        (dwarf2out_stack_adjust): Likewise.  Handle insns in annulled
1845
        branches properly.
1846
        (compute_barrier_args_size): Handle insns in annulled branches
1847
        properly.
1848
 
1849
2008-11-20  Uros Bizjak  
1850
 
1851
        PR target/38151
1852
        * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
1853
        Handle cases when integer argument crosses argument register boundary.
1854
 
1855
2008-11-20  Rainer Orth  
1856
 
1857
        PR bootstrap/33100
1858
        * config.gcc (i[34567]86-*-solaris2*): Don't include
1859
        i386/t-crtstuff here.
1860
        Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
1861
        * config/i386/t-sol2: Move to libgcc/config/i386.
1862
 
1863
2008-11-20  Samuel Thibault  
1864
 
1865
        PR driver/21706
1866
        * tlink.c: Include "libiberty.h".
1867
        (initial_cwd): Change type into char *.
1868
        (tlink_init): Call getpwd instead of getcwd.
1869
 
1870
2008-11-19  Zdenek Dvorak  
1871
 
1872
        PR rtl-optimization/32283
1873
        * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
1874
        of the induction variable to decide whether it may wrap.
1875
        * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
1876
        initialization of the bound before the loop.
1877
        * simplify-rtx.c (simplify_binary_operation_1): Add two
1878
        simplifications regarding AND.
1879
        (simplify_plus_minus): Only fail if no simplification is possible.
1880
        * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
1881
 
1882
2008-11-20  Jakub Jelinek  
1883
 
1884
        PR c++/36631
1885
        * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
1886
        checking until GIMPLE lowering.
1887
        * gimple-low.c (check_call_args): New function.
1888
        (lower_stmt) : Call it.
1889
 
1890
2008-11-19  Adam Nemet  
1891
 
1892
        * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
1893
        with the same type as the first operand of the AND expression.
1894
 
1895
2008-11-19  Vladimir Makarov  
1896
 
1897
        PR bootstrap/37859
1898
        * ira-int.h (struct ira_loop_tree_node): New member
1899
        entered_from_non_parent_p.
1900
 
1901
        * ira-color.c (print_loop_title): Print loop bbs.
1902
 
1903
        * ira-emit.c (entered_from_non_parent_p,
1904
        setup_entered_from_non_parent_p): New functions.
1905
        (not_modified_p): Rename to store_can_be_removed_p.  Check there
1906
        is no side entries.
1907
        (generate_edge_moves): Use store_can_be_removed_p instead of
1908
        not_modified_p.
1909
        (ira_emit): Call setup_entered_from_non_parent_p.
1910
 
1911
        * ira-build.c (copy_info_to_removed_store_destinations):
1912
        Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
1913
        ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
1914
        (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
1915
        update all accumulated attributes.
1916
 
1917
2008-11-19  Vladimir Makarov  
1918
 
1919
        PR bootstrap/37790
1920
        * ira-int.h (ira_copy_allocno_live_range_list,
1921
        ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
1922
        ira_finish_allocno_live_range_list): New prototypes.
1923
        (ira_allocno_live_ranges_intersect_p,
1924
        ira_pseudo_live_ranges_intersect_p): Remove.
1925
 
1926
        * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
1927
        ira_pseudo_live_ranges_intersect_p): Rename to
1928
        allocnos_have_intersected_live_ranges_p and
1929
        pseudos_have_intersected_live_ranges_p.  Move them from here to ...
1930
 
1931
        * ira-color.c: ... here
1932
        (coalesced_allocno_conflict_p): Use
1933
        allocnos_have_intersected_live_ranges_p.
1934
        (coalesced_allocnos_living_at_program_points,
1935
        coalesced_allocnos_live_at_points_p,
1936
        set_coalesced_allocnos_live_points): Remove.
1937
        (slot_coalesced_allocnos_live_ranges,
1938
        slot_coalesced_allocno_live_ranges_intersect_p,
1939
        setup_slot_coalesced_allocno_live_ranges): New.
1940
        (coalesce_spill_slots): Use ranges of coalesced allocnos.
1941
        (ira_sort_regnos_for_alter_reg): Use
1942
        allocnos_have_intersected_live_ranges_p.
1943
        (ira_reuse_stack_slot): Use
1944
        pseudos_have_intersected_live_ranges_p.
1945
 
1946
        * global.c (pseudo_for_reload_consideration_p): Check
1947
        flag_ira_share_spill_slots too.
1948
 
1949
        * ira-build.c (copy_allocno_live_range_list): Rename to
1950
        ira_copy_allocno_live_range_list.  Make it external.
1951
        (merge_ranges): Rename to ira_merge_allocno_live_ranges.  Make it
1952
        external.
1953
        (ira_allocno_live_ranges_intersect_p): New.
1954
        (ira_finish_allocno_live_range_list): New.
1955
        (finish_allocno): Use it.
1956
        (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
1957
        (copy_info_to_removed_store_destinations): Ditto.  Use
1958
        ira_copy_allocno_live_range_list.
1959
        (ira_flattening): Use ira_merge_allocno_live_ranges.
1960
 
1961
        * ira.c (too_high_register_pressure_p): New function.
1962
        (ira): Switch off sharing spill slots if the pressure is too high.
1963
 
1964
2008-11-19  Richard Guenther  
1965
 
1966
        * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
1967
        non-sizetype offsets if their precision matches that of the pointer.
1968
        * expr.c (expand_expr_real_1): Always sign-extend the offset
1969
        operand of a POINTER_PLUS_EXPR.
1970
 
1971
2008-11-19  Rainer Orth  
1972
 
1973
        * config.gcc: Unobsolete mips-sgi-irix[56]*.
1974
        (mips-sgi-irix[56]*): No need to use fixproto.
1975
 
1976
2008-11-19  Maxim Kuvyrkov  
1977
            Paul Brook  
1978
 
1979
        * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
1980
        executable stack.
1981
 
1982
2008-11-19  Maxim Kuvyrkov  
1983
 
1984
        * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
1985
 
1986
2008-11-19  Razya Ladelsky  
1987
 
1988
        PR target/38156
1989
        * tree-parloops.c (loop_parallel_p): NULL vect_dump.
1990
        (separate_decls_in_region): Create shared struct even when there
1991
        are only reductions.
1992
 
1993
2008-11-19  Hariharan Sandanagobalane  
1994
 
1995
        * config/picochip/picochip.c (headers): Remove an unnecessary
1996
        header file.
1997
 
1998
2008-11-19  Andrew Stubbs  
1999
 
2000
        PR target/36133
2001
        * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
2002
        * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
2003
        shift instructions.
2004
        * config/m68k/m68k.md: Adjust all conditional branches that use the
2005
        carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
2006
 
2007
2008-11-18  Uros Bizjak  
2008
 
2009
        PR target/37362
2010
        * config/mips/mips.md (move_doubleword_fpr): Check that "high"
2011
        is a register or zero operand in the correct mode before generating
2012
        mtch1 insn or a register operand in the correct mode before generating
2013
        mfch1 insn.
2014
        (mtch1): Correct operand 1 predicate to reg_or_0_operand.
2015
 
2016
2008-11-18  Adam Nemet  
2017
 
2018
        * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
2019
        (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
2020
        mipsisa*-*-elf*.  Handle mipsisa64r2*.
2021
        * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
2022
        * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
2023
        mips64r2.
2024
        (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
2025
        * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
2026
        mips64r2.
2027
        (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.  Add mips64r2/mips16.
2028
        Fix mips16 if mips64 or mips64r2 are multilib defaults.
2029
        * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
2030
        mips64r2.
2031
 
2032
2008-11-18  Jakub Jelinek  
2033
 
2034
        PR target/38130
2035
        * config/i386/i386.md (allocate_stack_worker_32,
2036
        allocate_stack_worker_64): Don't use match_dup between input and
2037
        output operand.
2038
        (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
2039
        * config/i386/i386.c (ix86_expand_prologue): Likewise.
2040
 
2041
2008-11-18  Kai Tietz  
2042
 
2043
        * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
2044
        is forced when trying to do a symbol link for it.
2045
 
2046
2008-11-17  Adam Nemet  
2047
 
2048
        * expmed.c (extract_bit_field_1): Also use a temporary and
2049
        convert_extracted_bit_field when the conversion from ext_mode to
2050
        the target mode requires explicit truncation.
2051
 
2052
2008-11-17  Richard Sandiford  
2053
 
2054
        * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
2055
        Tweak formatting.
2056
        * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
2057
        registers when not optimizing.
2058
 
2059
2008-11-17  Richard Sandiford  
2060
 
2061
        * config/mips/mips.md (*mul_acc_si): Remove middle alternative
2062
        and its associated define_split.  Expose the all-d alternative
2063
        to the register allocator, but mark it with "?".  Mark the first
2064
        alternative with "*?*?".
2065
        (*mul_sub_si): Likewise.
2066
        (*mul_acc_si_r3900): New pattern.
2067
 
2068
2008-11-17  Jakub Jelinek  
2069
 
2070
        PR middle-end/38140
2071
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
2072
        propagating x = &a into *x = b, add a cast if not useless
2073
        type conversion or don't optimize if another stmt would be
2074
        needed.
2075
 
2076
2008-11-17  Uros Bizjak  
2077
 
2078
        PR middle-end/37908
2079
        * optabs.c (expand_sync_operation): Properly handle NAND case
2080
        by calculating ~(t1 & val) instead of (~t1 & val).
2081
        * builtins.c (expand_builtin_sync_operation): Warn for changed
2082
        semantics in NAND builtins.
2083
        * c.opt (Wsync-nand): New warning option.  Describe -Wsync-nand.
2084
 
2085
        * doc/invoke.texi (Warning options): Add Wsync-nand.
2086
        * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
2087
        __sync_fetch_and_nand builtin operation in the example.  Add a note
2088
        about changed semantics in GCC 4.4.
2089
        [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
2090
        operation in the example.  Add a note about changed semantics in
2091
        GCC 4.4.
2092
 
2093
2008-11-16  Jan Hubicka  
2094
 
2095
        * cgraph.c (cgraph_function_body_availability): Fix test of externally
2096
        visible.
2097
 
2098
2008-11-16  Joshua Kinard  
2099
 
2100
        * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
2101
        to -mips4.
2102
 
2103
2008-11-16  Richard Sandiford  
2104
 
2105
        PR target/38052
2106
        * config/mips/mips.c (mips_cfun_call_saved_reg_p)
2107
        (mips_cfun_might_clobber_call_saved_reg_p): New functions,
2108
        split out from...
2109
        (mips_save_reg_p): ...here.  Always consult TARGET_CALL_SAVED_GP
2110
        rather than call_really_used_regs when handling $gp.
2111
 
2112
2008-11-16  Richard Sandiford  
2113
 
2114
        PR target/38052
2115
        * config/mips/mips.c (machine_function): Update the comment
2116
        above global_pointer.
2117
        (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
2118
        that a function doesn't need a global pointer.
2119
        (mips_current_loadgp_style): Update accordingly.
2120
        (mips_restore_gp): Likewise.
2121
        (mips_output_cplocal): Likewise.
2122
        (mips_expand_prologue): Likewise.
2123
 
2124
2008-11-16  Eric Botcazou  
2125
 
2126
        * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
2127
        parameter.  Use DImode for computing the number of registers.
2128
        (function_arg): Adjust for above change.
2129
        (function_value): Likewise.
2130
 
2131
2008-11-15  Zdenek Dvorak  
2132
 
2133
        PR tree-optimization/37950
2134
        * tree-flow-inline.h (memory_partition): Return NULL when aliases were
2135
        not computed for the current function.
2136
 
2137
2008-11-15  Jakub Jelinek  
2138
 
2139
        PR target/38123
2140
        * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
2141
        gpr and other COMPONENT_REFs.
2142
 
2143
2008-11-15  Richard Guenther  
2144
 
2145
        PR tree-optimization/38051
2146
        * tree-ssa-alias.c (update_alias_info_1): Manually find
2147
        written variables.
2148
 
2149
2008-11-15  Joshua Kinard  
2150
 
2151
        * doc/invoke.texi (-mfix-r10000): Document.
2152
        * config/mips/mips.opt (mfix-r10000): New option.
2153
        * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
2154
        * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
2155
        (MIPS_COMPARE_AND_SWAP_12): Likewise.
2156
        (MIPS_SYNC_OP): Likewise.
2157
        (MIPS_SYNC_OP_12): Likewise.
2158
        (MIPS_SYNC_OLD_OP_12): Likewise.
2159
        (MIPS_SYNC_NEW_OP_12): Likewise.
2160
        (MIPS_SYNC_OLD_OP): Likewise.
2161
        (MIPS_SYNC_NAND): Likewise.
2162
        (MIPS_SYNC_OLD_NAND): Likewise.
2163
        (MIPS_SYNC_EXCHANGE): Likewise.
2164
        (MIPS_SYNC_EXCHANGE_12): Likewise.
2165
        (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
2166
        delay slots.
2167
        (MIPS_SYNC_NEW_NAND): Likewise.
2168
        * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
2169
        (mips_init_print_operand_punct): Treat '~' as a punctuation character.
2170
        (mips_output_sync_loop): New function.
2171
        (mips_override_options): Make -march=r10000 imply -mfix-r10000.
2172
        Make -mfix-r10000 require branch-likely instructions.
2173
        * config/mips/sync.md (sync_compare_and_swap): Use
2174
        mips_output_sync_loop.
2175
        (compare_and_swap_12): Likewise.
2176
        (sync_add): Likewise.
2177
        (sync__12): Likewise.
2178
        (sync_old__12): Likewise.
2179
        (sync_new__12): Likewise.
2180
        (sync_nand_12): Likewise.
2181
        (sync_old_nand_12): Likewise.
2182
        (sync_new_nand_12): Likewise.
2183
        (sync_sub): Likewise.
2184
        (sync_old_add): Likewise.
2185
        (sync_old_sub): Likewise.
2186
        (sync_new_add): Likewise.
2187
        (sync_new_sub): Likewise.
2188
        (sync_): Likewise.
2189
        (sync_old_): Likewise.
2190
        (sync_new_): Likewise.
2191
        (sync_nand): Likewise.
2192
        (sync_old_nand): Likewise.
2193
        (sync_new_nand): Likewise.
2194
        (sync_lock_test_and_set): Likewise.
2195
        (test_and_set_12): Likewise.
2196
 
2197
2008-11-15  Eric Botcazou  
2198
 
2199
        * gcc.c (cc1_options): Fix comment.
2200
 
2201
2008-11-15  Jakub Jelinek  
2202
 
2203
        PR c++/37561
2204
        * c-typeck.c (build_unary_op): Don't call get_unwidened.  Use
2205
        argtype instead of result_type.
2206
 
2207
2008-11-14  Adam Nemet  
2208
 
2209
        * ira-int.h (struct ira_loop_tree_node): Improve comments for
2210
        subloop_next/next and subloops/childen fields.
2211
 
2212
2008-11-14  Ulrich Weigand  
2213
 
2214
        * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
2215
        (STANDARD_INCLUDE_DIR): Redefine to "/include".
2216
        (LOCAL_INCLUDE_DIR): Undefine.
2217
        * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
2218
 
2219
2008-11-14  Vladimir Makarov  
2220
 
2221
        PR rtl-optimization/37397
2222
        * ira-int.h (struct ira_allocno): New member bad_spill_p.
2223
        (ALLOCNO_BAD_SPILL_P): New macro.
2224
 
2225
        * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
2226
 
2227
        * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
2228
        (create_cap_allocno, propagate_allocno_info,
2229
        remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
2230
        (update_bad_spill_attribute): New function.
2231
        (ira_build): Call it.
2232
 
2233
        * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
2234
 
2235
2008-11-14  Jakub Jelinek  
2236
 
2237
        PR tree-optimization/38104
2238
        * gimplify.c (gimple_regimplify_operands): Add referenced vars
2239
        before calling mark_symbols_for_renaming, not after it.
2240
 
2241
2008-11-14  Kaz Kojima  
2242
 
2243
        * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
2244
        (OVERRIDE_OPTIONS): Likewise.
2245
 
2246
2008-11-14  Maxim Kuvyrkov  
2247
            Andrew Stubbs  
2248
            Gunnar Von Boehn  
2249
 
2250
        PR target/36134
2251
        * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
2252
        the shorter LEA insn over ADD.L where possible.
2253
 
2254
2008-11-14  Thomas Schwinge  
2255
 
2256
        * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
2257
        systems, which are assumend to always provide SSP-support in glibc.
2258
        Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
2259
        case.
2260
        * configure: Regenerate.
2261
 
2262
2008-11-14  Jakub Jelinek  
2263
 
2264
        PR middle-end/36125
2265
        * function.c (gimplify_parameters): For callee copies parameters,
2266
        move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
2267
 
2268
2008-11-13  Thomas Schwinge  
2269
 
2270
        PR target/28102
2271
        * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
2272
        x86 parts into the `i[34567]86-*-linux*' and parts that are
2273
        independent of the processor architecture into the `*-*-linux*' cases.
2274
        (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
2275
        * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
2276
        (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
2277
        [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
2278
        * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
2279
        (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
2280
        (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
2281
 
2282
2008-11-13  Ruan Beihong  
2283
 
2284
        * config/mips/loongson.md (div3, mod3): New patterns.
2285
        * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
2286
        (ls2_idiv): Likewise idiv3.
2287
        (ls2_prefetch): New reservation.
2288
        * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
2289
        * config/mips/mips.md (type): Add imul3nc and idiv3.
2290
        (length): Handle idiv3.
2291
        (any_mod): New code_iterator.
2292
        (u): Handle MOD and UMOD.
2293
        (mul3): Generate mul3_mul3_ls2ef on Loongson targets.
2294
        (prefetch): Handle TARGET_LOONGSON_2EF.
2295
 
2296
2008-11-13  Jakub Jelinek  
2297
 
2298
        PR c++/27017
2299
        * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
2300
        (prune_unused_types_walk): Call it for non-perennial local classes.
2301
        Set die_mark to 2 if recursing on children.  If die_mark is 1 on
2302
        entry, just set it to 2 and recurse on children, don't walk attributes
2303
        again.
2304
 
2305
2008-11-13  Martin Michlmayr  
2306
 
2307
        * c-common.c (warn_about_parentheses): Add missing whitespace
2308
        in warning.
2309
 
2310
2008-11-13  Paul Brook  
2311
 
2312
        * doc/invoke.texi: Document --fix-cortex-m3.
2313
        * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
2314
        Cortex-M3 cpu is selected.
2315
        (output_move_double): Avoid overlapping base register and first
2316
        destination register when fix_cm3_ldrd.
2317
        * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
2318
 
2319
2008-11-13  Jakub Jelinek  
2320
 
2321
        PR bootstrap/38100
2322
        * gimple.h (gimple_range_check_failed): Remove prototype.
2323
        * gimple.c (gimple_check_failed): Don't check GCC_VERSION
2324
        in guarding #if.
2325
        (gimple_range_check_failed): Removed.
2326
 
2327
2008-11-13  Andrew Haley  
2328
 
2329
        PR bootstrap/38088
2330
        * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
2331
        __LONG_LONG_MAX__.
2332
 
2333
2008-11-12  Jakub Jelinek  
2334
 
2335
        PR c++/36478
2336
        Revert:
2337
        2007-05-07  Mike Stump  
2338
        * doc/invoke.texi (Warning Options): Document that -Wempty-body
2339
        also checks for and while statements in C++.
2340
 
2341
2008-11-12  Dodji Seketeli  
2342
 
2343
        PR debug/27574
2344
        * cgraph.h: New abstract_and_needed member to struct cgraph_node.
2345
        * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
2346
        - which clones are reachable - as "abstract and needed".
2347
        * cgraph.c (cgraph_release_function_body):  If a node is
2348
        "abstract and needed", do not release its DECL_INITIAL() content
2349
        that will be needed to emit debug info.
2350
 
2351
2008-11-12  Steve Ellcey  
2352
 
2353
        PR target/27880
2354
        * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
2355
        to set HAVE_GETIPINFO.
2356
        * aclocal.m4: Include ../config/unwind_ipinfo.m4.
2357
        * configure: Regenerate.
2358
        * config.in: Regenerate.
2359
 
2360
2008-11-12  Jack Howarth  
2361
 
2362
        PR bootstrap/38010
2363
        * gcc/config.gcc: Use darwin9.h on darwin10 as well.
2364
 
2365
2008-11-12  Jakub Jelinek  
2366
 
2367
        Revert:
2368
        2008-10-21  Jakub Jelinek  
2369
        * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
2370
 
2371
2008-11-12  Jason Merrill  
2372
 
2373
        PR c++/38007
2374
        * c-common.c (c_common_signed_or_unsigned_type): Remove C++
2375
        special casing.
2376
 
2377
2008-11-12  Anatoly Sokolov  
2378
 
2379
        * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
2380
        atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
2381
        atmega32u6 devices.
2382
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2383
        * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2384
 
2385
2008-11-12  Ulrich Weigand  
2386
 
2387
        * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
2388
        packed-stack special handling.
2389
        (FRAME_ADDR_RTX): Add definition.
2390
 
2391
2008-11-12  Jakub Jelinek  
2392
 
2393
        PR target/35366
2394
        * fold-const.c (native_encode_string): New function.
2395
        (native_encode_expr): Use it for STRING_CST.
2396
 
2397
2008-11-12  DJ Delorie  
2398
 
2399
        * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
2400
        insns if the intermediate value will be used later.
2401
 
2402
2008-11-12  Andreas Schwab  
2403
 
2404
        * config/m68k/m68k.c (print_operand): Mask off extra extension
2405
        bits when writing out the representation of real values.
2406
 
2407
2008-11-12  Ira Rosen  
2408
 
2409
        PR tree-optimization/38079
2410
        * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
2411
        with vect_dump.
2412
 
2413
2008-11-12  Jakub Jelinek  
2414
 
2415
        PR c++/35334
2416
        * c-pretty-print.c (pp_c_complex_expr): New function.
2417
        (pp_c_postfix_expression) : Call it.
2418
 
2419
        PR target/35366
2420
        * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
2421
        than INNER and INNER is a constant, forcibly align INNER as much
2422
        as needed.
2423
 
2424
2008-11-11  Richard Sandiford  
2425
 
2426
        * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
2427
 
2428
2008-11-11  Richard Sandiford  
2429
 
2430
        PR rtl-optimization/37363
2431
        * simplify-rtx.c (simplify_plus_minus): Don't create
2432
        (const (minus ...)) expresisons.
2433
 
2434
2008-11-11  Eric Botcazou  
2435
 
2436
        * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
2437
        handling.
2438
 
2439
2008-11-10  Catherine Moore  
2440
 
2441
        * config.gcc (mips64vrel-*-elf*): Include the tm_file
2442
        prior to vr.h.
2443
        * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
2444
        (BASE_DRIVER_SELF_SPECS): Remove.
2445
        (DRIVER_SELF_SPECS): New definition.
2446
        * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Include
2447
        BASE_DRIVER_SELF_SPECS.
2448
        * config/mips/sde.h: Likewise.
2449
        * config/mips/iris6.h: Likewise.
2450
        * config/mips/vr.h: Likewise.
2451
        * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
2452
 
2453
2008-11-10  Vladimir Makarov  
2454
 
2455
        PR rtl-optimizations/37948
2456
        * ira-int.h (struct ira_allocno_copy): New member constraint_p.
2457
        (ira_create_copy, ira_add_allocno_copy): New parameter.
2458
 
2459
        * ira-conflicts.c (process_regs_for_copy): New parameter.  Pass it
2460
        to ira_add_allocno_copy.
2461
        (process_reg_shuffles, add_insn_allocno_copies): Pass a new
2462
        parameter to process_regs_for_copy.
2463
        (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
2464
        Fix typo in passing second allocno to ira_add_allocno_copy.
2465
 
2466
        * ira-color.c (update_conflict_hard_regno_costs): Use head of
2467
        coalesced allocnos list.
2468
        (assign_hard_reg): Ditto.  Check that assigned allocnos are not in
2469
        the graph.
2470
        (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
2471
        (add_ira_allocno_to_ordered_bucket): Rename to
2472
        add_allocno_to_ordered_bucket.
2473
        (push_ira_allocno_to_stack): Rename to push_allocno_to_stack.  Use
2474
        head of coalesced allocnos list.
2475
        (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
2476
        Check that it is aready calculated.
2477
        (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
2478
        (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
2479
        list.
2480
        (coalesce_allocnos): Do extended coalescing too.
2481
 
2482
        * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
2483
        parameter to ira_add_allocno_copy.
2484
 
2485
        * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
2486
        parameter.
2487
        (print_copy): Print copy origination too.
2488
 
2489
        * ira-costs.c (scan_one_insn): Use alloc_pref for load from
2490
        equivalent memory.
2491
 
2492
2008-11-10  Kaz Kojima  
2493
 
2494
        PR rtl-optimization/37514
2495
        * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
2496
        flag_ira_share_spill_slots to 2 if it's already non-zero.
2497
        (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
2498
        flag_ira_share_spill_slots is 2.
2499
 
2500
2008-11-10  Kevin Buettner  
2501
 
2502
        * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
2503
        (prologue_enter_32): Set FB to SP - 4.
2504
 
2505
2008-11-10  DJ Delorie  
2506
 
2507
        * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
2508
        constraint for single-bit-clear in lower byte of HI constant, vs
2509
        Imb which just ignores the upper byte.
2510
        * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
2511
        * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
2512
        (iorhi3_16): Check for single bit set, not single bit clear.
2513
 
2514
2008-11-10  Janis Johnson  
2515
 
2516
        * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
2517
 
2518
        * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
2519
 
2520
2008-11-10  Eric Botcazou  
2521
 
2522
        * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
2523
        values living in memory and use more precise alignment information.
2524
 
2525
2008-11-10  Jakub Jelinek  
2526
 
2527
        PR middle-end/35314
2528
        * tree-mudflap.c (mf_build_check_statement_for): Split then_block
2529
        after __mf_check call if the call must end a bb.
2530
 
2531
2008-11-10  Ralph Loader  
2532
 
2533
        PR middle-end/37807
2534
        PR middle-end/37809
2535
        * combine.c (force_to_mode): Do not process vector types.
2536
 
2537
        * rtlanal.c (nonzero_bits1): Do not process vector types.
2538
        (num_sign_bit_copies1): Likewise.
2539
 
2540
2008-11-09  Thomas Schwinge  
2541
 
2542
        * config/i386/gnu.h: Add copyright and licensing header.
2543
        * config/gnu.h: Likewise.
2544
 
2545
2008-11-07  Andrew Pinski  
2546
 
2547
        * fwprop.c (fwprop_done): Call df_remove_problem.
2548
 
2549
2008-11-07  Sebastian Pop  
2550
 
2551
        PR middle-end/37379
2552
        * tree-scalar-evolution.c (instantiate_scev_1): Return
2553
        chrec_dont_know for VL_EXP_CLASS_P.
2554
 
2555
2008-11-06  Uros Bizjak  
2556
 
2557
        * reg-stack.c (reg_to_stack): Add missing braces in memset
2558
        size calculation.
2559
 
2560
2008-11-06  Andrew Stubbs  
2561
 
2562
        * config/arm/bpabi.h (PROFILE_HOOK): New undef.
2563
        (NO_PROFILE_COUNTERS): New define.
2564
 
2565
2008-11-06  David Edelsohn  
2566
 
2567
        PR target/26397
2568
        * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
2569
 
2570
2008-11-06  Kazu Hirata  
2571
 
2572
        PR target/35574
2573
        * config/sparc/constraints.md (D): New.
2574
        * config/sparc/predicates.md (const_double_or_vector_operand): New.
2575
        * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
2576
        'D' constraint.
2577
        * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
2578
        Use the 'D' constraint in addition to 'F' in some alternatives.
2579
        (DF splitter): Generalize for V64mode.
2580
        * doc/md.texi (SPARC): Document the 'D' constraint.
2581
 
2582
2008-11-06  Uros Bizjak  
2583
 
2584
        * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
2585
 
2586
2008-11-06  Ben Elliston  
2587
 
2588
        * gcc.c: Remove ancient comment about a bug in Sun cc.
2589
 
2590
2008-11-05  Janis Johnson  
2591
 
2592
        * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
2593
 
2594
2008-11-06  Ben Elliston  
2595
 
2596
        * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
2597
 
2598
2008-11-06  Ben Elliston  
2599
 
2600
        * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
2601
        description.
2602
 
2603
2008-11-05  Hans-Peter Nilsson  
2604
 
2605
        PR target/38016
2606
        * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
2607
        just MEM_P.
2608
 
2609
2008-11-05  Martin Jambor  
2610
 
2611
        PR middle-end/37861
2612
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
2613
        pointer arithmetics into array_ref if the array is accessed
2614
        through an indirect_ref.
2615
 
2616
2008-11-05  Richard Guenther  
2617
 
2618
        PR middle-end/37742
2619
        * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
2620
        qualified pointer conversion before stripping qualifiers.
2621
        * gimplify.c (create_tmp_from_val): Use correctly qualified type.
2622
        * tree-flow.h (may_propagate_address_into_dereference): Declare.
2623
        * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
2624
        function.
2625
        (ccp_fold): Use it.
2626
        * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
2627
        properly canonicalize binary ops.
2628
        (forward_propagate_addr_expr_1): Use
2629
        may_propagate_address_into_dereference.
2630
 
2631
2008-11-05  Uros Bizjak  
2632
 
2633
        PR middle-end/37286
2634
        * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
2635
        Initialize uninitialized input registers with a NaN.
2636
 
2637
2008-11-05  Tobias Grosser  
2638
 
2639
        PR middle-end/37833
2640
 
2641
        * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
2642
 
2643
2008-11-05  Tobias Grosser  
2644
 
2645
        PR middle-end/37943
2646
 
2647
        * graphite.c (scopdet_basic_block_info): Fix loops with multiple
2648
        exits and conditions.
2649
        * testsuite/gcc.dg/graphite/pr37943.c: New.
2650
 
2651
2008-11-04  Jakub Jelinek  
2652
            Andrew Pinski  
2653
 
2654
        PR c/35430
2655
        * c-common.c (warn_for_sign_compare): For complex result_type
2656
        use component's type.
2657
 
2658
2008-11-04  Jakub Jelinek  
2659
 
2660
        * print-tree.c (print_node): Use code instead of TREE_CODE (node).
2661
 
2662
        * print-tree.c (print_node): Don't print DECL_INITIAL
2663
        for PARM_DECL.
2664
 
2665
        PR c/37106
2666
        * c-common.c (parse_optimize_options): Save and restore
2667
        flag_strict_aliasing around decode_options call.
2668
 
2669
2008-11-04  Uros Bizjak  
2670
 
2671
        * config/i386/driver-i386.c (enum vendor_signatures): New enum.
2672
        (host_detect_local_cpu): Use it instead of casted strings to
2673
        compare vendor signatures.
2674
 
2675
2008-11-03  Mikael Pettersson  
2676
 
2677
        PR target/37989
2678
        * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
2679
        or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
2680
 
2681
2008-11-03  Catherine Moore  
2682
 
2683
        * config/mips.c (mips_conditional_register_usage):  Handle the
2684
        DSP control register.
2685
        * doc/extend.texi: Document the DSP control register.
2686
 
2687
2008-11-03  Steve Ellcey  
2688
            Jakub Jelinek  
2689
 
2690
        * omp-low.c (expand_omp_for_generic): If iter_type has different
2691
        precision than type and type is a pointer type, cast n1 and n2
2692
        first to an integer type with the same precision as pointers
2693
        and only afterwards to iter_type.
2694
 
2695
2008-11-03  Richard Sandiford  
2696
 
2697
        * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
2698
        (UNSPEC_GOTSYM_OFF): New unspec.
2699
        (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
2700
        (pic_add_dot_plus_eight): Likewise.
2701
        (tls_load_dot_plus_eight): Likewise.  Update peephole2.
2702
        * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
2703
        UNSPEC_PIC_BASE operands.
2704
        * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
2705
        (arm_output_addr_const_extra): Handle it.
2706
 
2707
2008-11-03  Eric Botcazou  
2708
 
2709
        * config/i386/i386.c (classify_argument) : Promote partial
2710
        integer class to full integer class if the offset is not word-aligned.
2711
 
2712
2008-11-03  Andrew Pinski  
2713
 
2714
        PR rtl-opt/37782
2715
        * loop-doloop.c (doloop_modify): Add from_mode argument that says what
2716
        mode count is in.
2717
        (doloop_optimize): Update call to doloop_modify.
2718
 
2719
2008-11-03  Eric Botcazou  
2720
 
2721
        * tree-sra.c (bitfield_overlaps_p): Fix oversight.
2722
 
2723
2008-11-03  Rainer Orth  
2724
 
2725
        PR other/37463
2726
        * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
2727
        gcc_cv_as_cfi_directive.
2728
        (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
2729
        merging read-only and read-write sections or assembler emits
2730
        read-write .eh_frame sections.
2731
        * configure: Regenerate.
2732
 
2733
2008-11-03  Nathan Froyd  
2734
 
2735
        Revert:
2736
        2008-10-31  Nathan Froyd  
2737
 
2738
        * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2739
        problem.
2740
        (rs6000_emit_prologue): Invert logic.
2741
        * config/rs6000/rs6000.md (*save_gpregs_): Use explicit
2742
        (reg:P 11) instead of match_operand.
2743
        (*save_fpregs_): Likewise.
2744
        (*restore_gpregs_): Likewise.
2745
        (*return_and_restore_gpregs_): Likewise.
2746
        (*return_and_restore_fpregs_): Likewise.
2747
        * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2748
        (reg:P 11) insted of match_operand.
2749
        (*restore_gpregs_spe): Likewise.
2750
        (*return_and_restore_gpregs_spe): Likewise.
2751
 
2752
2008-11-03  Harsha Jagasia  
2753
 
2754
        PR tree-optimization/37684
2755
        * gcc.dg/graphite/pr37684.c: New.
2756
        * graphite.c (exclude_component_ref): New.
2757
        (is_simple_operand): Call exclude_component_ref.
2758
 
2759
2008-11-03  Sebastian Pop  
2760
 
2761
        PR tree-optimization/36908
2762
        * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
2763
        * tree-loop-distribution.c (number_of_rw_in_rdg): New.
2764
        (number_of_rw_in_partition): New.
2765
        (partition_contains_all_rw): New.
2766
        (ldist_gen): Do not distribute when one of the partitions
2767
        contains all the memory operations.
2768
 
2769
2008-11-03  Sebastian Pop  
2770
 
2771
        * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
2772
        EDGE_IRREDUCIBLE_LOOP.
2773
 
2774
2008-11-03  Bernd Schmidt  
2775
 
2776
        * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
2777
        where we have one entry point in the loop which isn't the head.
2778
 
2779
2008-11-03  Richard Guenther  
2780
 
2781
        PR middle-end/37573
2782
        * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
2783
 
2784
2008-11-03  Jakub Jelinek  
2785
 
2786
        PR middle-end/37858
2787
        * passes.c (execute_one_pass): Don't look at cfun->curr_properties
2788
        for ipa and simple ipa passes.
2789
 
2790
2008-11-02  Richard Guenther  
2791
 
2792
        PR tree-optimization/37542
2793
        * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
2794
        * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
2795
        (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
2796
        (vn_nary_op_insert_stmt): Likewise.
2797
        (visit_use): Likewise.
2798
 
2799
2008-11-02  Anatoly Sokolov  
2800
 
2801
        * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
2802
        (*swap): Remove.
2803
        (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
2804
        rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
2805
        (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
2806
        ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
2807
        lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
2808
        peephole2's): Replace unspec with rotate.
2809
        * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
2810
 
2811
2008-11-02  Richard Guenther  
2812
 
2813
        PR tree-optimization/37991
2814
        * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
2815
        * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
2816
        (set_ssa_val_to): Print if the value changed.
2817
        (simplify_binary_expression): Strip useless conversions.
2818
 
2819
2008-11-01  Hans-Peter Nilsson  
2820
 
2821
        PR target/37939
2822
        * config/cris/cris.c (cris_rtx_costs) : Return 0 for an ADDI
2823
        operand.
2824
 
2825
2008-11-01  Richard Guenther  
2826
 
2827
        PR middle-end/37976
2828
        * builtins.c (fold_builtin_strspn): Return a size_t.
2829
        (fold_builtin_strcspn): Likewise.
2830
 
2831
2008-10-31  Nathan Froyd  
2832
 
2833
        * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
2834
        attribute for struct return convention.
2835
 
2836
2008-10-31  Nathan Froyd  
2837
 
2838
        * config/rs6000/crtsavres.asm: Really, really delete.
2839
 
2840
2008-10-31  Nathan Froyd  
2841
 
2842
        * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2843
        problem.
2844
        (rs6000_emit_prologue): Invert logic.
2845
        * config/rs6000/rs6000.md (*save_gpregs_): Use explicit
2846
        (reg:P 11) instead of match_operand.
2847
        (*save_fpregs_): Likewise.
2848
        (*restore_gpregs_): Likewise.
2849
        (*return_and_restore_gpregs_): Likewise.
2850
        (*return_and_restore_fpregs_): Likewise.
2851
        * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2852
        (reg:P 11) insted of match_operand.
2853
        (*restore_gpregs_spe): Likewise.
2854
        (*return_and_restore_gpregs_spe): Likewise.
2855
 
2856
2008-10-28  Luis Machado  
2857
 
2858
        * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
2859
        list of word switches that take args.
2860
 
2861
2008-10-30  Jakub Jelinek  
2862
 
2863
        * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
2864
        (s390_output_pool_entry): Call it through for_each_rtx.
2865
 
2866
        PR middle-end/37730
2867
        * expr.c (store_constructor): For vectors, if target is a MEM, use
2868
        target's MEM_ALIAS_SET instead of elttype alias set.
2869
 
2870
2008-10-29  Kaz Kojima  
2871
 
2872
        PR target/37909
2873
        * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
2874
        no address.
2875
 
2876
2008-10-29  David Edelsohn  
2877
 
2878
        PR target/37878
2879
        * config/rs6000/predicates.md (word_offset_memref_operand):
2880
        Restructure code and look inside auto-inc/dec addresses.
2881
 
2882
2008-10-29  Steve Ellcey  
2883
 
2884
        PR target/32277
2885
        * libgcov.c (__gcov_indirect_call_profiler): Check
2886
        TARGET_VTABLE_USES_DESCRIPTORS.
2887
 
2888
2008-10-29  Stefan Schulze Frielinghaus  
2889
 
2890
        * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
2891
        (INITIAL_FRAME_POINTER_OFFSET): Remove.
2892
        * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
2893
        offset if eliminating soft frame pointer.
2894
        * config/spu/spu.md (stack_protect_set, stack_protect_test)
2895
        (stack_protect_test_si): Add initial machine description
2896
        for Stack Smashing Protector
2897
 
2898
2008-10-29  Manuel Lopez-Ibanez  
2899
 
2900
        PR 11492
2901
        * c-common.c (min_precision): Move to...
2902
        * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
2903
        * tree.h (tree_int_cst_min_precision): Declare.
2904
        * c-common.h (min_precision): Delete declaration.
2905
        * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
2906
        multiplication of non-negative integer constants.
2907
        * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
2908
        tree_int_cst_min_precision.
2909
        (finish_enum): Likewise.
2910
 
2911
2008-10-29  Joseph Myers  
2912
 
2913
        PR middle-end/36578
2914
        * convert.c (convert_to_real): Do not optimize conversions of
2915
        binary arithmetic operations between binary and decimal
2916
        floating-point types.  Consider mode of target type in determining
2917
        decimal type for arithmetic.  Unless
2918
        flag_unsafe_math_optimizations, do not optimize binary conversions
2919
        where this may change rounding behavior.
2920
        * real.c (real_can_shorten_arithmetic): New.
2921
        * real.h (real_can_shorten_arithmetic): Declare.
2922
 
2923
2008-10-29  Bernd Schmidt  
2924
 
2925
        * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
2926
        ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
2927
        * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
2928
        appropriate.
2929
        (must_save_p): For some workarounds, interrupts need to clobber a
2930
        P register.
2931
        (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
2932
        and LC1 for WA_05000257.
2933
        (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
2934
        WA_05000283 and WA_05000315.
2935
        * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
2936
        (movbi): Add alternative to set CC to 1; improve code for setting
2937
        CC to 0.
2938
        (dummy_load): New pattern.
2939
 
2940
2008-10-29  Jakub Jelinek  
2941
 
2942
        PR middle-end/37870
2943
        * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
2944
        BLKmode for non-memory, convert using a wider MODE_INT mode
2945
        or through memory.
2946
 
2947
        PR middle-end/37913
2948
        * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
2949
        that haven't been removed yet.
2950
 
2951
2008-10-29  Bernd Schmidt  
2952
 
2953
        * config/bfin/bfin.c (struct machine_function): New member
2954
        has_loopreg_clobber.
2955
        (bfin_expand_movmem): Set it when generating memcpy insns.
2956
        (n_regs_saved_by_prologue, expand_prologue_reg_save,
2957
        expand_epilogue_reg_restore): If we have hardware loops,
2958
        memcpy insns (indicated by has_loopreg_clobber) or function
2959
        calls, we need to save the loop registers.
2960
 
2961
2008-10-28  H.J. Lu  
2962
 
2963
        * config/i386/i386.c (core2_cost): Fix typos in comments.
2964
 
2965
2008-10-28  Jakub Jelinek  
2966
 
2967
        PR c/37924
2968
        * combine.c (make_compound_operation): Don't call make_extraction with
2969
        non-positive length.
2970
        (simplify_shift_const_1): Canonicalize count even if complement_p.
2971
 
2972
2008-10-28  Joseph Myers  
2973
 
2974
        * convert.c (strip_float_extensions): Do not remove or introduce
2975
        conversions between binary and decimal floating-point types.
2976
 
2977
2008-10-28  Jakub Jelinek  
2978
 
2979
        PR middle-end/37931
2980
        * fold-const.c (distribute_bit_expr): Convert common, left and
2981
        right arguments to type.
2982
 
2983
2008-10-28  Nick Clifton  
2984
 
2985
        * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
2986
        * config/mn10300/mn10300.c (fp_regs_to_save): Test the
2987
        call_really_used_regs array rather than the call_used_regs array.
2988
        (mn10300_get_live_callee_saved_regs, expand_prologue,
2989
        expand_epilogue, output_tst): Likewise.
2990
 
2991
2008-10-27  Jakub Jelinek  
2992
 
2993
        PR target/37378
2994
        * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
2995
        (df_get_entry_block_def_set): Neither here.
2996
        (df_get_regular_block_artificial_uses): Add EH_USES registers.
2997
 
2998
        PR tree-optimization/37879
2999
        * predict.c (tree_estimate_probability): Check if last_stmt is
3000
        non-NULL before dereferencing it.
3001
 
3002
2008-10-27  Vladimir Makarov  
3003
 
3004
        * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
3005
        (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
3006
        (ira_fast_allocation): Remove the prototype.
3007
 
3008
        * ira-color.c (update_copy_costs, allocno_cost_compare_func,
3009
        assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
3010
        (color_pass): Modify the updated costs.
3011
        (ira_color): Rename to color.  Make it static.
3012
        (ira_fast_allocation): Rename to fast_allocation.  Make it static.
3013
        (ira_color): New function.
3014
 
3015
        * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
3016
        change.
3017
 
3018
        * ira-lives.c (last_call_num, allocno_saved_at_call): New
3019
        variables.
3020
        (set_allocno_live, clear_allocno_live, mark_ref_live,
3021
        mark_ref_dead): Invalidate corresponding element of
3022
        allocno_saved_at_call.
3023
        (process_bb_node_lives): Increment last_call_num.  Setup
3024
        allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
3025
        allocno was already saved.
3026
        (ira_create_allocno_live_ranges): Initiate last_call_num and
3027
        allocno_saved_at_call.
3028
 
3029
        * ira-build.c (ira_create_allocno): Initiate
3030
        ALLOCNO_UPDATED_COVER_CLASS_COST.
3031
        (create_cap_allocno, propagate_allocno_info,
3032
        remove_unnecessary_allocnos): Remove setting updated costs.
3033
        (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
3034
 
3035
        * ira.c (ira):  Don't call ira_fast_allocation.
3036
 
3037
        * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
3038
        updated costs.
3039
 
3040
2008-10-27  Vladimir Makarov  
3041
 
3042
        PR middle-end/37813
3043
        * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
3044
 
3045
        * ira-int.h (ira_hard_regno_cover_class): New.
3046
 
3047
        * ira-lives.c (mark_reg_live, mark_reg_dead,
3048
        process_bb_node_lives): Use ira_hard_regno_cover_class.
3049
 
3050
        * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
3051
        (setup_hard_regno_cover_class): New function.
3052
        (ira_init): Call setup_hard_regno_cover_class.
3053
 
3054
        * ira-costs.c (cost_class_nums): Add comment.
3055
        (find_allocno_class_costs): Initiate cost_class_nums.
3056
        (setup_allocno_cover_class_and_costs): Check cost_class_nums.
3057
 
3058
2008-10-27  Vladimir Makarov  
3059
 
3060
        PR middle-end/37884
3061
        * ira-build.c (copy_live_ranges_to_removed_store_destinations):
3062
        Rename to copy_info_to_removed_store_destinations.  Propagate
3063
        conflict hard regs and register stack attribute.
3064
 
3065
2008-10-26  John David Anglin  
3066
 
3067
        PR middle-end/37316
3068
        * pa.c (function_arg_padding):  Pad complex and vector types
3069
        upward in 64-bit runtime.
3070
        (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
3071
 
3072
2008-10-26  Matthias Klose  
3073
 
3074
        * doc/install.texi: Document requirements on antlr.
3075
 
3076
2008-10-25  Richard Sandiford  
3077
 
3078
        * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
3079
        first.
3080
 
3081
2008-10-24  Michael Meissner  
3082
 
3083
        PR target/37841
3084
        * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
3085
        is defined, use it to modify the constant offset.
3086
 
3087
        * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
3088
 
3089
        * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
3090
        and short arguments to the correct location as mandated by the ABI.
3091
 
3092
2008-10-24  Kaz Kojima  
3093
 
3094
        PR rtl-optimization/37769
3095
        * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
3096
 
3097
2008-10-24  Kaz Kojima  
3098
 
3099
        * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
3100
        unwind-dw2-Os-4-200.o.
3101
 
3102
2008-10-24  Joseph Myers  
3103
 
3104
        * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
3105
        (convert_for_assignment): Remove ic_argpass_nonproto cases.
3106
 
3107
2008-10-24  Jakub Jelinek  
3108
 
3109
        PR tree-optimization/36038
3110
        * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
3111
        add sizetype IV with initial value zero instead of pointer type.
3112
 
3113
2008-10-24  Manuel López-Ibáñez  
3114
 
3115
        PR c/7543
3116
        * value-prof.c (gimple_stringop_fixed_value): Use parentheses
3117
        around bit operation.
3118
        * profile.c (is_edge_inconsistent): Likewise.
3119
        * fold-const.c (truth_value_p): Move from here...
3120
        * tree.h (truth_value_p): ... to here.
3121
        * c-tree.h (c_expr): Update description of original_code.
3122
        * c-typeck.c (parser_build_unary_op): Set original_code.
3123
        (parser_build_binary_op): Update call to warn_about_parentheses.
3124
        * c-common.c (warn_about_parentheses): Take two additional
3125
        arguments of the operands. Use a switch. Quote operators
3126
        appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
3127
        Add warning about !x | y and !x & y.
3128
        * c-common.h (warn_about_parentheses): Update declaration.
3129
 
3130
2008-10-24  Jakub Jelinek  
3131
 
3132
        * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
3133
        check_p_tool, check_p_vars, check_p_subno, check_p_comma,
3134
        check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
3135
        New variables.
3136
        (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
3137
        (check-%): For test targets listed in lang_checks_parallelized
3138
        if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
3139
        run the testing in multiple make goals, possibly parallel, and
3140
        afterwards run dg-extract-results.sh to merge the sum and log files.
3141
 
3142
2008-10-24  Richard Sandiford  
3143
 
3144
        * config/mips/mips.c (mips_canonicalize_move_class): New function.
3145
        (mips_move_to_gpr_cost): Likewise.
3146
        (mips_move_from_gpr_cost): Likewise.
3147
        (mips_register_move_cost): Make more fine-grained.
3148
 
3149
2008-10-23  Tobias Grosser  
3150
 
3151
        * graphite.c (graphite_apply_transformations): Check for
3152
        -fgraphite-identity.
3153
        * toplev.c (process_options): Add graphite_identity.
3154
        * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
3155
 
3156
2008-10-23  Bernd Schmidt  
3157
 
3158
        * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
3159
        mulhisihl and mulhisihh builtins.
3160
 
3161
        From Jie Zhang  
3162
        * config/bfin/bfin.md (composev2hi): Put operands into vector
3163
        with correct order.
3164
 
3165
2008-10-22  Chao-ying Fu  
3166
 
3167
        * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
3168
 
3169
2008-10-22  Bernd Schmidt  
3170
 
3171
        From Mike Frysinger  
3172
        * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
3173
        BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
3174
        * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
3175
        and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
3176
        Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
3177
        Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
3178
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
3179
        for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
3180
        for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
3181
        __ADSPBF51x__ for all of them.
3182
        * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
3183
        -mcpu bf512, bf514, bf516, and bf518.
3184
        * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
3185
        bf512-none, bf514-none, bf516-none, and bf518-none.
3186
        * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
3187
        * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
3188
        * doc/invoke.texi (Blackfin Options): Document that
3189
        -mcpu now accepts bf512, bf514, bf516, and bf518.
3190
 
3191
2008-10-22  Jakub Jelinek  
3192
 
3193
        PR middle-end/37882
3194
        * fold-const.c (build_range_type): For 1 .. signed_max
3195
        range call build_nonstandard_inter_type if signed_type_for
3196
        returned a type with bigger precision.
3197
 
3198
2008-10-22  Richard Guenther  
3199
 
3200
        * tree.def (COMPLEX_TYPE): Constrain element type.
3201
        * tree.c (build_complex_type): Assert that.
3202
        * tree-ssa-structalias.c (could_have_pointers): Complex types
3203
        cannot have pointers.
3204
 
3205
2008-10-22  Manuel López-Ibáñez  
3206
 
3207
        PR c/30949
3208
        * c-typeck.c (convert_for_assignment): Do not give declaration's
3209
        location for builtins. Spell out which type was expected and which
3210
        was given.
3211
 
3212
2008-10-22  Nick Clifton  
3213
 
3214
        * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
3215
        the fdpic register to be a target when running in fdpic mode.
3216
 
3217
2008-10-22  Rafael Espindola  
3218
 
3219
        * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
3220
        newly created statements.
3221
 
3222
2008-10-22  Kaz Kojima  
3223
 
3224
        PR target/37633
3225
        * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
3226
        * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
3227
        * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
3228
 
3229
2008-10-22  Jakub Jelinek  
3230
 
3231
        PR target/37880
3232
        * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
3233
        Adjust -mcmodel=medium description for 2005-07-31 changes.
3234
 
3235
2008-10-22  Jan Hubicka  
3236
            Jakub Jelinek  
3237
 
3238
        PR middle-end/35853
3239
        * doc/invoke.texi: Remove references to obsoleted -d dumps.
3240
 
3241
2008-10-21  Richard Henderson  
3242
 
3243
        PR 37815
3244
        * emit-rtl.c (get_spill_slot_decl): Export.
3245
        * emit-rtl.h (get_spill_slot_decl): Declare.
3246
        * var-tracking.c (vt_add_function_parameters): Relax assertion
3247
        on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
3248
 
3249
2008-10-21  Bob Wilson  
3250
 
3251
        * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
3252
        REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
3253
        of from insn.
3254
 
3255
2008-10-21  Adam Nemet  
3256
 
3257
        PR middle-end/37669
3258
        * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
3259
        processed by get_maxval_strlen.
3260
 
3261
2008-10-21  David Edelsohn  
3262
 
3263
        PR target/35485
3264
        * tree.c (get_file_function_name): Copy first_global_object_name.
3265
        Centralize call to clean_symbol_name.
3266
 
3267
2008-10-21  Sandra Loosemore  
3268
 
3269
        * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
3270
        * config/svr4.h (SVR4_ASM_SPEC): New.
3271
        (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
3272
        * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
3273
 
3274
        * doc/invoke.texi (Option Summary): Add -T to linker options.
3275
        (Link Options): Document -T.
3276
 
3277
2008-10-21  Jakub Jelinek  
3278
 
3279
        * tree-inline.c (tree_inlinable_function_p): Remove tuples
3280
        debugging hack.
3281
 
3282
        * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
3283
 
3284
        PR debug/37020
3285
        * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
3286
 
3287
2008-10-20  Daniel Berlin  
3288
 
3289
        * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
3290
        part of expression.
3291
 
3292
2008-10-20  Tobias Schlüter  
3293
 
3294
        * doc/install.texi: Fix typos in previous patch.
3295
 
3296
2008-10-19  Tobias Schlüter  
3297
 
3298
        * doc/install.texi: Document in-tree building of gcc and mpfr.
3299
 
3300
2008-10-19  Richard Guenther  
3301
 
3302
        * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
3303
 
3304
2008-10-19  Manuel López-Ibáñez  
3305
 
3306
        PR c/30260
3307
        * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
3308
        (build_enumerator): Convert enumerators that fit in integer to
3309
        integer type.
3310
 
3311
2008-10-18  Uros Bizjak  
3312
 
3313
        * config/i386/i386.md (unnamed peephole2): Do not force memory
3314
        operands of arith or logical instructions into registers for
3315
        non-TARGET_READ_MODIFY targets.
3316
 
3317
        (ffs_cmove): Change operand 0 predicate to register_operand.
3318
        Change operand 1 predicate to nonimmediate_operand.
3319
        (ffsdi2): Ditto.
3320
        (*ffs_no_cmove): Change operand 0 predicate to register_operand.
3321
 
3322
2008-10-18  Richard Guenther  
3323
 
3324
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
3325
        VIEW_CONVERT_EXPR case against invalid gimple.
3326
 
3327
2008-10-17  Andreas Krebbel  
3328
 
3329
        * c-parser.c (c_parser_binary_expression): Silence the
3330
        uninitialized variable warning emitted for binary_loc.
3331
 
3332
2008-10-16  Daniel Berlin  
3333
 
3334
        * tree-ssa-pre.c (phi_translate_set): Add constants to phi
3335
        translation cache.
3336
 
3337
2008-10-16  Joseph Myers  
3338
 
3339
        PR c/33192
3340
        * c-typeck.c (build_unary_op): Use omit_one_operand for
3341
        IMAGPART_EXPR of real argument.
3342
 
3343
2008-10-16  Jakub Jelinek  
3344
 
3345
        PR tree-optimization/37664
3346
        * fold-const.c (fold_binary): When optimizing comparison with
3347
        highest or lowest type's value, don't consider TREE_OVERFLOW.
3348
 
3349
2008-10-16  David Edelsohn  
3350
 
3351
        PR target/35483
3352
        * Makefile.in (coverage.o): Depend on $(TM_P_H).
3353
        * coverage.c: Include tm_p.h.
3354
        * config/rs6000/x-aix (jc1): Override LDFLAGS.
3355
        * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
3356
        dollar signs from PREFIX.
3357
        * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
3358
        instead of manual strip_name_encoding.
3359
 
3360
2008-10-16  Richard Guenther  
3361
 
3362
        PR middle-end/37418
3363
        * tree-ssa.c (useless_type_conversion_p_1): Do not treat
3364
        volatile qualified functions or methods as relevant.
3365
 
3366
2008-10-16  Jakub Jelinek  
3367
 
3368
        PR tree-optimization/37525
3369
        * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
3370
        sizetype unsigned constants, both in the case of C and bounds.
3371
 
3372
2008-10-15  Jan Hubicka  
3373
 
3374
        * ira-emit.c (change_regs): Return false when replacing reg by itself.
3375
 
3376
2008-10-14  Vladimir Makarov  
3377
 
3378
        PR target/37633
3379
        * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
3380
        HARD_REGNO_CALL_PART_CLOBBERED.
3381
 
3382
2008-10-15  Vladimir Makarov  
3383
 
3384
        PR middle-end/37535
3385
        * ira-lives.c (mark_early_clobbers): Remove.
3386
        (make_pseudo_conflict, check_and_make_def_use_conflicts,
3387
        check_and_make_def_conflicts,
3388
        make_early_clobber_and_input_conflicts,
3389
        mark_hard_reg_early_clobbers): New functions.
3390
        (process_bb_node_lives): Call
3391
        make_early_clobber_and_input_conflicts and
3392
        mark_hard_reg_early_clobbers.  Make hard register inputs live again.
3393
 
3394
        * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
3395
        early clobbers of pseudo-registers.
3396
 
3397
2008-10-15  Vladimir Makarov  
3398
 
3399
        PR middle-end/37674
3400
        * ira-build.c (ira_flattening): Recalculate
3401
        ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
3402
        from the scratch instead of the propagation.
3403
 
3404
2008-10-15  Richard Sandiford  
3405
 
3406
        * doc/rtl.texi (const_double): Remove the "addr" operand.
3407
        Describe CONST_DOUBLE_* macros under const_double rather
3408
        than const_vector.
3409
        (const_fixed): Fix the operand description.
3410
        (const): Add an @findex directive.
3411
        (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
3412
        after the constant rtl table.
3413
        (fix): Combine floating-point and fixed-point descriptions.
3414
        Fix hyphenation.
3415
        * sched-deps.c (sched_analyze_2): Remove reference to
3416
        CONST_DOUBLE_CHAIN.
3417
 
3418
2008-10-15  Richard Sandiford  
3419
 
3420
        * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
3421
        UNSPEC_GOTSYM_OFFs.
3422
        * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
3423
        for UNSPEC_GOTSYM_OFFs.
3424
        * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
3425
        (add_GOT_to_pic_reg): Use it.
3426
        * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
3427
 
3428
2008-10-15  Jan Sjodin  
3429
            Harsha Jagasia  
3430
 
3431
        PR tree-optimization/37485
3432
        * graphite.c (gmp_cst_to_tree): Moved.
3433
        (iv_stack_entry_is_constant): New.
3434
        (iv_stack_entry_is_iv): New.
3435
        (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
3436
        (loop_iv_stack_insert_constant): New.
3437
        (loop_iv_stack_pop): Use new datatpype.
3438
        (loop_iv_stack_get_iv): Same.
3439
        (loop_iv_stack_get_iv_from_name): Same.
3440
        (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
3441
        (loop_iv_stack_patch_for_consts): New.
3442
        (loop_iv_stack_remove_constants): New.
3443
        (graphite_create_new_loop): Use loop_iv_stack_push_iv.
3444
        (translate_clast): Call loop_iv_stack_patch_for_consts and
3445
        loop_iv_stack_remove_constants.
3446
        (gloog): Use new datatype.  Redirect construction edge to end
3447
        block to avoid accidental deletion.
3448
        * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
3449
        iv stack entry.
3450
        (union iv_stack_entry_data): New.  Data in iv stack entry.
3451
        (struct iv_stack_entry): New.  Datatype for iv stack entries.
3452
 
3453
2008-10-15  Sebastian Pop  
3454
 
3455
        * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
3456
        * graphite.c (free_scop): Same.
3457
        (build_scops): Same.
3458
        (free_scattering): New.
3459
        (build_cloog_prog): Call free_scattering.
3460
        (patch_phis_for_virtual_defs): Fix memleak.
3461
        (graphite_trans_bb_strip_mine): Same.
3462
        (limit_scops): Same.
3463
 
3464
2008-10-15  Sebastian Pop  
3465
            Harsha Jagasia  
3466
 
3467
        PR tree-optimization/37828
3468
        * graphite.c (graphite_trans_loop_block): Do not loop block
3469
        single nested loops.
3470
 
3471
2008-10-15  Sebastian Pop  
3472
 
3473
        PR tree-optimization/37686
3474
        * tree-loop-linear.c (linear_transform_loops): Build a
3475
        loop nest vector.  Pass it to lambda_compute_access_matrices.
3476
        * tree-data-ref.h (struct access_matrix): Store the loop nest
3477
        relative to which it encodes the information.
3478
        (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
3479
        (am_vector_index_for_loop): Reimplemented: iterate over the
3480
        loop nest for finding the loop index in the access matrix.
3481
        (lambda_compute_access_matrices): Update declaration.
3482
        * lambda-code.c (build_access_matrix): Pass the loop nest and
3483
        record it.
3484
        (lambda_compute_access_matrices): Same.
3485
 
3486
2008-10-15  Andreas Krebbel  
3487
 
3488
        * config/s390/s390.h (TARGET_DFP): This requires TARGET_HARD_FLOAT.
3489
        * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
3490
        TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
3491
        already implies hard float.  Also fix several insn condition
3492
        with TARGET_DFP which shall require TARGET_HARD_DFP instead.
3493
 
3494
2008-10-15  David Edelsohn  
3495
 
3496
        PR target/35483
3497
        Based on patches by Laurent Vivier.
3498
        * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
3499
        * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
3500
        * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
3501
        dollar sign to underscore.
3502
        (ASM_OUTPUT_EXTERNAL): Same.
3503
        (ASM_OUTPUT_LABELREF): New.
3504
        * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
3505
 
3506
        * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
3507
        * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
3508
        * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
3509
        * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
3510
 
3511
2008-10-15  Jakub Jelinek  
3512
 
3513
        PR tree-optimization/36881
3514
        * tree-switch-conversion.c (check_final_bb): For flag_pic, check
3515
        that each value doesn't need runtime relocations, for !flag_pic
3516
        check that each value is just a valid initializer constant.
3517
 
3518
2008-10-14  Richard Sandiford  
3519
 
3520
        * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
3521
        LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
3522
        COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
3523
        Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
3524
        GR_AND_ACC_REGS.
3525
        (REG_CLASS_NAMES): Update accordingly.
3526
        (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
3527
        rather than an unpredictable descriptive string.
3528
        * config/mips/mips.c (mips_register_move_cost): Remove comment.
3529
        (mips_register_move_cost): Check for specific COP*_REGS classes,
3530
        instead of ALL_COP_AND_GR_REGS.
3531
        (mips_ira_cover_classes): New function.
3532
        (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
3533
        (TARGET_IRA_COVER_CLASSES): Define.
3534
 
3535
2008-10-14  Douglas Gregor  
3536
 
3537
        PR c++/37553
3538
        * tree.c (build_type_attribute_qual_variant): Hash on the
3539
        unqualified type, and don't overwrite an existing
3540
        (type_hash_eq): Make the TYPE_NAME of the types significant, to
3541
        allow distinguishing between wchar_t and its underlying type. This
3542
        also means that we'll retain a little more typedef information.
3543
 
3544
2008-10-14  Andrey Belevantsev  
3545
            Dmitry Melnik  
3546
            Dmitry Zhurikhin  
3547
            Alexander Monakov  
3548
            Maxim Kuvyrkov  
3549
 
3550
        * target.h (struct gcc_target): Update prototypes of needs_block_p
3551
        and gen_spec_check.
3552
        * haifa-sched.c (create_check_block_twin): Update calls to the above.
3553
        * sel-sched.c (create_speculation_check): Likewise.
3554
        * doc/tm.texi: Provide documentation for new target hooks.
3555
 
3556
        * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
3557
        (ia64_gen_spec_insn): Removed.
3558
        (get_spec_check_gen_function, insn_can_be_in_speculative_p,
3559
        ia64_gen_spec_check): New static functions.
3560
        (ia64_alloc_sched_context, ia64_init_sched_context,
3561
        ia64_set_sched_context, ia64_clear_sched_context,
3562
        ia64_free_sched_context, ia64_get_insn_spec_ds,
3563
        ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
3564
        (ia64_needs_block_p): Change prototype.
3565
        (ia64_gen_check): Rename to ia64_gen_spec_check.
3566
        (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
3567
        into declaration, add special memory dependencies handling.
3568
        (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
3569
        TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3570
        TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
3571
        TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
3572
        Define new target hooks.
3573
        (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
3574
        (ia64_optimization_options): Turn on selective scheduling with -O3,
3575
        disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
3576
        default with selective scheduling.
3577
        (ia64_override_options): Initialize align_loops and align_functions
3578
        to 32 and 64, respectively.  Set global selective scheduling flags
3579
        according to target-dependent flags.
3580
        (rtx_needs_barrier): Support UNSPEC_LDS_A.
3581
        (group_barrier_needed): Use new mstop-bit-before-check flag.
3582
        Add heuristic.
3583
        (dfa_state_size): Make global.
3584
        (spec_check_no, max_uid): Remove.
3585
        (mem_ops_in_group, current_cycle): New variables.
3586
        (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
3587
        Initialize new variables.
3588
        (is_load_p, record_memory_reference): New functions.
3589
        (ia64_dfa_sched_reorder): Lower priority of loads when limit is
3590
        reached.
3591
        (ia64_variable_issue): Change use of current_sched_info to
3592
        sched_deps_info.  Update comment.  Note if a load or a store is issued.
3593
        (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
3594
        advance if maximal number of loads or stores was issued on current
3595
        cycle.
3596
        (scheduled_good_insn): New static helper function.
3597
        (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
3598
        a group barrier is needed.  Fix vertical spacing.  Guard the code
3599
        doing state transition with last_scheduled_insn check.
3600
        Mark that a stop bit should be before current insn if there was a
3601
        cycle advance.  Update current_cycle and mem_ops_in_group.
3602
        (ia64_h_i_d_extended): Change use of current_sched_info to
3603
        sched_deps_info. Reallocate stops_p by larger chunks.
3604
        (struct _ia64_sched_context): New structure.
3605
        (ia64_sched_context_t): New typedef.
3606
        (ia64_alloc_sched_context, ia64_init_sched_context,
3607
        ia64_set_sched_context, ia64_clear_sched_context,
3608
        ia64_free_sched_context): New static functions.
3609
        (gen_func_t): New typedef.
3610
        (get_spec_load_gen_function): New function.
3611
        (SPEC_GEN_EXTEND_OFFSET): Declare.
3612
        (ia64_set_sched_flags): Check common_sched_info instead of *flags.
3613
        (get_mode_no_for_insn): Change the condition that prevents use of
3614
        special hardware registers so it can now handle pseudos.
3615
        (get_spec_unspec_code): New function.
3616
        (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
3617
        ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
3618
        (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
3619
        during selective scheduling.
3620
        (ia64_speculate_insn): Use ds_get_speculation_types when
3621
        determining whether we need to change the pattern.
3622
        (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
3623
        (ia64_spec_check_src_p): Support new speculation/check codes.
3624
        (struct bundle_state): New field.
3625
        (issue_nops_and_insn): Initialize it.
3626
        (insert_bundle_state): Minimize mid-bundle stop bits.
3627
        (important_for_bundling_p): New function.
3628
        (get_next_important_insn): Use important_for_bundling_p.
3629
        (bundling): When shifting TImode from unimportant insns, ignore
3630
        also group barriers.  Assert that best state is found before
3631
        the backward bundling pass.  Print number of mid-bundle stop bits.
3632
        Minimize mid-bundle stop bits.  Check correct calculation of
3633
        mid-bundle stop bits.
3634
        (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
3635
        (final_emit_insn_group_barriers): Emit stop bits before insns starting
3636
        a new cycle.
3637
        (sel2_run): New variable.
3638
        (ia64_reorg): When flag_selective_scheduling2 is set, run the
3639
        selective scheduling pass instead of schedule_ebbs.
3640
 
3641
        * config/ia64/ia64.md (speculable1, speculable2): New attributes.
3642
        (UNSPEC_LDS_A): New UNSPEC.
3643
        (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
3644
        movti_internal, movsf_internal, movdf_internal,
3645
        movxf_internal): Make visible.  Add speculable* attributes.
3646
        (output_c_nc): New mode attribute.
3647
        (mov_speculative_a, zero_extenddi2_speculative_a,
3648
        mov_nc, zero_extenddi2_nc,
3649
        advanced_load_check_nc_): New insns.
3650
        (zero_extend*): Add speculable* attributes.
3651
 
3652
        * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
3653
        (msched-stop-bits-after-every-cycle): Likewise.
3654
        (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
3655
        Likewise.
3656
        (msched-spec-verbose): Remove.
3657
        (msched-prefer-non-data-spec-insns,
3658
        msched-prefer-non-control-spec-insns,
3659
        msched-count-spec-in-critical-path,
3660
        msel-sched-dont-check-control-spec): Use Target  Report Var
3661
        instead of Common Report Var.
3662
 
3663
        * config/ia64/itanium2.md: Remove incorrect bypass.
3664
 
3665
        * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
3666
 
3667
2008-10-14  Jakub Jelinek  
3668
 
3669
        PR middle-end/37805
3670
        * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3671
        and -fhelp=separate.
3672
 
3673
2008-10-14  Ben Elliston  
3674
 
3675
        * config/rs6000/rs6000.md (cell_micro): Fix formatting.
3676
 
3677
2008-10-13  Joseph Myers  
3678
 
3679
        * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
3680
        non-integer modes.
3681
 
3682
2008-10-13  Matthias Klose  
3683
 
3684
        * config/pa/linux-atomic.c: Work around missing header file
3685
        for hppa64-linux-gnu targets.
3686
 
3687
2008-10-13  Andrew Pinski  
3688
            Kaushal Kantawala  
3689
            Trevor Smigiel  
3690
            Grace Cao  
3691
 
3692
        * doc/invoke.texi (-mgen-cell-microcode): Document.
3693
        (-mwarn-cell-microcode): Document.
3694
        * cfglayout.c (locator_location): Export.
3695
        * rtl.h (locator_location): Define prototype.
3696
        * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
3697
        New predicate.
3698
        * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
3699
        * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
3700
        (mwarn-cell-microcode): New option.
3701
        * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
3702
        (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
3703
        cell and not already set.
3704
        Turn off string instructions if not generating cell microcode.
3705
        (rs6000_final_prescan_insn): New function that warns about microcoded
3706
        instructions.
3707
        * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
3708
        * config/rs6000/rs6000.md
3709
        Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
3710
        the instruction would have been microcoded on the Cell.  Set
3711
        cell_micro to always on unnamed patterns for the string instructions.
3712
        (cell_micro): Update definition, remove load/store conditional
3713
        microcoded.
3714
        (sign_extend:DI): Define new pattern for non microcoded version.
3715
        (sign_extend:SI): Likewise.
3716
        (compare (div:P)): Set cell_micro to not.
3717
        (andsi3): Define as an expand.
3718
        (andsi3_mc): New pattern.
3719
        (andsi3_nomc): New pattern.
3720
        (andsi3_internal0_nomc): New pattern.
3721
        (andsi3_internal2): Rename to ...
3722
        (andsi3_internal2_mc): this and enable iff generating microcode.
3723
        (andsi3_internal3): Rename to ...
3724
        (andsi3_internal3_mc): this and enable iff generating microcode.
3725
        (andsi3_internal4): Enable iif generating microcode.
3726
        (andsi3_internal5): Rename to ..
3727
        (andsi3_internal5_mc): this and enable iff generating microcode.
3728
        (andsi3_internal5_nomc): New pattern.
3729
        (extzvdi_internal1): Enable iff generating microcode.
3730
        (extzvdi_internal2): Likewise.
3731
        (rotlsi3_internal7): Set cell_micro to always if non immediate form.
3732
        (anddi3): Change to expand.
3733
        (anddi3_mc): Rename from anddi3.
3734
        (anddi3_no_mc): New pattern.
3735
        (anddi3_internal2): Rename to ..
3736
        (anddi3_internal2_mc): this and enable iff generating microcode.
3737
        (anddi3_internal2_nomc): New pattern.
3738
        (anddi3_internal3): Rename to ..
3739
        (anddi3_internal3_mc): this and enable iff generating microcode.
3740
        (anddi3_internal3_nomc): New pattern.
3741
        (movti_string): Set cell_micro to always if TARGET_STRING.
3742
        (stmsi8): Set cell_micro to always.
3743
        (stmsi7): Likewise.
3744
        (stmsi6): Likewise.
3745
        (stmsi5): Likewise.
3746
        (stmsi4): Likewise.
3747
        (stmsi3): Likewise.
3748
        (stmsi8_power): Likewise.
3749
        (stmsi7_power): Likewise.
3750
        (stmsi6_power): Likewise.
3751
        (stmsi5_power): Likewise.
3752
        (stmsi4_power): Likewise.
3753
        (stmsi3_power): Likewise.
3754
        (movsi_update2): Enable iff generating microcode.
3755
        (movhi_update3): Likewise.
3756
        (lmw): Set cell_micro to always.
3757
 
3758
2008-10-13  Richard Sandiford  
3759
 
3760
        * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
3761
        * config/s390/s390.c (machine_function): Remove
3762
        decomposed_literal_pool_addresses_ok_p.
3763
        (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
3764
        the difference of two labels.
3765
        (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
3766
        (s390_pool_offset): New function.
3767
        (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
3768
        (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
3769
 
3770
2008-10-13  Nathan Froyd  
3771
 
3772
        * doc/install.texi (powerpc-*-*): Require binutils 2.15.
3773
        (powerpc*-*-linux-gnu*): Describe.
3774
        * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
3775
        * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
3776
        config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
3777
        config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
3778
        config/rs6000/e500crtres32gpr.asm,
3779
        config/rs6000/e500crtres64gpr.asm,
3780
        config/rs6000/e500crtres64gprctr.asm,
3781
        config/rs6000/e500crtrest32gpr.asm,
3782
        config/rs6000/e500crtrest64gpr.asm,
3783
        config/rs6000/e500crtresx32gpr.asm,
3784
        config/rs6000/e500crtresx64gpr.asm,
3785
        config/rs6000/e500crtsav32gpr.asm,
3786
        config/rs6000/e500crtsav64gpr.asm,
3787
        config/rs6000/e500crtsav64gprctr.asm,
3788
        config/rs6000/e500crtsavg32gpr.asm,
3789
        config/rs6000/e500crtsavg64gpr.asm,
3790
        config/rs6000/e500crtsavg64gprctr.asm: Use it.
3791
        * config/rs6000/crtsavres.asm: Really remove.
3792
 
3793
2008-10-13  Kai Tietz  
3794
 
3795
        Fix PR/25502
3796
        * c-format.c (convert_format_name_to_system_name): Use
3797
        TARGET_OVERRIDES_FORMAT_INIT.
3798
        * config.gcc (extra_options): Add for mingw targets mingw.opt.
3799
        * config/i386/mingw.opt: New.
3800
        * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
3801
        * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
3802
        (ms_printf_length_specs): Removed const specifier.
3803
        * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
3804
        * doc/invoke.texi (Wno-pedantic-ms-format): New.
3805
 
3806
2008-10-13  Kaveh R. Ghazi  
3807
 
3808
        * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
3809
        * doc/install.texi: Bump recommended MPFR to 2.3.2.
3810
 
3811
2008-10-12  Kenneth Zadeck  
3812
 
3813
        PR middle-end/37808
3814
        * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
3815
        sure that ref has valid bb.
3816
 
3817
2008-10-12  Richard Henderson  
3818
 
3819
        PR middle-end/37447
3820
        * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
3821
        * alias.c (value_addr_p, stack_addr_p): Remove.
3822
        (nonoverlapping_memrefs_p): Remove IRA special case.
3823
        * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
3824
        * emit-rtl.h (set_mem_attrs_for_spill): Declare.
3825
        * reload1.c (alter_reg): Use it.
3826
 
3827
2008-10-12  Uros Bizjak  
3828
 
3829
        * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
3830
        of registers instead of eax, ebx, ecx and edx.  Use for loop
3831
        and check register for non-zero value before the call
3832
        to decode_caches_intel.
3833
 
3834
2008-10-11  Kenneth Zadeck  
3835
 
3836
        PR rtl-optimization/37448
3837
        * df.h (df_ref_class): New enum.
3838
        (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
3839
        (struct df_ref): Replaced with union df_ref_d.
3840
        (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
3841
        New members of df_ref_d union.
3842
        (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
3843
        DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
3844
        DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
3845
        DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
3846
        DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
3847
        DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
3848
        (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
3849
        (df_scan_bb_info, df_bb_regno_first_def_find,
3850
        df_bb_regno_last_def_find, df_find_def, df_find_use,
3851
        df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3852
        debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
3853
        df_ref_create, df_ref_remove, df_compute_accessed_bytes,
3854
        df_get_artificial_defs, df_get_artificial_uses, union_defs)
3855
        Replaced struct df_ref * with df_ref.
3856
        * df-scan.c (df_collection_rec, df_null_ref_rec,
3857
        df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
3858
        df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
3859
        df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
3860
        df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
3861
        df_reorganize_refs_by_reg_by_reg,
3862
        df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
3863
        df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
3864
        df_sort_and_compress_refs, df_install_ref, df_install_refs,
3865
        df_ref_record, df_get_conditional_uses, df_get_call_refs,
3866
        df_bb_refs_record, df_exit_block_uses_collect,
3867
        df_record_exit_block_uses, df_reg_chain_mark,
3868
        df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
3869
        df_ref * with df_ref.
3870
        (df_ref_record, df_uses_record, df_ref_create_structure): Added
3871
        df_ref_class parameter.
3872
        (df_scan_problem_data): Added new pools for different types of refs.
3873
        (df_scan_free_internal, df_scan_alloc, df_free_ref,
3874
        df_ref_create_structure): Processed new ref pools.
3875
        (df_scan_start_dump): Added counts of refs and insns.
3876
        (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
3877
        df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3878
        df_entry_block_defs_collect, df_exit_block_uses_collect): Added
3879
        code to pass df_ref_class down to ref creation functions.
3880
        (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
3881
        df_reg_chain_mark): Use macros to hide references to df_refs.
3882
        (df_ref_chain_change_bb): Removed.
3883
        (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
3884
        (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3885
        Enhanced to understand df_ref union structure.
3886
        * fwprop.c (local_ref_killed_between_p, use_killed_between,
3887
        all_uses_available_at, update_df, try_fwprop_subst,
3888
        forward_propagate_subreg, forward_propagate_and_simplify,
3889
        forward_propagate_into, fwprop, fwprop_addr): Replaced struct
3890
        df_ref * with df_ref.
3891
        (use_killed_between, all_uses_available_at): Use macros to hide
3892
        references to df_refs.
3893
        * regstat.c (regstat_bb_compute_ri,
3894
        regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
3895
        df_ref.
3896
        * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
3897
        see_handle_relevant_refs, see_analyze_one_def,
3898
        see_update_relevancy, see_propagate_extensions_to_uses): Replaced
3899
        struct df_ref * with df_ref.
3900
        * ra-conflict.c (record_one_conflict, clear_reg_in_live,
3901
        global_conflicts): Replaced struct df_ref * with df_ref.
3902
        * ddg.c (create_ddg_dep_from_intra_loop_link,
3903
        add_cross_iteration_register_deps, build_inter_loop_deps):
3904
        Replaced struct df_ref * with df_ref.
3905
        (create_ddg_dep_from_intra_loop_link,
3906
        add_cross_iteration_register_deps): Use macros to hide references
3907
        to df_refs.
3908
        * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
3909
        df_ref * with df_ref.
3910
        * df-core.c (df_bb_regno_first_def_find,
3911
        df_bb_regno_last_def_find, df_find_def, df_find_use,
3912
        df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3913
        debug_df_ref): Replaced struct df_ref * with df_ref.
3914
        (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
3915
        * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
3916
        df_ref.
3917
        * web.c (union_defs, entry_register, replace_ref, web_main):
3918
        Replaced struct df_ref * with df_ref.
3919
        (union_defs, replace_ref): Use macros to hide references to df_refs.
3920
        * global.c (compute_regs_asm_clobbered, build_insn_chain):
3921
        Replaced struct df_ref * with df_ref.
3922
        * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
3923
        * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets):
3924
        Replaced struct df_ref * with df_ref.
3925
        * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
3926
        mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
3927
        with df_ref.
3928
        * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
3929
        * df-byte-scan.c (df_compute_accessed_bytes_extract,
3930
        df_compute_accessed_bytes_strict_low_part,
3931
        df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
3932
        Replaced struct df_ref * with df_ref.
3933
        (df_compute_accessed_bytes): Use macros to hide references to df_refs.
3934
        * init-regs.c (initialize_uninitialized_regs): Replaced struct
3935
        df_ref * with df_ref.
3936
        * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
3937
        check_dependency, check_dependencies, record_uses): Replaced
3938
        struct df_ref * with df_ref.
3939
        (invariant_for_use, check_dependency): Use macros to hide
3940
        references to df_refs.
3941
        * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
3942
        get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
3943
        iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
3944
        (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
3945
        references to df_refs.
3946
        * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
3947
        with df_ref.
3948
        * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
3949
        * df-problems.c (df_rd_bb_local_compute_process_def,
3950
        df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
3951
        df_chain_unlink_1, df_chain_unlink, df_chain_copy,
3952
        df_chain_remove_problem, df_chain_create_bb_process_use,
3953
        df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
3954
        df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
3955
        df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
3956
        df_byte_lr_simulate_artificial_refs_at_top,
3957
        df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
3958
        df_note_bb_compute, df_note_add_problem, df_simulate_defs,
3959
        df_simulate_uses, df_simulate_artificial_refs_at_end,
3960
        df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
3961
        df_ref.
3962
        (df_chain_dump): Use macros to hide references to df_refs.
3963
        * config/mips/mips.c (r10k_simplify_address): Replaced struct
3964
        df_ref * with df_ref.
3965
        * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
3966
        mark_artificial_uses, mark_reg_dependencies,
3967
        byte_dce_process_block): Replaced struct df_ref * with df_ref.
3968
 
3969
2008-10-11  Eric Botcazou  
3970
 
3971
        * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
3972
        head comment.
3973
        (array_ref_element_size): Likewise.
3974
        (array_ref_low_bound): Likewise.
3975
        (array_ref_up_bound): Likewise.
3976
        * expr.c (contains_packed_reference): Likewise.
3977
        (array_ref_element_size): Likewise.
3978
        (array_ref_low_bound): Likewise.
3979
        (array_ref_up_bound): Likewise.
3980
        * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
3981
        with ARRAY_RANGE_REF.
3982
        (idx_find_step): Likewise.
3983
        (idx_record_use): Likewise.
3984
        (strip_offset_1): Likewise.
3985
        (idx_remove_ssa_names): Likewise.
3986
 
3987
2008-10-11  Uros Bizjak  
3988
            Andi Kleen  
3989
 
3990
        * config/i386/cpuid.h (__cpuid_count): New defines.
3991
        * config/i386/driver-i386.c (struct cache_desc): New structure.
3992
        (describe_cache): Use struct cache_desc to pass cache descriptions.
3993
        (detect_l2_cache): Ditto. Rename from decode_l2_cache.
3994
        (detect_caches_amd): Use struct cache_desc to describe caches.
3995
        (decode_caches_intel): Use struct cache_desc to pass cache
3996
        descriptions.  Update descriptions to match latest (rev -032,
3997
        December 2007) CPUID documentation.  Do not check valid bit here.
3998
        Check for Xeon MP value 0x49 problems.
3999
        (detect_caches_cpuid2): New function, split from detect_caches_intel.
4000
        Check valid bit before calling decode_caches_intel.  Detect number
4001
        of times to repeat CPUID instruction.
4002
        (detect_caches_cpuid4): New function.
4003
        (detect_caches_intel): Depending on max_level, call
4004
        detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
4005
        only when other methods fail to provide valid L2 cache description.
4006
 
4007
2008-10-11  John David Anglin  
4008
 
4009
        PR middle-end/37608
4010
        * pa.md (call, call_value): Generate an rtx for register r4 and pass
4011
        it to PIC call patterns.
4012
        (call_symref_pic): Revise pattern to expose PIC register save.  Remove
4013
        code generation and attributes from pattern.  Change peephole2 to
4014
        split for noreturn case.  Revise split pattern for non noreturn case.
4015
        (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
4016
        call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
4017
        * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
4018
        asserts.
4019
 
4020
2008-10-11  David Edelsohn  
4021
 
4022
        * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
4023
        (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
4024
        and fp_type.
4025
        (divdf3): Reformat long line.
4026
 
4027
2008-10-11  Michael J. Eager  
4028
 
4029
        * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
4030
        -mfpu options.
4031
        (rs6000_handle_option): Process -mfpu options.
4032
        * config/rs6000/rs6000.h (TARGET_XILINX_FPU): New.
4033
        (enum fpu_type_t): New.
4034
        * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
4035
        (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
4036
        fp_type.
4037
        (floatsisf2): Remove TARGET_SINGLE_FPU condition.
4038
        (floatdidf2): Add TARGET_SINGLE_FPU condition.
4039
        * config/rs6000/rs6000.opt (-mfpu): New.
4040
        (-mxilinx-fpu): New.
4041
        * config/rs6000/sysv4.h (DRIVER_SELF_SPECS): New.
4042
        * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
4043
        * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
4044
        * gcc/config.gcc: powerpc-xilinx-eabi target: New.
4045
        * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
4046
 
4047
2008-10-11  Jakub Jelinek  
4048
 
4049
        PR target/35760
4050
        * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
4051
        LO_SUM on Darwin if mode has just one unit.
4052
 
4053
2008-10-10  H.J. Lu  
4054
 
4055
        PR debug/37002
4056
        * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
4057
        has been optimized out.
4058
 
4059
2008-10-10  Richard Sandiford  
4060
 
4061
        * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
4062
        instead of PIC_DIRECT_ADDR_P.
4063
        (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
4064
        (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
4065
        (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
4066
        (PIC_OFFSET_P): Rename to...
4067
        (PCREL_SYMOFF_P): ...this.
4068
        (PIC_DIRECT_ADDR_P): Delete.
4069
        (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
4070
        PIC_OFFSET_P.
4071
        (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
4072
        single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
4073
        UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
4074
        * config/sh/sh.c (print_operand): Remove CONST handling.
4075
        (unspec_caller_rtx_p): Rewrite to use split_const and check
4076
        the operands of UNSPEC bases.
4077
        (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
4078
        with (unspec [A B] UNSPEC_SYMOFF).
4079
        (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
4080
        UNSPEC_PCREL_SYMOFF.
4081
        (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
4082
        * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
4083
        (UNSPEC_EXTRACT_U16): Likewise.
4084
        (UNSPEC_SYMOFF): Likewise.
4085
        (UNSPEC_PCREL_SYMOFF): Likewise.
4086
        (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
4087
        of constants.
4088
        (movsi_const_16bit): Likewise.
4089
        (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
4090
        (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
4091
        with (unspec [A B] UNSPEC_PCREL_SYMOFF).
4092
        (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
4093
        with (unspec [A B] UNSPEC_SYMOFF).
4094
        (symPLT_label2reg): Replace (minus A (minus B pc)) with
4095
         (unspec [A B] PCREL_UNSPEC_SYMOFF).
4096
        * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
4097
        (Csu): Likewise UNSPEC_EXTRACT_U16.
4098
        (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
4099
        (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
4100
 
4101
2008-10-10  Stepan Kasal  
4102
 
4103
        * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
4104
        for loop strip mining and loop blocking.
4105
 
4106
2008-10-10  Alexandre Oliva  
4107
 
4108
        * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
4109
        vary types depending on debug info.
4110
 
4111
2008-10-10  Alexandre Oliva  
4112
 
4113
        * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
4114
        before ensuring it's already computed.
4115
 
4116
2008-10-09  Jakub Jelinek  
4117
 
4118
        * rtl.h (locator_eq): New decl.
4119
        * cfglayout.c (locator_scope): New function.
4120
        (insn_scope): Use it.
4121
        (locator_eq): New function.
4122
        (fixup_reorder_chain): Search for last insn in src bb
4123
        that has locator set or first insn in dest bb.  Use
4124
        locator_eq instead of == to compare locators.
4125
        * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
4126
        * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
4127
        == to compare locators.
4128
 
4129
        * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
4130
        as used.
4131
        * gimple-low.c (lower_function_body, lower_gimple_return,
4132
        lower_builtin_setjmp): Set gimple_block on the newly created stmts.
4133
        * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
4134
        goto_block on edges if goto_locus is known.
4135
 
4136
        PR middle-end/37774
4137
        * tree.h (get_object_alignment): Declare.
4138
        * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
4139
        get_object_alignment if needed.
4140
        * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
4141
        handling to ...
4142
        (get_object_alignment): ... here.  New function.  Try harder to
4143
        determine alignment from get_inner_reference returned offset.
4144
 
4145
2008-10-08  Jakub Jelinek  
4146
 
4147
        * graphite.c (gloog): Don't call find_unreachable_blocks
4148
        before delte_unreachable_blocks.
4149
 
4150
        * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
4151
        goto_locus of true_edge into RTL locator.
4152
 
4153
2008-10-08  Uros Bizjak  
4154
 
4155
        * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
4156
        (*jcc_btdi_mask_rex64): Ditto.
4157
        (*jcc_btsi): Ditto.
4158
        (*jcc_btsi_mask): Ditto.
4159
        (*jcc_btsi_1): Ditto.
4160
        (*jcc_btsi_mask_1): Ditto.
4161
 
4162
2008-10-08  Paul Brook  
4163
 
4164
        * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
4165
        compatible profiler (__gnu_mcount_nc).
4166
        (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
4167
 
4168
2008-10-08  H.J. Lu  
4169
 
4170
        * config/i386/i386.c (initial_ix86_tune_features): Add
4171
        X86_TUNE_USE_VECTOR_FP_CONVERTS.
4172
        * config/i386/i386.h (ix86_tune_indices): Likewise.
4173
        (TARGET_USE_VECTOR_FP_CONVERTS): New.
4174
 
4175
        * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
4176
        instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
4177
        for FP to FP splitters.
4178
 
4179
2008-10-08  H.J. Lu  
4180
 
4181
        * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
4182
        splitter.
4183
 
4184
2008-10-08  Jakub Jelinek  
4185
 
4186
        PR target/36635
4187
        PR target/37290
4188
        PR rtl-optimization/37341
4189
        * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
4190
        to ORIG_BB, pass through ORIG_BB recursively.
4191
        (cse_condition_code_reg): Adjust caller.
4192
 
4193
2008-10-08  Kai Tietz  
4194
 
4195
        * sdbout.c (sdbout_one_type): Treat the value type
4196
        CONST_DECL for enumerals.
4197
 
4198
2008-10-07  H.J. Lu  
4199
 
4200
        * config/i386/i386.md: Remove trailing white spaces.
4201
 
4202
2008-10-07  Kenneth Zadeck  
4203
 
4204
        PR rtl-optimization/37448
4205
        * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
4206
        (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
4207
        Make unsigned long.
4208
        (struct output_info) [count]: Renamed total_created and made
4209
        unsigned long.
4210
        (struct output_info) [size]: Renamed total_allocated and made
4211
        unsigned long.
4212
        (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
4213
        Properly keep track of desc->size.
4214
        (print_statistics, dump_alloc_pool_statistics): Enhance the
4215
        printing of statistics to print the number of elements and to use
4216
        unsigned longs.
4217
 
4218
2008-10-07  Jakub Jelinek  
4219
 
4220
        PR middle-end/37576
4221
        * opts.h (CL_SAVE): Move up to flags range.
4222
        (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
4223
        CL_COMMON): Renumber.
4224
        (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
4225
        * opts.c (common_handle_option): Revert last change.
4226
 
4227
2008-10-07  H.J. Lu  
4228
 
4229
        * config/i386/i386-protos.h (ix86_schedule): New.
4230
 
4231
        * config/i386/i386.c (ix86_schedule): New.
4232
        (override_options): Add schedule to processor_alias_table.  Set
4233
        ix86_schedule from the schedule field in processor_alias_table.
4234
        (ix86_function_specific_save): Save ix86_schedule.
4235
        (ix86_function_specific_restore): Restore ix86_schedule.
4236
 
4237
        * config/i386/i386.md (cpu): Map to ix86_schedule instead of
4238
        ix86_tune.  Add none and remove i386, i486, pentium4, nocona
4239
        and generic32.
4240
 
4241
        * config/i386/i386.opt: Add schedule.
4242
 
4243
        * config/i386/ppro.md: Remove generic32.
4244
 
4245
2008-10-07  Simon Martin  
4246
 
4247
        PR c/35437
4248
        * expr.c (count_type_elements): Handle ERROR_MARK.
4249
 
4250
2008-10-07  Jakub Jelinek  
4251
 
4252
        PR debug/29609
4253
        PR debug/36690
4254
        PR debug/37616
4255
        * basic-block.h (struct edge_def): Add goto_block field.
4256
        * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
4257
        one insn with locus corresponding to edge's goto_locus if !optimize.
4258
        * profile.c (branch_prob): Copy edge's goto_block.
4259
        * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
4260
        emitted jumps.
4261
        (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
4262
        locator in between the merged basic blocks if !optimize and needed.
4263
        * cfgexpand.c (expand_gimple_cond): Convert goto_block and
4264
        goto_locus into RTL locator.  For unconditional jump use that
4265
        locator for the jump insn.
4266
        (expand_gimple_cond): Convert goto_block and goto_locus into
4267
        RTL locator for all remaining edges.  For unconditional jump
4268
        use that locator for the jump insn.
4269
        * cfgcleanup.c (try_forward_edges): Avoid the optimization if
4270
        there is more than one edge or insn locator along the forwarding
4271
        edges and !optimize.  If there is just one, set e->goto_locus.
4272
        * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
4273
        edge's goto_block.
4274
        (move_block_to_fn): Adjust edge's goto_block.
4275
 
4276
2008-10-07  H.J. Lu  
4277
 
4278
        PR middle-end/37731
4279
        * expmed.c (expand_mult): Properly check DImode constant in
4280
        CONST_DOUBLE.
4281
 
4282
2008-10-07  Jakub Jelinek  
4283
 
4284
        PR debug/37738
4285
        * dwarf2out.c (common_block_die_table): New variable.
4286
        (common_block_die_table_hash, common_block_die_table_eq): New
4287
        functions.
4288
        (gen_variable_die): Look up a DW_TAG_common_block die for a particular
4289
        COMMON block in the current scope rather than globally.  Optimize
4290
        DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
4291
        DW_OP_addr SYMBOL_REF+off.
4292
 
4293
2008-10-07  Eric Botcazou  
4294
 
4295
        * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) :
4296
        Return true for non-addressable GIMPLE operands.
4297
 
4298
2008-10-07  H.J. Lu  
4299
 
4300
        PR target/24765
4301
        * config/i386/i386.c (initial_ix86_tune_features): Remove
4302
        X86_TUNE_USE_BIT_TEST.
4303
        * config/i386/i386.h (ix86_tune_indices): Likewise.
4304
        (TARGET_USE_BIT_TEST): Removed.
4305
 
4306
2008-10-07  Bernhard Reutner-Fischer  
4307
 
4308
        * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
4309
 
4310
2008-10-06  Adam Nemet  
4311
 
4312
        * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
4313
        (mul3_mul3): ... into this new template.
4314
 
4315
2008-10-06  Aldy Hernandez  
4316
 
4317
        * gimplify.c (gimplify_arg): Add location argument.  Use it.
4318
        (gimplify_call_expr): Pass location to gimplify_arg.
4319
        (gimplify_modify_expr_to_memcpy): Same.
4320
        (gimplify_modify_expr_to_memset): Same.
4321
 
4322
2008-10-06  Andrew Pinski  
4323
 
4324
        * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4325
        Update calls to build_unary_op and build_indirect_ref for location
4326
        changes.
4327
 
4328
2008-10-06  Aldy Hernandez  
4329
 
4330
        build_modify_expr.
4331
        * c-decl.c (finish_decl): Pass input_location to build_unary_op.
4332
        * c-typeck.c (array_to_pointer_conversion): Pass location to
4333
        build_unary_op.
4334
        (function_to_pointer_conversion): Use error_at and warning_at.
4335
        (build_indirect_ref): Same.
4336
        (build_array_ref): Pass location to build_binary_op.
4337
        (parser_build_unary_op): Do not set location after calling
4338
        build_unary_op.
4339
        (build_unary_op): Add location argument.  Use it throughout.  Set
4340
        EXPR_LOCATION before returning new tree.
4341
        (build_modify_expr): Same.
4342
        (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
4343
        returning node.
4344
        * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
4345
        build_indirect_ref, build_modify_expr.
4346
        (c_finish_omp_for): Same.  Use error_at instead of error.
4347
        * c-common.c (c_common_truthvalue_conversion): Pass location to
4348
        build_unary_op.
4349
        (warn_for_div_by_zero): Add location argument.
4350
        * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
4351
        build_unary_op, warn_for_div_by_zero.
4352
        * c-parser.c (c_parser_typeof_specifier): Use
4353
        protected_set_expr_location.
4354
        (c_parser_statement_after_labels): Same.
4355
        (c_parser_condition): Same.
4356
        (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
4357
        (c_parser_conditional_expression): Use protected_set_expr_location.
4358
        (c_parser_unary_expression): Pass location to build_indirect_ref.
4359
        (c_parser_postfix_expression_after_primary): Pass location to
4360
        build_indirect_ref, build_unary_op.
4361
        (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
4362
 
4363
2008-10-06  Joshua Kinard  
4364
 
4365
        * doc/invoke.texi: List r1x000 family under the -march MIPS option.
4366
        * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
4367
        * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
4368
        r14000 and r16000.
4369
        (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
4370
        (mips_issue_rate): Handle PROCESSOR_R10000.
4371
        * config/mips/mips.md (cpu): Add r10000.
4372
        Include r10000.md.
4373
        * config/mips/10000.md: New file.
4374
 
4375
2008-10-06  Richard Sandiford  
4376
 
4377
        * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
4378
        * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
4379
        * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
4380
 
4381
2008-10-06  Richard Sandiford  
4382
 
4383
        * config/darwin-protos.h (machopic_function_base_name): Delete.
4384
        (machopic_function_base_sym): Likewise.
4385
        (machopic_gen_offset): Declare.
4386
        * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
4387
        (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
4388
        * config/darwin.c (machopic_function_base_name): Delete.
4389
        (machopic_function_base_sym): Likewise.
4390
        (gen_pic_offset): Rename to...
4391
        (machopic_gen_offset): ...this and remove the pic_base argument.
4392
        Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
4393
        is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
4394
        crtl->uses_pic_offset_table.
4395
        (machopic_indirect_data_reference): Use new machopic_gen_offset
4396
        interface.
4397
        (machopic_legitimize_pic_address): Likewise.
4398
        (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
4399
 
4400
        * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
4401
        MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
4402
        * config/i386/i386.c (output_set_got): Likewise.
4403
        (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
4404
        instead of a MINUS.
4405
        (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
4406
        (legitimate_address_p): Likewise.
4407
        (output_pic_addr_const): Likewise.
4408
        (output_addr_const_extra): Likewise.
4409
        (ix86_delegitimize_address): Expect darwin_local_data_pic to
4410
        match an UNSPEC rather than a MINUS.
4411
        * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
4412
        (builtin_setjmp_receiver): Use machopic_gen_offset.
4413
        * config/i386/predicates.md (pic_symbolic_operand): Handle
4414
        UNSPEC_MACHOPIC_OFFSET.
4415
 
4416
        * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
4417
        Use machopic_gen_offset and machopic_operand_p.
4418
        (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
4419
        (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
4420
        * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
4421
        (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
4422
        Set crtl->uses_pic_offset_table.
4423
 
4424
2008-10-06  Richard Sandiford  
4425
 
4426
        * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
4427
        Declare.
4428
        * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
4429
        * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
4430
        * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
4431
        (constant_pool_expr_p): Use split_const and check the base.
4432
        (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
4433
        instead of a MINUS.
4434
        (legitimate_constant_pool_address_p): Check toc_relative_p
4435
        instead of constant_pool_expr_p.
4436
        (print_operand_address): Always use output_addr_const for
4437
        constant pool addresses.
4438
        (rs6000_output_addr_const_extra): New function.
4439
        (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
4440
 
4441
2008-10-06  Vladimir Makarov  
4442
 
4443
        PR middle-end/37535
4444
 
4445
        * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
4446
        (mark_ref_live, mark_ref_dead): Use them.
4447
        (def_conflicts_with_inputs_p): Remove.
4448
        (mark_early_clobbers): New function.
4449
        (process_bb_node_lives): Call preprocess_constraints and
4450
        mark_early_clobbers.
4451
 
4452
        * doc/rtx.texi (clobber): Change how RA deals with clobbers.
4453
 
4454
2008-10-06  Danny Smith  
4455
 
4456
        * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
4457
        lib with -mthread switch.
4458
 
4459
2008-10-05  Dodji Seketeli  
4460
 
4461
        PR c++/37410
4462
        * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
4463
        function in two, making it call a new and reusable
4464
        dwarf2out_imported_module_or_decl() that takes the containing
4465
        BLOCK of the declaration in argument.
4466
        (dwarf2out_imported_module_or_decl_real): New function.
4467
        (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
4468
        IMPORTED_DECL in account.
4469
        * tree.def: Added IMPORTED_DECL node type.
4470
        * tree.h: Added accessors for IMPORTED_DECL nodes.
4471
        * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
4472
 
4473
2008-10-05  Ralf Wildenhues  
4474
 
4475
        * doc/gimple.texi: Fix some typos, wrap some long lines,
4476
        fix some broken wraps with continuations.
4477
        * tree-ssa-reassoc.c: Fix comment typos.
4478
 
4479
2008-10-04  John David Anglin  
4480
 
4481
        PR target/37603
4482
        * pa.c (legitimize_pic_address): Force function labels to memory in
4483
        word mode.
4484
 
4485
2008-10-04  Anton Blanchard  
4486
 
4487
        * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
4488
        (rs6000_split_atomic_op): Same.
4489
        (rs6000_split_compare_and_swap): Same.
4490
        (rs6000_split_compare_and_swapqhi): Same.
4491
 
4492
2008-10-04  Richard Guenther  
4493
 
4494
        * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
4495
        instead of pointer equality.
4496
        (vn_nary_op_eq): Likewise.
4497
 
4498
2008-10-03  Andrew Pinski  
4499
 
4500
        * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
4501
        condition.
4502
        (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
4503
        TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
4504
 
4505
2008-10-03  Danny Smith  
4506
 
4507
        * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
4508
        Revert previous change.
4509
 
4510
2008-10-03  Tom Tromey  
4511
 
4512
        * stringpool.c (ggc_alloc_string): Terminate string.
4513
 
4514
2008-10-03  Jakub Jelinek  
4515
 
4516
        * gimplify.c (gimplify_function_tree): For -finstrument-functions
4517
        use gimple_bind_{,set_}block instead of gimple_{,set_}block.
4518
        * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
4519
 
4520
        PR debug/37726
4521
        * gimplify.c (declare_vars): Use gimple_bind_block instead of
4522
        gimple_block.
4523
 
4524
2008-10-03  Pascal Obry  
4525
 
4526
        * gcov.c (create_file_names): Properly handle UNIX and DOS
4527
        directory separators.
4528
        (make_gcov_file_name): Likewise + convert the ':' DOS drive
4529
        separator to '~' to ensure clean filenames on Windows.
4530
 
4531
2008-10-02  Danny Smith  
4532
 
4533
        * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
4534
        Add a null terminator to the stripped name.
4535
 
4536
2008-10-02  David Edelsohn  
4537
 
4538
        * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
4539
        TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4540
        (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
4541
        TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
4542
        (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4543
        (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
4544
        TARGET_SINGLE_FLOAT.
4545
 
4546
2008-10-02  Daniel Jacobowitz  
4547
 
4548
        * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
4549
 
4550
2008-10-02  Richard Guenther  
4551
 
4552
        PR middle-end/37713
4553
        * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
4554
        and VECTOR_TYPE recurse with useless_type_conversion_p which
4555
        properly handles void pointer conversion.
4556
 
4557
2008-10-02  Danny Smith  
4558
 
4559
        PR target/37528
4560
        * config/i386/mingw32.h (LIBGCC_SPEC): Replace with ..
4561
        (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
4562
 
4563
2008-10-01  Andrew Pinski  
4564
 
4565
        * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4566
        Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
4567
        ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
4568
        they translate to non builtins.
4569
        * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
4570
        opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
4571
        __builtin_vec_promote, __builtin_vec_extract, and
4572
        __builtin_vec_insert.
4573
        * config/rs6000/rs6000.h (enum rs6000_builtins): Add
4574
        ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
4575
        ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
4576
        * config/rs6000/altivec.h (vec_extract): Define
4577
        (vec_insert): Define.
4578
        (vec_splats): Define.
4579
        (vec_promote): Define.
4580
 
4581
2008-10-01  Andrew Pinski  
4582
            Yukishige Shibata  
4583
            Trevor Smigiel  
4584
 
4585
        * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
4586
        Altivec intrinsics.
4587
        * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
4588
        prototype.  Add new parameter, blk.
4589
        Use BLKmode for the MEM if blk is true.
4590
        (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
4591
        ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
4592
        ALTIVEC_BUILTIN_STVRXL.
4593
        Update usage of altivec_expand_lv_builtin.
4594
        Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
4595
        ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
4596
        (altivec_init_builtins): If compiling for the Cell, also define the
4597
        cell VMX builtins.
4598
        * config/rs6000/rs6000.h (rs6000_builtins): Define
4599
        ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
4600
        ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
4601
        ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
4602
        ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
4603
        ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
4604
        ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
4605
        ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
4606
        * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
4607
        UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
4608
        UNSPEC_STVRX, and UNSPEC_STVRXL.
4609
        (altivec_lvlx): New pattern.
4610
        (altivec_lvlxl): New pattern.
4611
        (altivec_lvrx): New pattern.
4612
        (altivec_lvrxl): New pattern.
4613
        (altivec_stvlx): New pattern.
4614
        (altivec_stvlxl): New pattern.
4615
        (altivec_stvrx): New pattern.
4616
        (altivec_stvrxl): New pattern.
4617
        * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
4618
        (vec_lvlxl): Likewise.
4619
        (vec_lvrx): Define if PPU is defined.
4620
        (vec_lvrxl): Likewise.
4621
        (vec_stvlx): Define if PPU is defined.
4622
        (vec_stvlxl): Likewise.
4623
        (vec_stvrx): Define if PPU is defined.
4624
        (vec_stvrxl): Likewise.
4625
 
4626
2008-10-01  Geert Bosch  
4627
 
4628
        * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
4629
 
4630
2008-10-01  Richard Guenther  
4631
 
4632
        PR tree-optimization/37617
4633
        * tree-ssa-pre.c (create_expression_by_pieces): During FRE
4634
        do not add to the NEW_SETS.
4635
 
4636
2008-10-01  Richard Guenther  
4637
 
4638
        PR middle-end/37285
4639
        * tree-vrp.c (execute_vrp): If we optimized away the default
4640
        case make sure to promote the label that got in place of it
4641
        to a default case label.
4642
 
4643
2008-10-01  Richard Henderson  
4644
 
4645
        PR tree-opt/35737
4646
        * tree-complex.c (set_component_ssa_name): Don't optimize
4647
        is_gimple_min_invariant values with ssa_names in abnormal phis.
4648
 
4649
2008-09-30  Paolo Bonzini  
4650
 
4651
        PR tree-optimization/37662
4652
        * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
4653
        commutative binary operation if they are in the wrong order and
4654
        fold_build2 produces non-GIMPLE.
4655
 
4656
2008-09-30  Jakub Jelinek  
4657
 
4658
        PR tree-optimization/37662
4659
        PR tree-optimization/37663
4660
        * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
4661
        get_value_range with non-SSA_NAME.  Don't assert operands have been
4662
        folded, instead just bail out.
4663
 
4664
2008-09-30  Andrew Pinski  
4665
 
4666
        * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
4667
 
4668
2008-09-30  Richard Guenther  
4669
 
4670
        PR middle-end/37491
4671
        * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
4672
        build restrict-qualified pointers.
4673
        (vectorizable_store): Move alias check later.
4674
        (vectorizable_load): Likewise.
4675
 
4676
2008-09-30  Paolo Bonzini  
4677
 
4678
        * c-common.c (empty_if_body_warning): Remove.
4679
        * c-common.h (empty_if_body_warning): Remove.
4680
        * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
4681
        here the -Wempty-body warning for `if' and `else' statements.
4682
        * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
4683
 
4684
2008-09-29  H.J. Lu  
4685
 
4686
        * config/i386/i386.opt: Add msse2avx.
4687
 
4688
        * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
4689
        * config/i386/linux64.h (ASM_SPEC): Likewise.
4690
 
4691
        * doc/invoke.texi: Document -msse2avx.
4692
 
4693
2008-09-29  Eric Botcazou  
4694
 
4695
        * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
4696
 
4697
2008-09-29  Joseph Myers  
4698
 
4699
        * ifcvt.c (noce_emit_store_flag): If using condition from original
4700
        jump, reverse it if if_info->cond was reversed.
4701
 
4702
2008-09-29  Eric Botcazou  
4703
 
4704
        * expr.c (expand_expr_real_1) : Force op0 to
4705
        non-constant memory if it cannot be forced to constant memory.
4706
        Overhaul surrounding code and factor out common condition.
4707
 
4708
2008-09-29  Jeff Law  
4709
 
4710
        * reload1.c (alter_reg): Add missing curly braces.
4711
 
4712
2008-09-29  Michael J. Eager  
4713
 
4714
        * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
4715
        are easy.
4716
        * config/rs6000/rs6000.c (rs6000_override_options): Move
4717
        rs6000_init_hard_regno_mode_ok after all options changed.
4718
        Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
4719
        (rs6000_handle_option): Process -msingle-float, -mdouble-float,
4720
        -msimple-fpu flags.  Add warning messages if single FP not configured.
4721
        (rs6000_file_start): Output gnu_attribute for single-float.
4722
        (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
4723
        (rs6000_legitimize_address): Likewise.
4724
        (rs6000_legitimize_reload_address): Likewise.
4725
        (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
4726
        TARGET_SINGLE_FLOAT.
4727
        (function_arg_advance): Likewise (partial conversion).
4728
        (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
4729
        (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
4730
        TARGET_SINGLE_FLOAT.
4731
        (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
4732
        (rs6000_emit_prologue): Likewise.
4733
        (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
4734
        TARGET_SINGLE_FLOAT.
4735
        (rs6000_libcall_value): Likewise.
4736
        * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
4737
        (TARGET_DOUBLE_FLOAT): New default to 1
4738
        (TARGET_SIMPLE_FPU): New default to 0
4739
        (TARGET_SINGLE_FPU): New default to 0
4740
        (TARGET_SINGLE_FLOAT_MODE): New.
4741
        (TARGET_DOUBLE_FLOAT_MODE): New.
4742
        * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
4743
        TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
4744
        UNITS_PER_FP_WORD
4745
        * config/rs6000/rs6000.md (define_mode_iterator): Condition on
4746
        TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4747
        (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
4748
        copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
4749
        nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
4750
        muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
4751
        movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
4752
        floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
4753
        *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
4754
        fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
4755
        rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
4756
        floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
4757
        movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
4758
        extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
4759
        abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
4760
        cmptf_internal1, *cmptf_internal2): Condition on
4761
        TARGET_DOUBLE_FLOAT.
4762
        (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
4763
        mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
4764
        *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
4765
        btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
4766
        floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
4767
        *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
4768
        TARGET_SINGLE_FLOAT.
4769
        (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
4770
        * config/rs6000/rs6000.opt (-msingle-float): New.
4771
        (-mdouble-float): New.
4772
        (-msimple-fpu): New.
4773
        * doc/invoke.texi (RS/6000 and PowerPC Options): Add
4774
        -msingle-float, -mdouble-float, -msimple-fpu options.
4775
        * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
4776
        _SOFT_DOUBLE for -msingle-float.
4777
        * config.gcc: New config for target=powerpc-xilinx-eabi.
4778
 
4779
2008-09-29  Tobias Grosser  
4780
 
4781
        * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
4782
        have exit and entry.
4783
        (new_scop): Take entry and exit edge to define new SCoP.
4784
        (sd_region_p): New structure used during SCoP detection.
4785
        (move_scops): Delete.
4786
        (move_sd_regions): New.
4787
        (scopdet_info): Change the definition from edges back to basic_blocks.
4788
        (scopdet_edge_info):  Work on basic_blocks and rename to
4789
        scopdet_basic_block_info.
4790
        (split_difficult_bb): At the moment removed. We should later
4791
        add it at another place.
4792
        (build_scops_1): Work on basic_blocks.
4793
        (bb_in_sd_region): New.
4794
        (find_single_entry_edge): New.
4795
        (find_single_exit_edge): New.
4796
        (create_single_entry_edge): New.
4797
        (sd_region_without_exit): New.
4798
        (create_single_exit_edge): New.
4799
        (unmark_exit_edges): New.
4800
        (mark_exit_edges): New.
4801
        (create_sese_edges): New.
4802
        (build_graphite_scops): New.
4803
        (build_scops): Make SCoPs SESE.
4804
        (limit_scops): Use the new functions.
4805
 
4806
2008-09-29  Hans-Peter Nilsson  
4807
 
4808
        * config/cris/cris.h (IRA_COVER_CLASSES): Define.
4809
 
4810
2008-09-28  Andrew Pinski  
4811
 
4812
        PR target/37640
4813
        * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
4814
        address to a register before taking the lower part.
4815
 
4816
2008-09-28  Kaz Kojima  
4817
 
4818
        * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
4819
        for SHmedia.
4820
 
4821
2008-09-28  Andrew Pinski  
4822
            Kaushal Kantawala  
4823
 
4824
        PR tree-opt/36891
4825
        * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
4826
        the newly created variable.
4827
        Create a VECTOR_CST of all 1s for vector types.
4828
 
4829
2008-09-28  Eric Botcazou  
4830
 
4831
        PR middle-end/36575
4832
        * fold-const.c (div_and_round_double) : Fix typo.
4833
 
4834
2008-09-28  Eric Botcazou  
4835
 
4836
        * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
4837
        order to convert between modes.
4838
        (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
4839
 
4840
2008-09-27  Kaz Kojima  
4841
 
4842
        * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
4843
        if needed.
4844
 
4845
2008-09-26  Vladimir Makarov  
4846
 
4847
        Revert:
4848
        2008-09-25  Vladimir Makarov  
4849
        * ira-lives.c:...
4850
        * doc/rtl.texi:...
4851
 
4852
2008-09-26  Adam Nemet  
4853
 
4854
        * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
4855
        ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
4856
        them to yield false with MIPS16.
4857
 
4858
2008-09-26  Jakub Jelinek  
4859
 
4860
        PR middle-end/37275
4861
        * dwarf2out.c (tls_mem_loc_descriptor): New function.
4862
        (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
4863
        mem_loc_descriptor failed.  Accept UNSPEC.
4864
        (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
4865
        fail if one of the loc_descriptor calls for pieces failed.
4866
        (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
4867
        as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
4868
        if loc_descriptor_from_tree_1 on offset failed.
4869
 
4870
        PR middle-end/37576
4871
        * opts.c (common_handle_option): Don't call print_specific_help with
4872
        CL_SAVE as first argument.
4873
 
4874
2008-09-26  Peter O'Gorman  
4875
            Steve Ellcey  
4876
 
4877
        * configure: Regenerate for new libtool.
4878
        * aclocal.m4: Ditto.
4879
 
4880
2008-09-26  Pat Haugen  
4881
 
4882
        * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
4883
        alias set on MEM when saving stack pointer.
4884
        * config/rs6000/rs6000.md (allocate_stack): Likewise
4885
 
4886
2008-09-26  Dorit Nuzman  
4887
 
4888
        PR tree-optimization/37574
4889
        * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
4890
        * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
4891
        instead of vector_type for constants. Take computation out of loop.
4892
        (vect_get_vec_def_for_operand): Use only vectype for constant case,
4893
        and use only vector_type for invariant case.
4894
        (get_initial_def_for_reduction): Use vectype instead of vector_type.
4895
 
4896
2008-09-25  Jakub Jelinek  
4897
 
4898
        PR c/37645
4899
        * c-common.c (handle_weakref_attribute): Ignore the attribute unless
4900
        the decl is a VAR_DECL or FUNCTION_DECL.
4901
 
4902
2008-09-25  Vladimir Makarov  
4903
 
4904
        PR middle-end/37535
4905
        * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
4906
        (mark_ref_live, mark_ref_dead): Use them.
4907
        (def_conflicts_with_inputs_p): Remove.
4908
        (mark_early_clobbers): New function.
4909
        (process_bb_node_lives): Call preprocess_constraints and
4910
        mark_early_clobbers.
4911
 
4912
        * doc/rtl.texi (clobber): Change how RA deals with clobbers.
4913
 
4914
2008-09-25  Vladimir Makarov  
4915
 
4916
        PR middle-end/37448
4917
        * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
4918
        (ira_compress_allocno_live_ranges): New prototype.
4919
 
4920
        * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
4921
        (coalesced_allocnos_living_at_program_points): New.
4922
        (coalesced_allocnos_live_at_points_p,
4923
        set_coalesced_allocnos_live_points): New functions.
4924
        (coalesce_spill_slots): Rewrite.
4925
 
4926
        * ira-lives.c (remove_some_program_points_and_update_live_ranges,
4927
        ira_compress_allocno_live_ranges): New functions.
4928
 
4929
        * ira-build.c (ira_flattening): Call
4930
        ira_compress_allocno_live_ranges.
4931
        (ira_build): Ditto.
4932
 
4933
2008-09-25  H.J. Lu  
4934
 
4935
        * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
4936
        optimization.
4937
 
4938
2008-09-25  Richard Sandiford  
4939
 
4940
        * combine.c (make_compound_operation): Handle the 'E' format.
4941
        (count_rtxs): Likewise.
4942
        (update_table_tick): Likewise.
4943
        (get_last_value_validate): Likewise.
4944
 
4945
2008-09-25  Eric Botcazou  
4946
 
4947
        * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
4948
 
4949
2008-09-25  Sergei Dyshel  
4950
 
4951
        * matrix-reorg.c (transform_allocation_sites): Initializers
4952
        added to avoid the warning.
4953
 
4954
2008-09-25  Martin Jambor  
4955
 
4956
        * cgraph.c (free_nodes): New variable.
4957
        (NEXT_FREE_NODE): New macro.
4958
        (cgraph_create_node): Reuse nodes from the free list.  Do not
4959
        update uid if doing so.
4960
        (cgraph_remove_node): Add the node to the free list.
4961
 
4962
2008-09-25  Gerald Pfeifer  
4963
 
4964
        * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
4965
 
4966
2008-09-24  Richard Henderson  
4967
 
4968
        * dwarf2.h (DW_OP_GNU_encoded_addr): New.
4969
        * unwind-dw2.c (execute_stack_op): Handle it.
4970
 
4971
2008-09-24  David Edelsohn  
4972
 
4973
        Revert:
4974
        2008-09-24  Michael J. Eager  
4975
 
4976
2008-09-24  Aldy Hernandez  
4977
 
4978
        * c-common.c (fname_decl): New location argument.
4979
        * c-common.h (fname_decl): Same.
4980
        * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
4981
        {warning,error}.
4982
        (c_parser_typeof_specifier): Same.
4983
        (c_parser_parms_list_declarator): Same.
4984
        (c_parser_asm_string_literal): Same.
4985
        (c_parser_compound_statement_nostart): Same.
4986
        (c_parser_label): Same.
4987
        (c_parser_do_statement): Same.
4988
        (c_parser_asm_statement): Same.
4989
        (c_parser_unary_expression): Same.
4990
        (c_parser_sizeof_expression): Same.
4991
        (c_parser_postfix_expression): Same.
4992
        (c_parser_pragma): Same.
4993
        (c_parser_omp_clause_collapse): Same.
4994
        (c_parser_omp_clause_num_threads): Same.
4995
        (c_parser_omp_clause_schedule): Same.
4996
        (c_parser_omp_all_clauses): Same.
4997
        (c_parser_omp_sections_scope): Same.
4998
        (c_parser_omp_for_loop): Same.  Pass condition's location to
4999
        c_objc_common_truthvalue_conversion.
5000
        (c_parser_enum_specifier): Remove comment.
5001
 
5002
2008-09-24  Michael J. Eager  
5003
 
5004
        * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
5005
        are easy.
5006
        * config/rs6000/rs6000.c (rs6000_override_options): Move
5007
        rs6000_init_hard_regno_mode_ok after all options changed.
5008
        Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
5009
        (rs6000_handle_option): Process -msingle-float, -mdouble-float,
5010
        -msimple-fpu flags.  Add warning messages if single FP not configured.
5011
        (rs6000_file_start): Output gnu_attribute for single-float.
5012
        (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
5013
        (rs6000_legitimize_address): Likewise.
5014
        (rs6000_legitimize_reload_address): Likewise.
5015
        (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
5016
        TARGET_SINGLE_FLOAT.
5017
        (function_arg_advance): Likewise.
5018
        (function_arg): Likewise.
5019
        (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
5020
        (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
5021
        TARGET_SINGLE_FLOAT.
5022
        (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
5023
        (rs6000_emit_prologue): Likewise.
5024
        (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
5025
        TARGET_SINGLE_FLOAT.
5026
        (rs6000_libcall_value): Likewise.
5027
        * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
5028
        (TARGET_DOUBLE_FLOAT): New default to 1
5029
        (TARGET_SIMPLE_FPU): New default to 0
5030
        (TARGET_SINGLE_FPU): New default to 0
5031
        (TARGET_SINGLE_FLOAT_MODE): New.
5032
        (TARGET_DOUBLE_FLOAT_MODE): New.
5033
        * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
5034
        TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
5035
        UNITS_PER_FP_WORD
5036
        * config/rs6000/rs6000.md (define_mode_iterator): Condition on
5037
        TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
5038
        (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
5039
        copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
5040
        nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
5041
        muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
5042
        movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
5043
        floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
5044
        *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
5045
        fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
5046
        rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
5047
        floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
5048
        movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
5049
        extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
5050
        abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
5051
        cmptf_internal1, *cmptf_internal2): Condition on
5052
        TARGET_DOUBLE_FLOAT.
5053
        (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
5054
        mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
5055
        *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
5056
        btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
5057
        floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
5058
        *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
5059
        TARGET_SINGLE_FLOAT.
5060
        (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
5061
        * config/rs6000/rs6000.opt (-msingle-float): New.
5062
        (-mdouble-float): New.
5063
        (-msimple-fpu): New.
5064
        * doc/invoke.texi (RS/6000 and PowerPC Options): Add
5065
        -msingle-float, -mdouble-float, -msimple-fpu options.
5066
        * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
5067
        _SOFT_DOUBLE for -msingle-float.
5068
        * config.gcc: New config for target=powerpc-xilinx-eabi.
5069
 
5070
2008-09-23  Eric Botcazou  
5071
 
5072
        * config/sparc/constraints.md: New file.
5073
        * config/sparc/sparc.md: Include it.
5074
        * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
5075
        (sparc_extra_constraint_check): Delete.
5076
        * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
5077
        (memory_ok_for_ldd): New predicate.
5078
        (sparc_extra_constraint_check): Delete.
5079
        * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
5080
        (CONST_OK_FOR_LETTER_P): Likewise.
5081
        (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
5082
        (EXTRA_CONSTRAINT): Likewise.
5083
 
5084
2008-08-23  Steve Ellcey  
5085
 
5086
        * regrename.c (do_replace): Copy REG_POINTER value to new reg.
5087
 
5088
2008-09-23  Richard Sandiford  
5089
 
5090
        * alias.c (find_base_value): Use FIND_BASE_TERM.
5091
        * doc/tm.texi (FIND_BASE_TERM): Update documentation.
5092
 
5093
2008-09-23  Richard Sandiford  
5094
 
5095
        * config/i386/i386.c: Include cselib.h.
5096
        (ix86_pic_register_p): New function.
5097
        (ix86_delegitimize_address): Use it to check for the PIC register.
5098
 
5099
2008-09-23  Richard Sandiford  
5100
 
5101
        * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
5102
        * config/i386/i386.c (ix86_find_base_term): Don't check for
5103
        SYMBOL_REF and LABEL_REF.
5104
 
5105
2008-09-23  Richard Sandiford  
5106
 
5107
        * config/i386/i386.c (ix86_delegitimize_address): Wrap the
5108
        constant PLUS in a CONST.
5109
 
5110
2008-09-23  Kai Tietz  
5111
 
5112
        * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
5113
        check for sibcall support for w64.
5114
 
5115
2008-09-23  Eric Botcazou  
5116
 
5117
        * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
5118
 
5119
2008-09-23  Aldy Hernandez  
5120
 
5121
        * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
5122
        parser_build_binary_op.
5123
        * c-decl.c (build_enumerator): Pass location to build_binary_op.
5124
        * c-typeck.c (build_array_ref): Same.
5125
        (parser_build_unary_op): New location argument.
5126
        (pointer_diff): Pass location to build_binary_op,
5127
        c_objc_common_truthvalue_conversion.
5128
        (build_modify_expr): Same.
5129
        (build_unary_op): New location argument.
5130
        (build_binary_op): New location argument.
5131
        (c_objc_common_truthvalue_conversion): Pass location to
5132
        c_*common_truthvalue_conversion.
5133
        * c-convert.c (convert): Same.
5134
        * c-common.c (binary_op_error): New location argument.
5135
        (pointer_int_sum): Pass location to build_binary_op.
5136
        (c_common_truthvalue_conversion): New location argument.
5137
        (warn_for_sign_compare): Same.
5138
        * c-common.h: Add location argument to c_common_truthvalue_conversion,
5139
        binary_op_error, build_binary_op, warn_for_sign_compare.
5140
        * c-parser.c (c_parser_condition): Pass location to
5141
        c_*common_truthvalue_conversion.
5142
        (c_parser_conditional_expression): Save condition's location and pass
5143
        it on down.
5144
        (c_parser_binary_expression): Same, but for the binary operator's
5145
        location.
5146
        (c_parser_omp_for_loop): Pass location to
5147
        c_objc_common_truthvalue_conversion.
5148
 
5149
2008-09-23  Martin Jambor  
5150
 
5151
        * cgraph.c (cgraph_free_edge): Use sizeof(*e).
5152
        (cgraph_node_remove_callees): New temporary f.  Hold the next item
5153
        in f when looping.
5154
        (cgraph_node_remove_callers): Likewise.
5155
 
5156
        * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
5157
        (ipa_node_removal_hook): Likewise.
5158
 
5159
        * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
5160
        gimple_call_copy_skip_args and moved to the gimple_call section.
5161
        * gimple.c (gimple_copy_call_skip_args): Renamed to
5162
        gimple_call_copy_skip_args.  Changed al users.
5163
 
5164
2008-09-22  Vladimir Makarov  
5165
 
5166
        * ira-color.c (start_allocno_priorities): Rename to
5167
        setup_allocno_priorities.  Use costs and
5168
        ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
5169
        range lengths.  Get rid off doubles.
5170
        (ira_fast_allocations): Call start_allocno_priorities.
5171
 
5172
2008-09-22  David Daney  
5173
 
5174
        PR target/37593
5175
        * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
5176
        register if TARGET_LONG_CALLS.
5177
 
5178
2008-09-22  Richard Guenther  
5179
 
5180
        PR tree-optimization/37145
5181
        * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
5182
        value-numbering union accesses with their offset and size only.
5183
        (visit_reference_op_load): Fix simplification of inserted conversions.
5184
        * tree-ssa-pre.c (find_or_generate_expression): Do not
5185
        recursively generate expressions if running FRE.
5186
 
5187
2008-09-22  Adam Nemet  
5188
 
5189
        * config/mips/mips.h (ISA_HAS_BADDU): New macro.
5190
        * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di):
5191
        New patterns.
5192
 
5193
2008-09-22  Richard Guenther  
5194
 
5195
        PR tree-optimization/37145
5196
        * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
5197
        (phi_translate_1): Constant fold references.
5198
 
5199
2008-09-22  Ira Rosen  
5200
 
5201
        PR tree-optimization/37482
5202
        * tree-vectorizer.h (struct _slp_instance): Add new field.
5203
        (SLP_INSTANCE_FIRST_LOAD_STMT): New.
5204
        (get_earlier_stmt): New function.
5205
        * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
5206
        function.
5207
        (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
5208
        * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
5209
        asserts that GSI points to the scalar statement being vectorized.
5210
        Set new statement location according to GSI.
5211
        (vect_schedule_slp_instance): Use GSI of
5212
        SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
5213
 
5214
2008-09-21  Jan Hubicka  
5215
 
5216
        * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
5217
        (ipcp_insert_stage): Update dead_nodes bitmap.
5218
 
5219
2008-09-22  Danny Smith  
5220
 
5221
        PR target/37528
5222
        * config/i386/t-cygming (SHLIB_LC): Remove.
5223
        (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
5224
        * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
5225
 
5226
2008-09-22  Hans-Peter Nilsson  
5227
 
5228
        PR middle-end/37170
5229
        PR middle-end/37280
5230
        * final.c (mark_symbol_ref_as_used): New helper function.
5231
        (output_operand): Instead of just looking inside MEMs for
5232
        SYMBOL_REFs, use new helper function and for_each_rtx.
5233
        * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
5234
        to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
5235
        Make head comment more general.
5236
        * config/darwin.c (machopic_output_indirection): Handle weak
5237
        references here, like in assemble_external.
5238
 
5239
2008-09-21  Eric Botcazou  
5240
 
5241
        * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
5242
        (sparc_emit_float_lib_cmp): Change return type.
5243
        * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
5244
        (gen_compare_operator): New function.
5245
        (sparc_emit_float_lib_cmp): Return the new operator to be used in
5246
        the comparison sequence.  Minor tweaks.
5247
        * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
5248
        that the final operator and the result of sparc_emit_float_lib_cmp
5249
        match for software TFmode; use emit_insn in lieu of emit_jump_insn.
5250
        (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
5251
        buneq, bunge, bunle, bltgt): Assert that the final operator and the
5252
        result of sparc_emit_float_lib_cmp match for software TFmode.
5253
        (movqicc, movhicc, movsicc, movdicc): Merge into...
5254
        (movcc): ...this.
5255
        (movsfcc, movdfcc, movtfcc): Merge into...
5256
        (movcc): ...this.
5257
        (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
5258
        into...
5259
        (mov_cc_v9): ...this.
5260
        (movdi_cc_sp64_trunc): Delete.
5261
        (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
5262
        movdi_cc_reg_sp64): Merge into...
5263
        (mov_cc_reg_sp64): ...this.
5264
        (movsf_cc_sp64): Rename into...
5265
        (movsf_cc_v9): ...this.
5266
        (movdf_cc_sp64): Rename into...
5267
        (movdf_cc_v9): ...this.
5268
        (movtf_cc_hq_sp64): Rename into...
5269
        (movtf_cc_hq_v9): ...this.
5270
        (movtf_cc_sp64): Rename into...
5271
        (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
5272
 
5273
2008-09-21  Diego Novillo  
5274
 
5275
        * doc/gccint.texi: Include generic.texi and gimple.texi.
5276
        Re-order index.
5277
        * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
5278
        (GIMPLE): Move to gimple.texi.
5279
        (Annotations): Remove references to to stmt_ann_t and
5280
        ssa_name_ann_t.
5281
        (SSA Operands): Rename from 'Statement Operands'.
5282
        * doc/generic.texi: New.
5283
        * doc/gimple.texi: New.
5284
        * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
5285
        * Makefile.in (TEXI_GCCINT_FILES):
5286
        * gimple.c (gimple_copy_call_skip_args): Rename from
5287
        giple_copy_call_skip_args.  Update all users.
5288
        * doc/gimple.texi (gimple_copy_call_skip_args): Document.
5289
 
5290
2008-09-21  Ira Rosen  
5291
 
5292
        PR tree-optimization/37539
5293
        * tree-vect-transform.c (vect_transform_strided_load): Save vector
5294
        statement in related statement field only for the first load of the
5295
        group of loads with the same data reference.
5296
 
5297
2008-09-20  Adam Nemet  
5298
 
5299
        * config/mips/mips.h (TUNE_OCTEON): New macro.
5300
        * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
5301
        (mips_multipass_dfa_lookahead): Return 2 for Octeon.
5302
        * config/mips/octeon.md: New file.
5303
        * config/mips/mips.md: Include octeon.md.  Restore
5304
        semi-alphabetical order of include files.
5305
 
5306
2008-09-20  H.J. Lu  
5307
 
5308
        PR target/37571
5309
        * config/i386/i386.md (*jcc_fused_1): Removed.
5310
        (*jcc_fused_2): Likewise.
5311
        (*jcc_fused_3): Likewise.
5312
        (*jcc_fused_4): Likewise.
5313
 
5314
2008-09-20  Richard Sandiford  
5315
 
5316
        * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
5317
        (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
5318
        * target.h (gcc_target): Add ira_cover_classes.
5319
        * ira.c: Remove IRA_COVER_CLASSES guards.
5320
        (setup_cover_and_important_classes): Use targetm.ira_cover_classes
5321
        instead of IRA_COVER_CLASSES.
5322
        (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
5323
        (setup_class_translate): Likewise.
5324
        (setup_reg_class_intersect_union): Likewise.
5325
        (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
5326
        test of targetm.ira_cover_classes.
5327
        * opts.c (decode_options): Use targetm.ira_cover_classes instead
5328
        of IRA_COVER_CLASSES.
5329
        * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
5330
        (TARGET_INITIALIZER): Include it.
5331
        * targhooks.h (default_ira_cover_classes): Declare.
5332
        * targhooks.c (default_ira_cover_classes): New function.
5333
 
5334
2008-09-19  Bob Wilson  
5335
 
5336
        * config/xtensa/xtensa.md (reload_literal): Handle MEM operands.
5337
 
5338
2008-09-19  Ian Lance Taylor  
5339
 
5340
        * varasm.c (narrowing_initializer_constant_valid_p): Return
5341
        NULL_TREE if ENDTYPE is not an integer.
5342
 
5343
2008-09-19  Andrew Pinski  
5344
 
5345
        PR tree-opt/30930
5346
        * tree-ssa.c (execute_update_addresses_taken): Also update
5347
        DECL_GIMPLE_REG_P for vector and complex types.
5348
 
5349
2008-09-19  Andrew MacLeod  
5350
            Jan Hubicka  
5351
 
5352
        PR middle-end/37567
5353
        * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
5354
        empty before freeing them.
5355
        (find_replaceable_exprs): Move asserts to free_temp_expr_table.
5356
 
5357
2008-09-18  Bob Wilson  
5358
 
5359
        * configure.ac: Add HAVE_AS_TLS check for Xtensa.
5360
        * config/xtensa/predicates.md (tls_symbol_operand): New.
5361
        * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
5362
        (TARGET_CANNOT_FORCE_MEM): Define.
5363
        (xtensa_tls_symbol_p): New.
5364
        (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
5365
        (xtensa_legitimate_address_p): Disallow constant pool TLS references.
5366
        (xtensa_tls_module_base): New.
5367
        (xtensa_call_tls_desc): New.
5368
        (xtensa_legitimize_tls_address): New.
5369
        (xtensa_legitimize_address): Handle TLS symbols.
5370
        (xtensa_tls_referenced_p_1): New.
5371
        (xtensa_tls_referenced_p): New.
5372
        (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
5373
        UNSPEC_DTPOFF.
5374
        (XTENSA_BUILTIN_THREAD_POINTER): New.
5375
        (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
5376
        (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
5377
        builtin.  Add declarations for __builtin_thread_pointer and
5378
        __builtin_set_thread_pointer.
5379
        (xtensa_fold_builtin): Recognize new builtins.
5380
        (xtensa_expand_builtin): Expand new builtins.
5381
        * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
5382
        (TARGET_THREADPTR): Define.
5383
        (HAVE_AS_TLS): Define default value.
5384
        (LEGITIMATE_CONSTANT_P): Disallow TLS references.
5385
        * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
5386
        (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
5387
        (UNSPECV_SET_TP): New.
5388
        (sym_TPOFF, sym_DTPOFF): New.
5389
        (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
5390
        * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
5391
        * configure: Regenerated.
5392
 
5393
2008-09-18  H.J. Lu  
5394
 
5395
        PR target/37394
5396
        * config/ia64/ia64.c (ia64_optimization_options): Move
5397
        checking and setting flag_schedule_insns_after_reload and
5398
        ia64_flag_schedule_insns2 back to ...
5399
        (ia64_override_options): Here.
5400
 
5401
2008-09-18  Andrew Pinski  
5402
 
5403
        PR rtl-opt/37451
5404
        * loop-doloop.c (doloop_modify): New argument zero_extend_p and
5405
        zero extend count after the correction to it is done.
5406
        (doloop_optimize): Update call to doloop_modify, don't zero extend
5407
        count before call.
5408
 
5409
2008-09-18  Martin Jambor  
5410
 
5411
        * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
5412
 
5413
        * ipa-prop.c: Correct comments.
5414
        * ipa-prop.h: Likewise.
5415
 
5416
2008-09-18  Jan Hubicka  
5417
 
5418
        PR middle-end/37448
5419
        * ipa-reference.c (ipa_reference_local_vars_info_d,
5420
        ipa_reference_global_vars_info_d,
5421
        ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
5422
        ipa_reference_vars_info_t): Move here from ipa-reference.h
5423
        (node_duplication_hook_holder, node_removal_hook_holder): New.
5424
        (get_reference_vars_info_from_cgraph): Rename to ...
5425
        (get_reference_vars_info): ... this one, use cgraph uids.
5426
        (get_local_reference_vars_info, get_global_reference_vars_info):
5427
        Use cgraph instead of decl.
5428
        (ipa_reference_get_read_local, ipa_reference_get_written_local):
5429
        Remove.
5430
        (ipa_reference_get_read_global, ipa_reference_get_not_read_global
5431
        ipa_reference_get_written_global,
5432
        ipa_reference_get_not_written_global): Use cgraph argument.
5433
        (check_call): Simplify avail check.
5434
        (scan_stmt_for_static_refs): Update.
5435
        (propagate_bits): Update.
5436
        (merge_callee_local_info): Remove.
5437
        (init_function_info): Use cgraph nodes.
5438
        (clean_function_local_data): Break out from ...
5439
        (clean_function): ... here.
5440
        (copy_local_bitmap, copy_global_bitmap): New functions.
5441
        (duplicate_node_data, remove_node_data): New functions.
5442
        (generate_summary): Register hooks; use visibility instead of
5443
        master clones.
5444
        (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
5445
        * ipa-reference.h (ipa_reference_local_vars_info_d,
5446
        ipa_reference_global_vars_info_d,
5447
        ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
5448
        ipa_reference_vars_info_t): Move to ipa-reference.c
5449
        (ipa_reference_get_read_local, ipa_reference_get_written_local):
5450
        Remove.
5451
        (ipa_reference_get_read_global, ipa_reference_get_written_global,
5452
        ipa_reference_get_not_read_global,
5453
        ipa_reference_get_not_written_global): Update prototype.
5454
        * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
5455
        (init_state): Remove.
5456
        (node_duplication_hook_holder, node_removal_hook_holder): New.
5457
        (get_function_state, set_function_state): Use VECtor.
5458
        (analyze_function): Check body availability.
5459
        (add_new_function): Likewise.
5460
        (duplicate_node_data, remove_node_data): New.
5461
        (generate_summary): Register hooks; do not care about clones.
5462
        (propafate): Do not care about clones; recursive functions are
5463
        not looping.
5464
        * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
5465
        * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
5466
        * edge_duplication_hook_holder, node_duplication_hook_holder): Make
5467
        static.
5468
        * tree-flow.h (function_ann_d): Remove reference_vars_info.
5469
        * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
5470
        Update call of ipa-reference accesors.
5471
 
5472
2008-09-18  Simon Baldwin  
5473
 
5474
        * c-opts.c (c_common_handle_option): Add handling for
5475
        -Wbuiltin-macro-redefined command line option.
5476
        * c.opt: Added builtin-macro-redefined option.
5477
        * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
5478
        documentation.
5479
 
5480
2008-09-18  Richard Guenther  
5481
 
5482
        PR tree-optimization/37258
5483
        * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
5484
        and signedness for integral types.
5485
        (vn_phi_eq): Require compatible types.
5486
 
5487
2008-09-18  Jakub Jelinek  
5488
 
5489
        PR debug/34037
5490
        * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
5491
        TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
5492
        VAR_DECL.
5493
        * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
5494
        !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
5495
        ggc_free other TREE_LIST nodes from that chain.
5496
        * function.c (instantiate_decls): Instantiate also DECL_RTL
5497
        of vars in cfun->local_decls, free that list afterwards.
5498
 
5499
2008-09-18  Eric Botcazou  
5500
 
5501
        * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
5502
        * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
5503
 
5504
2008-09-18  Andrew MacLeod  
5505
 
5506
        * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
5507
        * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
5508
 
5509
2008-09-18  Andrew MacLeod  
5510
 
5511
        PR tree-optimization/37102
5512
        * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
5513
        from a node. Check to see if another PHI is dead.
5514
        (eliminate_useless_phis): Rename from eliminate_virtual_phis and
5515
        remove real PHIs which have no uses.
5516
        (rewrite_out_of_ssa): Call eliminate_useless_phis.
5517
 
5518
2008-09-18  Richard Guenther  
5519
 
5520
        PR middle-end/37284
5521
        * tree-cfg.c (remove_useless_stmts_1): Remove
5522
        GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
5523
 
5524
2008-09-18  Nick Clifton  
5525
 
5526
        * config/frv/frv.h (IRA_COVER_CLASSES): Define.
5527
        (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
5528
        to frv_secondary_reload_class.
5529
        (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
5530
        * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
5531
        (frv_secondary_reload_class): Omit unused parameter.
5532
        (frv_secondary_reload): New function.  Handle the case when
5533
        secondary_reload_class() is called before the reload_(in|out)
5534
        _optabs have been initialised.
5535
        * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
5536
        unused parameter.
5537
        * config/frv/frv.md: Define an exclusion set between fr550_m0
5538
        and fr550_f0.
5539
 
5540
2008-09-18  Richard Guenther  
5541
 
5542
        PR tree-optimization/37456
5543
        * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
5544
        want to insert after ends a BB insert on the single fallthru
5545
        outgoing edge.
5546
 
5547
2008-09-18  Andreas Krebbel  
5548
 
5549
        * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
5550
        Mention -march=z9-109, z9-ec and z10.
5551
 
5552
2008-09-18  Uros Bizjak  
5553
 
5554
        PR rtl-optimization/37544
5555
        * regrename.c (maybe_mode_change): Exit early when copy_mode
5556
        is narrower than orig_mode and narrower than new_mode.
5557
 
5558
2008-09-18  Alexander Monakov  
5559
 
5560
        PR middle-end/37499
5561
        * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
5562
 
5563
        * sched-rgn.c (ref_counts): Remove.
5564
        (insn_referenced): New static variable.
5565
        (INSN_REF_COUNT): Remove.
5566
        (sched_run_compute_dependencies): Use insn_referenced instead of
5567
        INSN_REF_COUNT.
5568
        (add_branch_dependences): Likewise.  Delete dead assignment.
5569
 
5570
2008-09-17  Adam Nemet  
5571
 
5572
        * haifa-sched.c (dep_cost_1): Recognize the producer even if the
5573
        consumer is an asm.  Add comment why this is important.
5574
        (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
5575
        recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
5576
 
5577
2008-09-17  Joseph Myers  
5578
 
5579
        * expr.c (emit_group_store): Do not shift before moving via a
5580
        stack slot.
5581
 
5582
2008-09-17  Eric Botcazou  
5583
 
5584
        * varasm.c (initializer_constant_valid_p): Forbid view-conversions
5585
        from aggregate to non-aggregate type if the bit pattern is not fully
5586
        preserved afterwards.
5587
 
5588
2008-09-17  Richard Guenther  
5589
 
5590
        * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
5591
        (verify_gimple_assign): ... this.  Split into ...
5592
        (verify_gimple_assign_unary): ... this,
5593
        (verify_gimple_assign_binary): ... that,
5594
        (verify_gimple_assign_single): ... and this.
5595
        (verify_types_in_gimple_stmt): Call verify_gimple_assign.
5596
        Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
5597
        (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
5598
        (verify_types_in_gimple_reference): Be forgiving with
5599
        VIEW_CONVERT_EXPRs.
5600
        (verify_gimple_phi): Deal with virtual operands.
5601
 
5602
        * tree.def (PREDICT_EXPR): Change to tcc_expression.
5603
 
5604
2008-09-17  Andrew Pinski  
5605
 
5606
        * tree.c (get_callee_fndecl): Don't call the language hook.
5607
        * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
5608
        * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
5609
        (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
5610
 
5611
2008-09-17  Jakub Jelinek  
5612
 
5613
        * tree.c (protected_set_expr_location): Don't unnecessarily
5614
        check for error_mark_node.
5615
 
5616
2008-09-17  Art Haas  
5617
 
5618
        * ipa-reference.c (analyze_function): Declare step only if
5619
        ENABLE_CHECKING is defined.
5620
 
5621
2008-09-17  Jan Hubicka  
5622
 
5623
        PR c++/18071
5624
        * tree.h (DECL_INLINE): remove.
5625
        (DECL_DECLARED_INLINE_P): Update docs.
5626
        (DECL_NO_INLINE_WARNING_P): new.
5627
        (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
5628
        * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
5629
 
5630
2008-09-17  Jakub Jelinek  
5631
            Rainer Orth  
5632
 
5633
        PR bootstrap/37441
5634
        * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
5635
        false.
5636
 
5637
2008-09-17  Jan Hubicka  
5638
 
5639
        * ipa-reference.c (ipa_obstack): Remove.
5640
        (local_info_obstack, global_info_obstack): New.
5641
        (add_static_var): We now handle variables only.
5642
        (mark_address_taken, mark_load, mark_store): New functions based on ...
5643
        (check_operand): ... remove.
5644
        (get_asm_stmt_operands): Rename to ...
5645
        (check_asm_memory_clobber): ... this. Look only for memory clobber.
5646
        (scan_stmt_for_static_refs): Rewrite.
5647
        (scan_op_for_static_refs): Rename to ...
5648
        (scan_initializer_for_static_refs): do not look for VAR_DECL
5649
        initializers; stop recursion on types and decls.
5650
        (ipa_init): Use proper obstacks.
5651
        (analyze_variable): Use scan_initializer_for_static_refs.
5652
        (init_function_info): Use local obstack.
5653
        (analyze_function): Simplify.
5654
        (add_new_function): We don't need visited_nodes obstack.
5655
        (generate_summary): Use proper obstacks; cleanup after propagation.
5656
 
5657
2008-09-17  Richard Guenther  
5658
 
5659
        PR middle-end/37385
5660
        PR tree-optimization/37491
5661
        * alias.c (get_alias_set): Use the canonical type.
5662
        * tree-vect-transform.c (vectorizable_store): Use the type of
5663
        the lhs for the vector type.  Adjust checking.
5664
        (vectorizable_load): Adjust checking.
5665
 
5666
2008-09-16  Jakub Jelinek  
5667
            Adam Nemet  
5668
 
5669
        PR rtl-optimization/37483
5670
        * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
5671
        if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
5672
        Rearrange code to better match the original comment.  Check
5673
        t_unconditional first.  Improve comment.
5674
 
5675
2008-09-16  Jakub Jelinek  
5676
 
5677
        PR c/37529
5678
        * gimplify.c (gimplify_expr) : If gimplification of
5679
        GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
5680
 
5681
        PR c++/37530
5682
        * gimplify.c (gimplify_expr) : Don't create
5683
        GIMPLE_TRY if cleanup sequence is empty.
5684
 
5685
2008-09-16  Andrew Pinski  
5686
 
5687
        PR middle-end/37263
5688
        * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
5689
        eliminate IV if the cost are the same.
5690
 
5691
2008-09-16  Richard Guenther  
5692
 
5693
        PR middle-end/37380
5694
        * tree-sra.c (sra_build_assignment): Do not call the gimplifier
5695
        if not necessary.
5696
 
5697
2008-09-16  Richard Guenther  
5698
 
5699
        PR tree-optimization/37508
5700
        * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
5701
 
5702
2008-09-15  Kaz Kojima  
5703
 
5704
        * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
5705
 
5706
2008-09-15  Andrew Pinski  
5707
 
5708
        * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
5709
        use gen_floatdidf2 directly.
5710
        (floatunssidf2): Likewise.
5711
        (floatsidf_ppc64_mfpgpr): Remove.
5712
        (floatsidf_ppc64): Remove.
5713
        (floatunssidf_ppc64): Remove.
5714
 
5715
2008-09-15  Jakub Jelinek  
5716
 
5717
        * ira-color.c (finish_cost_update): Free update_cost_queue_elems
5718
        rather than update_cost_queue.
5719
 
5720
        * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
5721
        in every call starting with the second one, instead of only when
5722
        alias_bitmap_obstack.elements != NULL.
5723
 
5724
        * tree-predcom.c (filter_suitable_components): Free all refs in
5725
        act->refs vector before calling release_component.
5726
        (add_ref_to_chain): Free ref if not adding it to chain->refs.
5727
 
5728
        * tree-data-ref.c (free_subscripts): Free all subscript objects.
5729
 
5730
        * tree-loop-linear.c (linear_transform_loops): Initialize
5731
        lambda_obstack only after calling perfect_loop_nest_depth.
5732
        Goto free_and_continue instead of just continue for later failures.
5733
 
5734
        PR middle-end/37479
5735
        * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
5736
 
5737
        PR libmudflap/36397
5738
        * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
5739
 
5740
2008-09-14  Andreas Schwab  
5741
 
5742
        * tree-call-cdce.c (check_target_format): Accept Motorola formats.
5743
 
5744
2008-09-14  Jan Hubicka  
5745
 
5746
        * invoke.texi (-fconserve-stack): Document.
5747
        * opts.c (decode_options): Handle conserve_stack.
5748
        * common.opt (fconvserve_stack): New.
5749
 
5750
2008-09-14  David Edelsohn  
5751
 
5752
        * config.host: Add x-aix to host_xmake_file.
5753
        * config/rs6000/t-aix52: Do not override LDFLAGS.
5754
        * config/rs6000/x-aix: New file.
5755
 
5756
2008-09-14  Andy Hutchinson  
5757
 
5758
        PR target/19636
5759
        PR target/24894
5760
        PR target/31644
5761
        PR target/31786
5762
        * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
5763
        is not recognized as a valid register usage. Allow REG_X to be used
5764
        as a base pointer.
5765
        * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
5766
        forces a reload when using a base register.
5767
 
5768
2008-09-14  Danny Smith  
5769
 
5770
        * config/i386/cygming-crtend.c (register_frame_ctor): If
5771
        DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
5772
        directly with atexit.
5773
        (deregister_frame_ctor): Rename to ...
5774
        (deregister_frame_dtor): Use to call __gcc_deregister_frame
5775
        if !DEFAULT_USE_CXA_ATEXIT.
5776
 
5777
2008-09-13  Jan Hubicka  
5778
 
5779
        * cgraph.c: Include value-prof.h
5780
        * Makefile.in (cgraph.o): Add value-prof.h dependency.
5781
 
5782
2008-09-13  Jan Hubicka  
5783
 
5784
        PR middle-end/32581
5785
        * tree-profile.c (add_abnormal_goto_call_edges): New function.
5786
        (tree_gen_interval_profiler, tree_gen_pow2_profiler,
5787
        tree_gen_one_value_profiler, tree_gen_average_profiler,
5788
        tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
5789
 
5790
2008-09-13  Jan Hubicka  
5791
 
5792
        * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
5793
        too many bytes on misalligned blocks.
5794
 
5795
2008-09-13  Ralf Wildenhues  
5796
 
5797
        * doc/cfg.texi: Fix some typos.
5798
        * doc/extend.texi: Likewise.
5799
        * doc/install.texi: Likewise.
5800
        * doc/invoke.texi: Likewise.
5801
        * doc/rtl.texi: Likewise.
5802
        * doc/tree-ssa.texi: Likewise.
5803
 
5804
2008-09-13  Richard Guenther  
5805
 
5806
        PR middle-end/30141
5807
        * tree-nested.c (finalize_nesting_tree_1): Generate valid
5808
        gimple stores for memory rhs.
5809
 
5810
2008-09-13  H.J. Lu  
5811
 
5812
        PR rtl-optimization/37489
5813
        * cse.c (fold_rtx): Don't return const_true_rtx for float
5814
        compare if FLOAT_STORE_FLAG_VALUE is undefined.
5815
 
5816
2008-09-13  Jan Hubicka  
5817
 
5818
        PR tree-optimization/37392
5819
        * tree-inline.c (remap_gimple_stmt): Do not remap return value.
5820
 
5821
2008-09-13  Martin Jambor  
5822
            Jan Hubicka  
5823
 
5824
        * cgraph.c (free_edges): New variable.
5825
        (NEXT_FREE_EDGE): New macro.
5826
        (cgraph_free_edge): New function.
5827
        (cgraph_remove_edge): Call cgraph_remove_edge_1.
5828
        (cgraph_node_remove_callees): Likewise.
5829
        (cgraph_node_remove_callers): Likewise.
5830
        (cgraph_create_edge): Reuse edges from the free list.  Do not
5831
        update uid if doing so.
5832
        (cgraph_remove_*_hook): Add free call.
5833
 
5834
2008-09-13  Richard Sandiford  
5835
 
5836
        * ira-color.c (conflict_allocno_vec): Delete.
5837
        (update_cost_queue_elem): New structure.
5838
        (update_cost_queue): New variable.
5839
        (update_cost_queue_tail): Likewise.
5840
        (update_cost_queue_elems): Likewise.
5841
        (allocno_update_cost_check): Delete.
5842
        (initiate_cost_update): Allocate update_cost_queue_elems
5843
        instead of allocno_update_cost_check.
5844
        (finish_cost_update): Update the free()s accordingly.
5845
        (start_update_cost): New function.
5846
        (queue_update_cost): Likewise.
5847
        (get_next_update_cost): Likewise.
5848
        (update_copy_costs_1): Inline into...
5849
        (update_copy_costs): ...here.  Use a queue instead of recursive calls.
5850
        Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
5851
        once we've established they are equal.  Don't allocate update
5852
        costs if there is nothing to add to them.
5853
        (update_conflict_hard_regno_costs): Remove ALLOCNO and
5854
        DIVISOR arguments.  Use a queue instead of recursive calls;
5855
        process all the allocnos in the initial queue, rather than
5856
        a single allocno.
5857
        (assign_hard_reg): Use queue_update_cost instead of
5858
        conflict_allocno_vec.  Queue coalesced allocnos instead
5859
        of calling update_conflict_hard_regno_costs for each one.
5860
        Just call update_conflict_hard_regno_costs once for the
5861
        entire queue.
5862
        (ira_color): Remove conflict_allocno_vec handling.
5863
 
5864
2008-09-12  Sebastian Pop  
5865
 
5866
        PR tree-optimization/37484
5867
        * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
5868
        (save_var_name): Same.
5869
        (initialize_cloog_names): Same.
5870
        (initialize_cloog_names): Same.
5871
 
5872
2008-09-12  Sebastian Pop  
5873
 
5874
        * tree-scalar-evolution.c (set_instantiated_value): Set
5875
        instantiated_below.
5876
 
5877
2008-09-12  Vladimir Makarov  
5878
 
5879
        PR rtl-opt/37377
5880
 
5881
        * ira-build.c (common_loop_tree_node_dominator): Remove.
5882
        (copy_live_ranges_to_removed_store_destinations): New function.
5883
        (regno_top_level_allocno_map): Move to top level from ...
5884
        (ira_flattening): ... here.  Use
5885
        copy_live_ranges_to_removed_store_destinations.
5886
 
5887
        * ira-emit.c (generate_edge_moves): Fix a comment.
5888
 
5889
2008-09-12  Anatoly Sokolov  
5890
 
5891
        PR target/37466
5892
        * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
5893
        scratch register after 'set' pattern.
5894
 
5895
2008-09-12  Ulrich Weigand  
5896
 
5897
        * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
5898
        information passed to mark_reg_pointer.
5899
        * explow.c (force_reg): Likewise.
5900
 
5901
2008-09-12  Ulrich Weigand  
5902
 
5903
        * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
5904
        when building for the celledp architecture.
5905
 
5906
2008-09-12  Richard Guenther  
5907
 
5908
        * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
5909
 
5910
2008-09-12  Eric Botcazou  
5911
 
5912
        PR rtl-optimization/37424
5913
        * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
5914
        the regnos instead of the addresses.
5915
 
5916
2008-09-11  Janis Johnson  
5917
 
5918
        * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
5919
 
5920
2008-09-11  Richard Guenther  
5921
 
5922
        * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
5923
        entering the weaker equivalence recording.
5924
 
5925
        * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
5926
 
5927
2008-09-11  Jeff Law  
5928
 
5929
        * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
5930
        by assign_stack_local on the IRA path for stack slot sharing
5931
        as well as the non-IRA path.
5932
 
5933
2008-09-11  Uros Bizjak  
5934
 
5935
        * config/i386/i386.h: Fix whitespace issues.
5936
 
5937
2008-09-11  Martin Jambor  
5938
 
5939
        * ipa-prop.h (struct ipa_param_flags): Removed.
5940
        (struct ipa_param_descriptor): New structure.
5941
        (struct ipa_node_params): ipcp_lattices, param_decls and
5942
        param_flags moved to ipa_param_description.
5943
        (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
5944
        descriptors.  Renamed all users.
5945
        (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
5946
        changed to access descriptors.  Renamed all users.
5947
        (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
5948
        to access descriptors. Renamed all users.
5949
        * ipa-cp.c (ipcp_init_cloned_node): Call
5950
        ipa_initialize_node_params instead of ipa_count_formal_params and
5951
        ipa_create_param_decls_array.
5952
        (ipcp_analyze_node): Likewise.
5953
        (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
5954
        descriptors.  Renamed all users.
5955
        (ipcp_initialize_node_lattices): Remove allocation.
5956
        * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
5957
        ipa_initialize_node_params instead of ipa_count_formal_params and
5958
        ipa_create_param_decls_array.
5959
        * ipa-prop.c (ipa_create_param_decls_array): Renamed to
5960
        ipa_populate_param_decls, made static, added parameter info,
5961
        renamed mt to node, removed allocation, changed to use
5962
        descriptors.
5963
        (ipa_count_formal_params): Made static, added parameter info,
5964
        renamed mt to node.
5965
        (ipa_initialize_node_params): New function.
5966
        (ipa_check_stmt_modifications): Changed to use descriptors.
5967
        (ipa_detect_param_modifications): Removed allocation, changed to
5968
        use descriptors.
5969
        (ipa_note_param_call): Changed to use descriptors.
5970
        (ipa_analyze_params_uses): Removed allocation.
5971
        (ipa_free_node_params_substructures): Changed to use descriptors.
5972
        (ipa_edge_duplication_hook): Use the unused attribute.
5973
        (ipa_node_duplication_hook): Use the unused attribute, changed to
5974
        use descriptors, changed to duplicate descriptors.
5975
 
5976
        * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
5977
        changed all callers.  Call ipa_propagate_indirect_call_infos if doing
5978
        indirect inlining.  Made static.
5979
        (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
5980
        functions called only once.
5981
        (cgraph_decide_recursive_inlining): Don't call
5982
        ipa_propagate_indirect_call_infos, pass new_edges to
5983
        cgraph_mark_inline_edge instead.
5984
        (cgraph_decide_inlining_of_small_functions): Don't call
5985
        ipa_propagate_indirect_call_infos, pass new_edges to
5986
        cgraph_mark_inline_edge instead.
5987
        (cgraph_decide_inlining): Don't call
5988
        ipa_propagate_indirect_call_infos.
5989
        * ipa-prop.c: Check that vectors are allocated.
5990
 
5991
        * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
5992
        iff a new cgraph edges have been created.
5993
        (cgraph_decide_inlining): New variable redo_always_inline.
5994
        Flattening and always_inlining loop until callgraph stabilizes.
5995
        * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
5996
        true iff new cgraph edges have been created.
5997
        (propagate_info_to_inlined_callees): Likewise.
5998
        (ipa_propagate_indirect_call_infos): Likewise.
5999
 
6000
2008-09-11  Richard Guenther  
6001
 
6002
        * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
6003
        (set_prologue_iterations): Likewise.
6004
        * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
6005
        Likewise.
6006
        (vect_update_init_of_dr): Likewise.
6007
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
6008
        type verification.
6009
        * fold-const.c (fold_unary): Do not generate calculations
6010
        in sub-types.
6011
 
6012
2008-09-11  Paolo Bonzini  
6013
 
6014
        * dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
6015
        TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
6016
        (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
6017
 
6018
        * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
6019
        a bool.
6020
        * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
6021
        VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
6022
        before finalizing the changes.
6023
        * tree-vrp.c (extract_range_from_binary_expr): Add limited support
6024
        for BIT_IOR_EXPR.
6025
        (simplify_truth_ops_using_ranges): New.
6026
        (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
6027
        simplify_cond_using_ranges, simplify_switch_using_ranges): Return
6028
        whether a simplification was made.
6029
        (simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
6030
        use a switch statement and also call simplify_truth_ops_using_ranges.
6031
 
6032
2008-09-11  Jan Hubicka  
6033
 
6034
        * ggc-common.c (loc_array): Make static.
6035
        * dce.c (rest_of_handle_ud_dce): Free worklist.
6036
 
6037
2008-09-11  Jan Hubicka  
6038
 
6039
        * cgraph.c (cgraph_release_function_body): Plug memory leak on
6040
        ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
6041
        function so we are sure we do not dangle it forever.
6042
        * function.c (outer_function_chain, find_function_data): Remove.
6043
        (function_context_stack): New.
6044
        (push_function_context, pop_function_context): Update.
6045
        * function.h (struct function): Remove pointer outer.
6046
        (outer_function_chain, find_function_data): Remove.
6047
        * stmt.c (force_label_rtx): Remove dead call of find_function_data.
6048
 
6049
2008-09-11  Jan Hubicka  
6050
 
6051
        PR middle-end/37448
6052
        * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
6053
 
6054
2008-09-11  Jan Hubicka  
6055
 
6056
        * tree-ssa-pre.c (phi_translate_1): Fix memory leak
6057
 
6058
2008-09-11  Jan Hubicka  
6059
 
6060
        * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
6061
        (free_var_map_entry): New function.
6062
        (redirect_edge_var_map_destroy): Use it.
6063
 
6064
2008-09-11  Jan Hubicka  
6065
 
6066
        PR middle-end/37448
6067
        * tree-inline.c (add_lexical_block): Replace with ...
6068
        (prepend_lexical_block): ... prepend at begginig.
6069
        (remap_blocks): Use it and reverse later.
6070
        (expand_call_inline): Use prepend_lexical_block.
6071
 
6072
2008-09-11  Jan Hubicka  
6073
 
6074
        * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
6075
 
6076
2008-09-11  Jan Hubicka  
6077
 
6078
        * function.c (free_after_compilation): Call insn_locators_free.
6079
        * cfglayout.c (insn_locators_free): New function.
6080
        * rtl.h (insn_locators_free): Declare.
6081
 
6082
2008-09-11  Jan Hubicka  
6083
 
6084
        * ifcvt.c (check_cond_move_block): Make regs argument pointer to
6085
        vector pointer.
6086
        (cond_move_process_if_block): Update call.
6087
 
6088
2008-09-11  Jan Hubicka  
6089
 
6090
        * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
6091
        * vec.c: Include hashtab.h
6092
        (vec_descriptor, ptr_hash_entry): New structures.
6093
        (vec_desc_hash, vec_ptr_map): New static variables.
6094
        (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
6095
        register_overhead, free_overhead, vec_heap_free): New functions.
6096
        (vec_gc_o_reserve_1): ggc_free when resizing to 0.
6097
        (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
6098
        (cmp_statistic, add_statistics, dump_vec_loc_statistics):
6099
        New functions.
6100
 
6101
2008-09-11  Ira Rosen  
6102
 
6103
        PR tree-optimization/37474
6104
        * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
6105
        length of load permutation.
6106
 
6107
2008-09-11  Andreas Schwab  
6108
 
6109
        * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
6110
 
6111
2008-09-11  Jakub Jelinek  
6112
 
6113
        PR target/37382
6114
        * expmed.c (extract_low_bits): Avoid creating invalid subregs.
6115
        * dse.c (find_shift_sequence): Use extract_low_bits instead of
6116
        simplify_gen_subreg.
6117
 
6118
2008-09-11  Ira Rosen  
6119
 
6120
        * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
6121
        for alias check.
6122
 
6123
2008-09-10  Jakub Jelinek  
6124
 
6125
        PR middle-end/37338
6126
        * gimplify.c (gimplify_body): Call default_rtl_profile.
6127
 
6128
        PR target/36904
6129
        * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
6130
        instead of tok->val.node if not expanding to something else.  Handle
6131
        intervening CPP_PADDING tokens.
6132
        (altivec_categorize_keyword): Remove unneeded comparisons.
6133
 
6134
2008-09-10  Richard Guenther  
6135
 
6136
        * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
6137
 
6138
2008-09-10  Richard Guenther  
6139
 
6140
        PR middle-end/37432
6141
        * tree-inline.c (insert_init_stmt): Make sure to not
6142
        insert invalid gimple stores.
6143
 
6144
2008-09-10  Sebastian Pop  
6145
 
6146
        PR tree-optimization/37388
6147
        * toplev.c (process_options): Fail and warn when graphite
6148
        flags are used, but the compiler has not been configured
6149
        with graphite libraries.
6150
        * graphite.c (graphite_transform_loops): Remove printfs
6151
        to dump_file for the case when graphite is not available.
6152
 
6153
2008-09-10  H.J. Lu  
6154
 
6155
        PR target/37434:
6156
        * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
6157
        the even element into register.
6158
        (ix86_expand_vector_init_general): Don't use
6159
        ix86_expand_vector_init_interleave on V16QImode and V8HImode
6160
        if we can't move from GPR to SSE register directly.
6161
 
6162
2008-09-10  Bernd Schmidt  
6163
 
6164
        * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
6165
        not lose track of the number of NOPs needed.  Number of NOPs needed
6166
        for sync vs. loads workaround was switched; corrected.  Run second
6167
        pass for all workarounds.  No NOPs needed after call insns.  Change
6168
        second pass to use find_next_insn_start and find_load helpers in order
6169
        to properly detect parallel insns.
6170
        * config/bfin/bfin.md (cbranch_with_nops): Increase length.
6171
 
6172
2008-09-10  Jan Hubicka  
6173
 
6174
        * value-prof.c (gimple_ic): Fix tuplification bug.
6175
        * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
6176
        var warning.
6177
 
6178
2008-09-10  Jakub Jelinek  
6179
 
6180
        PR tree-optimization/37353
6181
        * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
6182
        (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
6183
        calls instead of cond_dead_built_in_calls.
6184
        (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
6185
        initalize the vector only before adding first entry.  Use VEC_safe_push
6186
        instead of VEC_quick_push.  Pass cond_dead_built_in_calls to
6187
        shrink_wrap_conditional_dead_built_in_calls call.
6188
 
6189
2008-09-10  Ira Rosen  
6190
 
6191
        PR tree-optimization/37385
6192
        * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
6193
        argument, and use it as a vector type if not NULL.
6194
        (vectorizable_store): Call vect_create_data_ref_ptr with the type of
6195
        vectorized rhs.
6196
        (vect_setup_realignment): Call vect_create_data_ref_ptr with
6197
        additional argument.
6198
        (vectorizable_load): Likewise.
6199
 
6200
2008-09-10  Jakub Jelinek  
6201
 
6202
        * config/i386/i386.md (SWI32): New mode iterator.
6203
        (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
6204
        of SWI.
6205
 
6206
2008-09-09  Vladimir Makarov  
6207
 
6208
        PR rtl-optimization/37435
6209
        * caller-save.c (insert_restore, insert_save): Check the mode by
6210
        reg_save_code.
6211
 
6212
2008-09-09  John David Anglin  
6213
 
6214
        PR other/37265
6215
        * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
6216
        splay tree lookup.
6217
        (dw2_output_indirect_constant_1): Use unstripped name in symbol
6218
        reference.
6219
 
6220
2008-09-09  Sandra Loosemore  
6221
 
6222
        * doc/invoke.texi (ARM Options): Correct errors in discussion
6223
        of -mfloat-abi, -mhard-float, and -msoft-float.
6224
 
6225
2008-09-09  Jakub Jelinek  
6226
            Jan Hubicka  
6227
 
6228
        PR middle-end/37356
6229
        * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
6230
        calling gimple_regimplify_operands on it.  Iterate over all newly
6231
        added statements, not just the last one.
6232
        (insert_init_stmt): Insert stmt into seq first, then call
6233
        gimple_regimplify_operands on it.  Don't create new gimplification
6234
        context, nor find referenced vars.
6235
 
6236
2008-09-09  Jakub Jelinek  
6237
 
6238
        PR other/37419
6239
        * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
6240
        to pointer to vector pointer.
6241
        * ipa-prop.c (ipa_propagate_indirect_call_infos,
6242
        propagate_info_to_inlined_callees): Likewise.
6243
        (update_call_notes_after_inlining): Likewise.  Push new indirect edge
6244
        to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
6245
        ipa_check_create_edge_args.
6246
        * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
6247
        argument to pointer to vector pointer.
6248
        (cgraph_decide_inlining_of_small_function): Adjust
6249
        cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
6250
        calls.
6251
 
6252
        PR target/37438
6253
        * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
6254
        optimizing for size, not speed.
6255
 
6256
        PR rtl-optimization/37408
6257
        * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
6258
        if parm is promoted.
6259
 
6260
2008-09-09  Sebastian Pop  
6261
 
6262
        PR tree-optimization/37375
6263
        * tree-scalar-evolution.c (scev_info_str): Add field
6264
        instantiated_below.
6265
        (new_scev_info_str, eq_scev_info, find_var_scev_info,
6266
        set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
6267
        set_instantiated_value): Pass instantiated_below.
6268
        (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
6269
        to above functions.
6270
        (instantiate_scev_1, instantiate_scev): Pass a basic block above which
6271
        the definitions are not instantiated.
6272
 
6273
        * tree-scalar-evolution.h (instantiate_scev): Update declaration.
6274
        (block_before_loop): New.
6275
        * tree-data-ref.c (dr_analyze_indices): Update uses of
6276
        instantiate_scev.
6277
        * graphite.c (block_before_scop): New.
6278
        (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
6279
        basic block, not a loop for determining the parameters.
6280
        (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
6281
        scop.
6282
        (idx_record_params, find_params_in_bb, find_scop_parameters,
6283
        build_loop_iteration_domains, add_conditions_to_domain): Update calls
6284
        to instantiate_scev.
6285
 
6286
        * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
6287
 
6288
2008-09-09  Vladimir Makarov  
6289
 
6290
        PR rtl-opt/37333
6291
 
6292
        * ira-build.c (ira_create_allocno): Setup frequency to 0.
6293
 
6294
        * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
6295
        Check zero freq and increase if necessary.
6296
 
6297
2008-09-09  Vladimir Makarov  
6298
 
6299
        * ira-conflicts.c (process_regs_for_copy): Check that the hard
6300
        regno is in the right range.  Add comments.
6301
 
6302
2008-09-09  Rainer Orth  
6303
 
6304
        * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
6305
        warnings.
6306
        * mips-tfile.c (copy_object): Cast alloca result to int *.
6307
        * mips-tdump.c (print_symbol): Cast xmalloc return values to
6308
        proper types.
6309
        Rename class to sclass.
6310
        (read_tfile): Cast read_seek return values to proper types.
6311
        Cast xcalloc return value to proper type.
6312
 
6313
2008-09-09  Rainer Orth  
6314
 
6315
        * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
6316
        * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
6317
        * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
6318
 
6319
2008-09-09  Jan Hubicka  
6320
 
6321
        * profile.c (is_edge_inconsistent): Add debug output; ignore
6322
        negative count on fake edges.
6323
        (is_inconsistent): Add debug output.
6324
 
6325
2008-09-09  Andrey Belevantsev  
6326
 
6327
        * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
6328
        dump message.
6329
        (choose_ready): When first insn is chosen from the ready list, also
6330
        dump it.
6331
 
6332
2008-09-09  Andrey Belevantsev  
6333
 
6334
        PR rtl-optimization/37360
6335
        * haifa-sched.c (max_issue): Do not assert that we never issue more
6336
        insns than issue_rate.  Add comment.
6337
 
6338
2008-09-09  Richard Guenther  
6339
 
6340
        * tree-cfg.c (verify_types_in_gimple_op): Remove.
6341
        (verify_types_in_gimple_call): Rename to ...
6342
        (verify_gimple_call): ... this.  Enhance.
6343
        (verify_types_in_gimple_cond): Remove.
6344
        (verify_gimple_comparison): New function ...
6345
        (verify_types_in_gimple_assign): ... split out from here.
6346
        (verify_types_in_gimple_return): Rename to ...
6347
        (verify_gimple_return): ... this.  Enhance.
6348
        (verify_types_in_gimple_switch): Rename to ...
6349
        (verify_gimple_switch): ... this.  Enhance.
6350
        (verify_gimple_goto): New function.
6351
        (verify_types_in_gimple_phi): Rename to ...
6352
        (verify_gimple_phi): ... this.  Enhance.
6353
        (verify_types_in_gimple_stmt): Adjust calls to helper functions.
6354
        Fold in single-statement cases from verify_types_in_gimple_seq_2.
6355
        (verify_types_in_gimple_seq_2): Remove cases handled in
6356
        verify_types_in_gimple_stmt.
6357
 
6358
2008-09-09  Bernd Schmidt  
6359
 
6360
        * config/bfin/bfin.c (n_regs_to_save): New static variable.
6361
        (push_multiple_operation, pop_multiple_operation): Set it.
6362
        (workaround_rts_anomaly): New function.
6363
        (workaround_speculation): New function, broken out of bfin_reorg.
6364
        (bfin_reorg): Call the new functions.
6365
 
6366
2008-09-09  Richard Guenther  
6367
 
6368
        PR middle-end/37354
6369
        PR middle-end/30165
6370
        * gimplify.c (gimplify_conversion): Change conversions of
6371
        non-register type to VIEW_CONVERT_EXPRs.
6372
        (gimplify_addr_expr): If we need to make the operand
6373
        addressable make sure to use a properly initialized
6374
        temporary for that so it gets a valid gimple store.
6375
 
6376
2008-09-09  Aldy Hernandez  
6377
 
6378
        * function.h (struct function): Add function_start_locus.
6379
        * cfgexpand.c (gimple_expand_cfg): Use it.
6380
        * c-parser.c (c_parser_declaration_or_fndef): Set it.
6381
 
6382
2008-09-09  Richard Guenther  
6383
 
6384
        PR tree-optimization/37433
6385
        * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
6386
        function calls.
6387
 
6388
2008-09-09  Richard Guenther  
6389
 
6390
        PR tree-optimization/37387
6391
        * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
6392
        and bits to a common type.
6393
 
6394
2008-09-09  Nick Clifton  
6395
 
6396
        * config/v850/v850.md (return): Restore frame size restriction.
6397
 
6398
2008-09-09  Paolo Bonzini  
6399
 
6400
        * c-common.c (c_expand_decl): Remove.
6401
        * c-common.h (anon_aggr_type_p): Remove prototype.
6402
        (DECL_ANON_UNION_ELEMS): Remove.
6403
        * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
6404
        * c-decl.c (anon_aggr_type_p): Remove.
6405
        * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
6406
        (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
6407
        * langhooks.h (struct lang_hooks): Remove expand_decl.
6408
        * langhooks.c (lhd_expand_decl): Remove.
6409
        * stmt.c (expand_anon_union_decl): Remove.
6410
        * tree.h (expand_anon_union_decl): Remove prototype.
6411
 
6412
2008-08-09  Andy Hutchinson  
6413
 
6414
        PR target/36609
6415
        * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
6416
        zero.
6417
        * config/avr/avr.md  (QISI): Define mode iterator.
6418
        (negated_tst): Redefine as split using mode macro.
6419
        (reversed_tstqi): Define insn as reversed compare with zero.
6420
        (reversed_tsthi): Ditto.
6421
        (reversed_tstsi): Ditto.
6422
 
6423
2008-09-08  Jakub Jelinek  
6424
 
6425
        PR middle-end/37393
6426
        * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
6427
        call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
6428
 
6429
        PR middle-end/37414
6430
        * predict.c (optimize_function_for_size_p): Don't segfault if
6431
        FUN is NULL.
6432
        * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
6433
        tree_swap_operands_p): Don't test cfun != NULL before calling
6434
        optimize_function_for_s*_p.
6435
 
6436
2008-09-08  Eric Botcazou  
6437
 
6438
        * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
6439
        end of the search.
6440
 
6441
2008-09-08  M R Swami Reddy  
6442
 
6443
        * crx/crx.h (IRA_COVER_CLASSES): Define.
6444
 
6445
2008-09-08  Jakub Jelinek  
6446
 
6447
        PR middle-end/37337
6448
        * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
6449
        even when a stmt has been gimple_modified_p, but after fold_stmt is
6450
        not any longer.  Remove unneeded may_have_exposed_new_symbols
6451
        initializations.
6452
 
6453
2008-09-08  Richard Guenther  
6454
 
6455
        PR tree-optimization/37421
6456
        * tree-ssa-sccvn.c (visit_copy): Make sure to fully
6457
        valueize the RHS.
6458
 
6459
2008-09-08  Jakub Jelinek  
6460
 
6461
        PR middle-end/37415
6462
        * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
6463
 
6464
2008-09-08  John David Anglin  
6465
 
6466
        PR driver/37409
6467
        * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
6468
        * pa-hpux10.h (LINK_SPEC): Likewise.
6469
        * pa-hpux11.h (LINK_SPEC): Likewise.
6470
 
6471
2008-09-07  John David Anglin  
6472
 
6473
        * pa32-regs.h (IRA_COVER_CLASSES): Define.
6474
        * pa64-regs.h (IRA_COVER_CLASSES): Define.
6475
 
6476
2008-09-07  Helge Deller  
6477
 
6478
        * pa/linux-atomic.c: New file.
6479
        * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
6480
        * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
6481
 
6482
2008-09-07  Richard Guenther  
6483
            Ira Rosen  
6484
 
6485
        PR tree-optimization/36630
6486
        * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
6487
        Call STRIP_NOPS before calling evolution_part_in_loop_num.
6488
 
6489
2008-09-07  Dorit Nuzman  
6490
            Ira Rosen  
6491
 
6492
        PR tree-optimization/35642
6493
        * config/rs6000/altivec.md (mulv8hi3): Implement.
6494
 
6495
2008-09-06  Jeff Law  
6496
 
6497
        * h8300/h8300.h (IRA_COVER_CLASSES): Define.
6498
 
6499
2008-09-06  Jan Hubicka  
6500
 
6501
        PR tree-optimization/14703
6502
        * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
6503
        declarations.
6504
        * passes.c (init_optimization_passes): Recompute inline parameters.
6505
 
6506
2008-09-06  Richard Sandiford  
6507
 
6508
        * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
6509
        DECL being null.
6510
 
6511
2008-09-06  Richard Sandiford  
6512
            Peter Fuerst  
6513
 
6514
        * doc/invoke.texi: Document -mr10k-cache-barrier=.
6515
        * doc/extend.texi: Document __builtin_mips_cache.
6516
        * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
6517
        * config/mips/mips.opt (mr10k-cache-barrier=): New option.
6518
        * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
6519
        __GCC_HAVE_BUILTIN_MIPS_CACHE.
6520
        (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
6521
        * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
6522
        (set_push_mips_isas): New variable.
6523
        (mips_r10k_cache_barrier): New variable.
6524
        (cache): New availability predicate.
6525
        (mips_builtins): Add an entry for __builtin_mips_cache.
6526
        (mips_build_cvpointer_type): New function.
6527
        (MIPS_ATYPE_CVPOINTER): New macro.
6528
        (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
6529
        mode is VOIDmode.
6530
        (r10k_simplified_address_p, r10k_simplify_address)
6531
        (r10k_uncached_address_p, r10k_safe_address_p)
6532
        (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
6533
        (r10k_needs_protection_p_call, r10k_needs_protection_p)
6534
        (r10k_insert_cache_barriers): New functions.
6535
        (mips_reorg_process_insns): Delete cache barriers after a
6536
        branch-likely instruction.
6537
        (mips_reorg): Call r10k_insert_cache_barriers.
6538
        (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
6539
        * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
6540
        (UNSPEC_R10K_CACHE_BARRIER): Likewise.
6541
        (mips_cache, r10k_cache_barrier): New define_insns.
6542
 
6543
2008-09-06  Richard Sandiford  
6544
 
6545
        * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
6546
        * ira-color.c (setup_allocno_left_conflicts_num): Use
6547
        hard_reg_set_equal_p instead of a comparison with
6548
        ira_zero_hard_reg_set.
6549
        * ira.c (setup_reg_subclasses): Likewise.
6550
        (setup_cover_and_important_classes): Likewise.
6551
        (setup_class_translate): Likewise.
6552
        (setup_reg_class_intersect_union): Likewise.
6553
        (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
6554
        (ira_init_once): Don't initialize them.
6555
 
6556
2008-09-05  Vladimir Makarov  
6557
 
6558
        * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
6559
 
6560
2008-09-05  Vladimir Makarov  
6561
 
6562
        * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
6563
 
6564
2008-09-05  Trevor Smigiel  
6565
 
6566
        Improved branch hints, safe hints, and scheduling.
6567
 
6568
        * haifa-sched.c (sched_emit_insn): Define.
6569
        * sched-int.h (sched_emit_insn): Add prototype.
6570
        * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
6571
        -mhint-max-distance -msafe-hints): Document.
6572
        * config/spu/spu.c (spu_flag_var_tracking): New.
6573
        (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
6574
        TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
6575
        TARGET_ASM_FILE_START): Define.
6576
        (TARGET_SCHED_ADJUST_PRIORITY): Remove.
6577
        (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
6578
        (spu_emit_branch_hint): Add blocks argument.
6579
        (insert_branch_hints, insert_nops): Remove.
6580
        (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
6581
        uses_ls_unit, spu_sched_init_global, spu_sched_init,
6582
        spu_sched_reorder, asm_file_start): New functions.
6583
        (clock_var, spu_sched_length, pipe0_clock,
6584
        pipe1_clock, prev_clock_var, prev_priority,
6585
        spu_ls_first, prev_ls_clock): New static variables.
6586
        * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
6587
        * config/spu.md (iprefetch): Add operand, make it clobber MEM.
6588
        (nopn_nv): Add a non-volatile version of nop.
6589
        * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
6590
        -mhint-max-distance, -msafe-hints): New options.
6591
 
6592
2008-09-05  Janis Johnson  
6593
            Samuel Tardieu  
6594
 
6595
        * opts.c (decode_options): Combine nested if statements.
6596
 
6597
        PR target/37283
6598
        * opts.c (decode_options): Handle more relationships among
6599
        unit-at-a-time, toplevel-reorder, and section-anchors.
6600
 
6601
2008-09-05  David Daney  
6602
 
6603
        * doc/install.texi (--enable-reduced-reflection): Document new option.
6604
 
6605
2008-09-05  Bob Wilson  
6606
 
6607
        * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
6608
        constantpool_mem_p.
6609
        (constantpool_operand): New.
6610
        (move_operand): Disallow sub-word modes for the constant pool.
6611
        * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
6612
        (xtensa_secondary_reload_class): Replace with....
6613
        (xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check.
6614
        Set icode for sub-word reloads from the constant pool.
6615
        * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
6616
        (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
6617
        * config/xtensa/xtensa.md (reload_literal): New.
6618
        * config/xtensa/xtensa-protos.h: Update prototypes.
6619
 
6620
2008-09-05  Joseph Myers  
6621
 
6622
        * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
6623
        (REG_CLASS_NAMES): Update.
6624
        (REG_CLASS_CONTENTS): Update.
6625
        * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
6626
        of ALL_REGS for regs 77 and 78.
6627
        * function.c (instantiate_virtual_regs_in_insn): Assert that
6628
        return value of simplify_gen_subreg is not NULL.
6629
 
6630
2008-09-05  Paolo Bonzini  
6631
 
6632
        * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
6633
        (gen_rtvec_v): Fix coding standards.
6634
 
6635
2008-09-04  Jan Hubicka  
6636
 
6637
        * i386.c (decide_alg): Be more conservative about optimizing for size.
6638
 
6639
2008-09-04  Ian Lance Taylor  
6640
 
6641
        * varasm.c (narrowing_initializer_constant_valid_p): New
6642
        static function.
6643
        (initializer_constant_valid_p): Call it.
6644
 
6645
2008-09-04  Jeff Law  
6646
 
6647
        * fold-const.c (native_encode_real): Fix computation of WORDS.
6648
        (native_interpret_real): Likewise.
6649
 
6650
2008-09-04  Janis Johnson  
6651
 
6652
        * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
6653
 
6654
2008-09-04  Vladimir Makarov  
6655
 
6656
        * ira-conflicts.c (process_regs_for_copy): Check insn to check
6657
        that the cost is already taken into account in ira-costs.c
6658
 
6659
        * ira-int.h (ira_debug_copy, ira_debug_copies): New.
6660
 
6661
        * ira-build.c (print_copy, print_copies, ira_debug_copy,
6662
        ira_debug_copies): New.
6663
        (ira_bulid): Call print_copies.
6664
 
6665
        * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
6666
 
6667
2008-09-04  Samuel Tardieu  
6668
 
6669
        PR target/32783
6670
        * config/rs6000/rs6000.c (optimization_options): Remove check of
6671
        flag_toplevel_order.
6672
 
6673
2008-09-04  Adam Nemet  
6674
 
6675
        * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
6676
        * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
6677
        second operand is a reg_imm10_operand.
6678
        * config/mips/mips.md (*seq__seq,
6679
        *sne__sne): New patterns.
6680
        (*seq_): Rename to
6681
        *seq_zero_.  Don't match if
6682
        ISA_HAS_SEQ_SNE.
6683
        (*seq__mips16): Rename to
6684
        *seq_zero__mip16.  Don't match if
6685
        ISA_HAS_SEQ_SNE.
6686
        (*sne_): Rename to
6687
        *sne_zero_.  Don't match if
6688
        ISA_HAS_SEQ_SNE.
6689
 
6690
2008-09-04  Adam Nemet  
6691
 
6692
        * config/mips/mips.h (ISA_HAS_EXTS): New macro.
6693
        * config/mips/mips.md (*ashr_trunc): Name the pattern
6694
        combining an arithmetic right shift by more than 31 and a
6695
        trunction.  Don't match for out-of-range shift amounts.  Set
6696
        attribute mode to .
6697
        (*lshr32_trunc): Name the pattern combining a logical right
6698
        shift by 32 and and a truncation.  Set attribute mode to .
6699
        (*_trunc_exts): New pattern for truncated right
6700
        shifts by less than 32.
6701
        (extv): Change predicate on first operand to accept registers.
6702
        Change predicate of the other operands from immediate_operand to
6703
        const_int_operand.  Expand exts when source is a register.
6704
        (extzv): Change predicate of the constant operands from
6705
        immediate_operand to const_int_operand.
6706
        (extzv): Change predicate of the constant operands from
6707
        immediate_operand to const_int_operand and no constraint. Also
6708
        remove mode.
6709
        (*extzv_trunc_exts): New pattern.
6710
 
6711
2008-09-04  Adam Nemet  
6712
 
6713
        * config/mips/mips.h (ISA_HAS_CINS): New macro.
6714
        * config/mips/mips-protos.h (mask_low_and_shift_p,
6715
        mask_low_and_shift_len): Declare.
6716
        * config/mips/mips.c (mask_low_and_shift_p,
6717
        mask_low_and_shift_len): New functions.
6718
        (mips_print_operand): Handle new operand prefix "m".
6719
        * config/mips/mips.md (*cins): New pattern.
6720
 
6721
2008-09-04  Bernd Schmidt  
6722
 
6723
        * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
6724
        optimizing for size.
6725
 
6726
2008-09-04  Richard Sandiford  
6727
 
6728
        * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
6729
        regardless of epilogue_completed.
6730
 
6731
2008-09-04  Vladimir Makarov  
6732
 
6733
        PR middle-end/37359
6734
        * ira-lives.c (process_bb_node_lives): Check setjmp.
6735
 
6736
2008-09-04  Richard Sandiford  
6737
 
6738
        PR middle-end/37243
6739
        * ira-build.c (form_loop_tree): Reverse BB walk.
6740
        (create_bb_allocnos): Likewise.
6741
        * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
6742
        (mark_reg_store): Rename to...
6743
        (mark_ref_live): ...this and take a df_ref argument instead of
6744
        note_stores arguments.  Assert that we have a register.
6745
        (mark_reg_clobber): Delete.
6746
        (def_conflicts_with_inputs_p): New function.
6747
        (mark_reg_conflicts): Delete.
6748
        (mark_reg_death): Rename to...
6749
        (mark_ref_dead): ...this and take a df_ref argument instead of
6750
        a register.  Assert that we have a register.
6751
        (process_bb_node_lives): Hoist frequency calculation out of
6752
        instruction walk.  Convert from a forwards scan to a backwards scan.
6753
        Use DF_REF_USES and DF_REF_DEFS instead of register notes and
6754
        note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
6755
        (create_allocno_live_ranges): Don't create regs_set.
6756
 
6757
2008-09-04  Ian Lance Taylor  
6758
 
6759
        * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
6760
        or REG_LABEL_TARGET.
6761
        * calls.c (emit_library_call_value_1): Use MEM_P rather than
6762
        comparing MODE with MEM.
6763
        * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
6764
        comparing with GF_PREDICT_TAKEN.
6765
        (gimple_get_lhs): Change code to enum gimple_code.
6766
        (gimple_set_lhs): Likewise.
6767
        * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
6768
        * omp-low.c (find_omp_clause): Change kind parameter to enum
6769
        omp_clause_code.
6770
        * tree-flow.h (find_omp_clause): Update declaration.
6771
        * regrename.c (clear_dead_regs): Change kind parameter to enum
6772
        reg_note.
6773
        * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
6774
        GET_MODE.
6775
        * see.c (see_get_extension_data): Change return type to enum
6776
        entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
6777
        SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
6778
        (see_gen_normalized_extension): Change extension_code parameter to
6779
        enum entry_type.
6780
        (see_seek_pre_extension_expr): Change extension_code to enum
6781
        entry_type.
6782
        (see_merge_one_def_extension): Likewise.
6783
        (see_handle_relevant_defs): Likewise.
6784
        (see_handle_relevant_uses): Likewise.
6785
        (see_analyze_one_def): Likewise.
6786
        * tree-cfg.c (need_fake_edge_p): Compare gimple code with
6787
        GIMPLE_ASM rather than ASM_EXPR.
6788
        * tree-ssa-alias.c (is_escape_site): Compare gimple code with
6789
        GIMPLE_RETURN rather than RETURN_EXPR.
6790
        * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
6791
        (evaluate_stmt): Likewise.
6792
        * tree-vect-analyze.c (vect_analyze_operations): Change relevance
6793
        to enum vect_relevant.
6794
        (vect_mark_stmts_to_be_vectorized): Change assertion to not
6795
        compare gimple codes with tree codes.
6796
 
6797
2008-09-04  Paul Brook  
6798
 
6799
        * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
6800
 
6801
2008-09-04  Bernd Schmidt  
6802
 
6803
        * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
6804
        pointer check lost in the recent no-unit-at-a-time patch.
6805
 
6806
2008-09-04  Jan Hubicka  
6807
 
6808
        PR middle-end/37343
6809
        * tree-switch-conversion.c (check_final_bb): Accept only IP
6810
        invariants.
6811
 
6812
2008-09-04  Jan Hubicka  
6813
 
6814
        * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
6815
        Break out from ...
6816
        (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
6817
        using_ranges argument.
6818
        (vrp_evaluate_conditional): Avoid bogus warning for type range.
6819
        (vrp_visit_cond_stmt): Update call of
6820
        vrp_evaluate_conditional_warnv_with_ops
6821
 
6822
2008-09-04  Jan Hubicka  
6823
 
6824
        PR tree-optimization/37345
6825
        PR tree-optimization/37358
6826
        PR tree-optimization/37357
6827
        * tree.c (build_function_type_skip_args): Build distinct type copy;
6828
        set TYPE_CONTEXT.
6829
        (build_function_decl_skip_args): Set type of new decl not orig decl;
6830
        clear DECL_VINDEX for methods turned into functions.
6831
 
6832
2008-09-04  Nick Clifton  
6833
 
6834
        * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
6835
        * configure: Regenerate.
6836
        * config.in: Regenerate.
6837
        * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
6838
        alignment field, if it is supported.
6839
 
6840
2008-09-04  Kai Tietz  
6841
 
6842
        * config/i386/t-mingw32 (SHLIB_LC): Change order of import
6843
        libraries.
6844
 
6845
2008-09-03  David Edelsohn  
6846
 
6847
        * config/rs6000/rs6000.c (processor_target_table): Do not
6848
        enable VMX for POWER6.
6849
 
6850
2008-09-03  Anton Blanchard  
6851
 
6852
        * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
6853
        emit memory barrier before operation.
6854
 
6855
2008-09-03  John David Anglin  
6856
 
6857
        PR testsuite/37325
6858
        * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
6859
        default_elf_asm_output_external.
6860
 
6861
2008-09-03  Jeff Law  
6862
 
6863
        * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
6864
 
6865
2008-09-03  Richard Henderson  
6866
 
6867
        * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
6868
        memory barrier to below the test-and-set.
6869
        (alpha_split_lock_test_and_set_12): Likewise.
6870
 
6871
2008-09-03  Vladimir Makarov  
6872
 
6873
        PR rtl-opt/37243
6874
 
6875
        * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
6876
        all_allocnos.
6877
 
6878
        * ira-color.c (print_loop_title): Use all_allocnos.
6879
        (color_pass): Ditto.  Don't add border_allocnos.  Check that
6880
        subloop allocno in the correspdoning bitmap all_allocnos.
6881
 
6882
        * ira-emit.c (change_loop): Use all_allocnos.
6883
 
6884
        * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
6885
        (ira_create_allocno): Set up all_allocnos bit for the created allocno.
6886
        (create_cap_allocno): Remove setting mentioned_allocnos.
6887
        (create_insn_allocnos): Ditto.
6888
        (remove_unnecessary_allocnos): Use all_allocnos.
6889
        (check_allocno_creation): Check that allocnos are in the
6890
        corresponding bitmap all_allocnos.
6891
 
6892
2008-09-03  Vladimir Makarov  
6893
 
6894
        PR rtl-opt/37243
6895
 
6896
        * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
6897
        (process_regs_for_copy): Process subregs.  Refine check when cost
6898
        is taken into account in ira-costs.c.
6899
        (process_reg_shuffles): Use REG_SUBREG_P.
6900
        (add_insn_allocno_copies): Ditto.  Ignore modes.
6901
 
6902
        * ira-color.c (conflict_allocno_vec): New.
6903
        (COST_HOP_DIVISOR): New macro.
6904
        (update_copy_costs_1): Use it.
6905
        (update_conflict_hard_regno_costs): New function.
6906
        (assign_hard_reg): Use it.
6907
        (ira_color): Allocate and free conflict_allocno_vec.
6908
 
6909
2008-09-03  Vladimir Makarov  
6910
 
6911
        PR rtl-opt/37296
6912
 
6913
        * ira-int.h (ira_sort_insn_chain): Remove.
6914
 
6915
        * ira.c (basic_block_order_nums, chain_insn_order,
6916
        chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
6917
        (ira): Don't call ira_sort_insn_chain.
6918
 
6919
        * reload1.c (reload): Don't call ira_sort_insn_chain.
6920
 
6921
2008-09-03  Andrew Pinski  
6922
 
6923
        PR middle-end/37293
6924
        * cgraphunit.c (update_call_expr): Remove eh regions from statements
6925
        which become non throw.
6926
        (cgraph_function_versioning): Also clear DECL_WEAK.  Call
6927
        update_call_expr after updating the flags on the decl.
6928
 
6929
2008-09-03  Jan Hubicka  
6930
 
6931
        PR tree-optimization/37315
6932
        * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
6933
        * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
6934
        (cgraph_analyze_functions): Use node->analyzed
6935
        (cgraph_mark_functions_to_output): Likewise.
6936
        (cgraph_expand_function): All functions can be released after
6937
        expanding.
6938
        (cgraph_optimize): Use gimple_has_body_p.
6939
        * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
6940
        (cgraph_decide_inlining_incrementally): Likewise.
6941
        (inline_transform): Inline transform.
6942
        * tree-inline.c (initialize_cfun): Do now shallow copy structure;
6943
        copy fields needed.
6944
        (inlinable_function_p): Drop gimple_body check.
6945
        (expand_call_inline): Use gimple_has_body_p.
6946
        * gimple.c (gimple_has_body_p): New.
6947
        * gimple.h (gimple_has_body_p): Add prototype.
6948
        * tree-cfg.c (execute_build_cfg): Remove gimple_body.
6949
        (dump_function_to_file): Use gimple_has_body_p check.
6950
 
6951
2008-09-03  Jakub Jelinek  
6952
 
6953
        PR c++/37346
6954
        * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
6955
        substatements.
6956
        * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
6957
 
6958
2008-09-03  Bernd Schmidt  
6959
 
6960
        From Michael Frysinger  
6961
        * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
6962
        bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
6963
        for bf538.
6964
 
6965
2008-09-03  Hari Sandanagobalane  
6966
 
6967
        Add picoChip port.
6968
        * doc/extend.texi: Document picoChip builtin functions.
6969
        * doc/invoke.texi: Document picoChip options.
6970
        * doc/contrib.texi: Add picoChip contribution.
6971
        * doc/md.texi: Document picoChip constraints.
6972
        * config.gcc: Add picochip-*-*.
6973
        * config/picochip/: Add new port.
6974
 
6975
2008-09-03  Richard Guenther  
6976
 
6977
        PR tree-optimization/37328
6978
        * tree-sra.c (sra_build_assignment): Gimplify properly.
6979
        (generate_copy_inout): Take the correct stmt as definition,
6980
        remove bogus assert.
6981
 
6982
2008-09-03  Bernd Schmidt  
6983
 
6984
        * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
6985
        attributes.
6986
 
6987
        From Michael Frysinger  
6988
        * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
6989
 
6990
2008-09-03  Danny Smith  
6991
 
6992
        * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
6993
        (__gthread_setspecific): Revert 2008-08-31 change to
6994
        __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API case.
6995
 
6996
2008-09-02  Aldy Hernandez  
6997
 
6998
        * diagnostic.c (error_at): New.
6999
        * toplev.h (error_at): New prototype.
7000
        * c-typeck.c (build_array_ref): Call error_at instead of error.
7001
        Pass location to pedwarn.
7002
 
7003
2008-09-02  Adam Nemet  
7004
 
7005
        * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
7006
 
7007
2008-09-02  Jakub Jelinek  
7008
 
7009
        * dwarf2out.c (tree_add_const_value_attribute): Only handle
7010
        VAR_DECL and CONST_DECL.
7011
 
7012
2008-09-02  H.J. Lu  
7013
            Jakub Jelinek  
7014
 
7015
        * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
7016
        (setup_incoming_varargs_64): Assume cum != NULL. Set/check
7017
        ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
7018
        ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
7019
        Don't set ix86_save_varrargs_registers.
7020
        (ix86_setup_incoming_varargs): Assume cum != NULL.
7021
        (ix86_va_start): Check ix86_varargs_gpr_size and
7022
        ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
7023
        cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
7024
        from frame pointer if ix86_varargs_gpr_size == 0.
7025
        (ix86_compute_frame_layout): Updated.
7026
        * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
7027
        (ix86_varargs_gpr_size): Define.
7028
        (ix86_varargs_fpr_size): Likewise.
7029
        (machine_function): Remove save_varrargs_registers.
7030
        Add varargs_gpr_size and varargs_fpr_size.
7031
 
7032
2008-09-02  Jakub Jelinek  
7033
 
7034
        * config/alpha/alpha.c (va_list_skip_additions,
7035
        alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
7036
        (alpha_gimplify_va_arg): Call unshare_expr on second use of
7037
        offset_field.
7038
 
7039
        PR tree-optimization/36766
7040
        * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
7041
        for already removed basic blocks.
7042
 
7043
        PR target/36332
7044
        * real.c (real_maxval): Clear a lower bit to make real_maxval
7045
        match get_max_float for IBM long double format.
7046
 
7047
2008-09-02  Andreas Schwab  
7048
 
7049
        * configure.ac: Use m4_quote to quote the expansion of m4_do.
7050
        * configure: Regenerate.
7051
 
7052
2008-09-02  Richard Sandiford  
7053
 
7054
        * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
7055
        SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
7056
        checking for a non-VOID CONSTANT_P.
7057
 
7058
2008-09-02  Jan Hubicka  
7059
 
7060
        * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
7061
        * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
7062
        sdiv_pow2_cheap
7063
 
7064
2008-09-02  H.J. Lu  
7065
 
7066
        * expr.c (emit_group_store): Don't assert stack temp mode size.
7067
 
7068
2008-09-02  Sebastian Pop  
7069
            Tobias Grosser  
7070
            Jan Sjodin  
7071
            Harsha Jagasia  
7072
            Dwarakanath Rajagopal  
7073
            Konrad Trifunovic  
7074
            Adrien Eliche  
7075
 
7076
        Merge from graphite branch.
7077
        * graphite.c: New.
7078
        * graphite.h: New.
7079
        * tree-loop-linear.c (perfect_loop_nest_depth): Export.
7080
        * doc/invoke.texi (-floop-block, -floop-interchange,
7081
        -floop-strip-mine): Document new flags.
7082
        * tree-into-ssa.c (gimple_vec): Moved...
7083
        * tree-loop-distribution.c (rdg_component): Moved...
7084
        * cfgloopmanip.c: Include tree-flow.h.
7085
        (update_dominators_in_loop): New.
7086
        (create_empty_if_region_on_edge): New.
7087
        (create_empty_loop_on_edge): New.
7088
        (loopify): Use update_dominators_in_loop.
7089
        * tree-pass.h (pass_graphite_transforms): Declared.
7090
        * configure: Regenerate.
7091
        * tree-phinodes.c (make_phi_node): Export.
7092
        (add_phi_node_to_bb): New, split from create_phi_node.
7093
        * tree-chrec.c (for_each_scev_op): New.
7094
        * tree-chrec.h (for_each_scev_op): Declared.
7095
        * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
7096
        (remove_statement): Call get_phi_with_result.
7097
        * config.in (HAVE_cloog): Undef.
7098
        * gdbinit.in (pgg): New.
7099
        * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
7100
        * tree-ssa-loop.c (graphite_transforms): New.
7101
        (gate_graphite_transforms): New.
7102
        (pass_graphite_transforms): New.
7103
        * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
7104
        HAVE_cloog): Defined.
7105
        * tree-vectorizer.c (rename_variables_in_bb): Export.
7106
        * tree-data-ref.c (dr_may_alias_p): Export.
7107
        (stmt_simple_memref_p): New.
7108
        (find_data_references_in_stmt): Export.
7109
        (find_data_references_in_loop): Export.
7110
        (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
7111
        (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
7112
        (create_rdg_vertices): Export.
7113
        (build_empty_rdg): New.
7114
        (build_rdg): Call build_empty_rdg.  Free dependence_relations.
7115
        * tree-data-ref.h (rdg_component): ... here.
7116
        (scop_p): New.
7117
        (struct data_reference): Add a field scop.
7118
        (DR_SCOP): New.
7119
        (find_data_references_in_loop): Declared.
7120
        (find_data_references_in_stmt): Declared.
7121
        (create_rdg_vertices): Declared.
7122
        (dr_may_alias_p): Declared.
7123
        (stmt_simple_memref_p): Declared.
7124
        (struct rdg_edge): Add a field ddr_p relation.
7125
        (build_empty_rdg): Declared.
7126
        * lambda.h (lambda_matrix): Declare a VEC of.
7127
        (find_induction_var_from_exit_cond): Declared.
7128
        (lambda_vector_compare): New.
7129
        * common.opt (fgraphite, floop-strip-mine,
7130
        floop-interchange, floop-block): New flags.
7131
        * lambda-code.c (find_induction_var_from_exit_cond): Export.
7132
        * cfgloop.c (is_loop_exit): New.
7133
        * cfgloop.h (is_loop_exit): Declared.
7134
        (create_empty_if_region_on_edge): Declared.
7135
        (create_empty_loop_on_edge): Declared.
7136
        * tree-flow.h (add_phi_node_to_bb): Declared.
7137
        (make_phi_node): Declared.
7138
        (rename_variables_in_bb): Declared.
7139
        (perfect_loop_nest_depth): Declared.
7140
        (graphite_transform_loops): Declared.
7141
        * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
7142
        (graphite.o-warn): Add -Wno-error.
7143
        (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
7144
        (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
7145
        (INCLUDES): Add PPLINC, CLOOGINC.
7146
        (OBJS-common): Add graphite.o.
7147
        (graphite.o): Add rule.
7148
        * gimple.h (gimple_vec): ... here.
7149
        * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
7150
        * passes.c (init_optimization_passes): Schedule
7151
        pass_graphite_transforms.
7152
 
7153
2008-09-02  Samuel Tardieu  
7154
 
7155
        PR target/37283
7156
        * opts.c (decode_options): Move processing of -fno-unit-at-a-time
7157
        and -fno-toplevel-reorder after handle_options.
7158
 
7159
2008-09-02  Paul Brook  
7160
 
7161
        * config/arm/arm.c (arm_tune_cortex_a9): Define.
7162
        (arm_override_options): Set arm_tune_cortex_a9.
7163
        (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
7164
        (arm_issue_rate): Handle cortexa9.
7165
        * config/arm/arm.h (arm_tune_cortex_a9): Declare.
7166
        * config/arm/arm-cores.def: Add cortex-a9.
7167
        * config/arm/arm-tune.md: Regenerate.
7168
        * config/arm/arm.md: Include cortex-a9.md.
7169
        (generic_sched, generic_vfp): Add cortexa9.
7170
        * config/arm/cortex-a9.md: New file.
7171
 
7172
2008-09-02  Richard Guenther  
7173
 
7174
        PR tree-optimization/37327
7175
        * tree-vrp.c (register_new_assert_for): Make sure to not have
7176
        TREE_OVERFLOW set on the bound.
7177
 
7178
2008-09-02  Alexander Monakov  
7179
 
7180
        Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
7181
 
7182
        * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
7183
        * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
7184
        spec_info->mask.
7185
 
7186
2008-09-02  Victor Kaplansky  
7187
 
7188
        * gcc/config/spu/spu.md (divdf3): Removed.
7189
 
7190
2008-09-02  Jakub Jelinek  
7191
 
7192
        PR tree-optimization/37095
7193
        * cgraph.c (cgraph_node): When creating new cgraph node after
7194
        assembler_name_hash has been populated, record it in the hash
7195
        table.
7196
 
7197
2008-09-01  Paul Brook  
7198
 
7199
        * doc/invoke.texi: Document -mword-relocations.
7200
        * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
7201
        * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
7202
        * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
7203
        * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
7204
        (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
7205
        (arm_emit_movpair): New function.
7206
        (arm_print_operand ): Handle sybolic addresses.
7207
        * config/arm/arm.h (TARGET_USE_MOVT): Define.
7208
        (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
7209
        * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
7210
        * config/arm/arm.opt: Add -mword-relocations.
7211
        * config/arm/arm.md (movsi): Use arm_emit_movpair.
7212
        (arm_movt, arm_movw): New.
7213
 
7214
2008-09-01  Paul Brook  
7215
 
7216
        * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
7217
        Allow Interworking on ARMv4 EABI based targets.
7218
        * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
7219
        (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
7220
 
7221
2008-09-01  Paul Brook  
7222
 
7223
        * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
7224
        optimized LT0 test.  Remove optimization for GT.
7225
 
7226
2008-09-01  John David Anglin  
7227
 
7228
        * pa64-hpux.h (LIB_SPEC): Link against librt when building static
7229
        openmp applications.
7230
        * pa-hpux11.h (LIB_SPEC): Likewise.
7231
 
7232
        * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
7233
        is defined.
7234
 
7235
2008-09-01  Jan Hubicka  
7236
 
7237
        * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
7238
        present, use only counts; when guessed use only frequencies.
7239
        (estimate_bb_frequencies): Use function_frequency.
7240
        * profile.c (compute_branch_probabilities): Exit early when
7241
        profile reading failed. Set profile_status.
7242
        (branch_prob): Do not set profile_status.
7243
 
7244
2008-09-01  Aldy Hernandez  
7245
 
7246
        * tree.c (protected_set_expr_location): New.
7247
        * tree.h (protected_set_expr_location): New prototype.
7248
        * c-tree.h (build_array_ref): Add argument.
7249
        (parser_build_unary_op): Same.
7250
        * c-typeck.c (build_indirect_ref): Handle new location argument.
7251
        (build_array_ref): Same.
7252
        (parser_build_unary_op): Same.
7253
        * gimplify.c (gimplify_asm_expr): Set input_location before calling
7254
        error.
7255
        * c-omp.c (c_finish_omp_atomic): Pass location when calling
7256
        build_indirect_ref.
7257
        * c-common.c (finish_label_address_expr): Handle new location argument.
7258
        * c-common.h (build_indirect_ref): Add argument.
7259
        (finish_label_address_expr): Same.
7260
        * c-parser.c (c_parser_unary_expression): Pass location to build
7261
        functions.
7262
        (c_parser_postfix_expression): Same.
7263
 
7264
2008-09-01  Paul Brook  
7265
 
7266
        * config/arm/arm.md: Include cortex-r4f.md.
7267
        (attr fpu): Update type list.
7268
        (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
7269
        fconstd, fcmps and fcmpd.
7270
        (attr tune_cortexr4): Define.
7271
        (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
7272
        * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
7273
        fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
7274
        * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
7275
        * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
7276
        * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
7277
        cortex_a8_vfp_farith: Ditto.
7278
        * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
7279
        * config/arm/cortex-r4.md: Use tune_cortexr4.
7280
        * config/arm/cortex-r4f.md: New file.
7281
 
7282
2008-09-01  Richard Guenther  
7283
 
7284
        PR tree-optimization/37305
7285
        * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
7286
        the result of constant conversions.
7287
        (fold_gimple_assign): Likewise.
7288
 
7289
2008-09-01  Andrey Belevantsev  
7290
 
7291
        * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
7292
        #ifdef ENABLE_CHECKING.
7293
 
7294
2008-09-01  Andrey Belevantsev  
7295
 
7296
        * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
7297
        * sched-int.h (print_insn, print_pattern, print_value): Declare also
7298
        when !INSN_SCHEDULING.
7299
 
7300
2008-09-01  Andreas Schwab  
7301
 
7302
        * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
7303
 
7304
2008-09-01  Paul Brook  
7305
 
7306
        * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
7307
 
7308
2008-09-01  Jan Hubicka  
7309
 
7310
        * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
7311
 
7312
        * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
7313
        Pass speed operand.
7314
        * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
7315
        * gimplify.c (gimplify_init_constructor): Add speed operand.
7316
        * tree-sra.c (decide_block_copy): Likewise.
7317
        * tree-inline.c (estimate_move_cost): Likewise.
7318
        * config/alpha/alpha.h (MOVE_RATIO): Update.
7319
        * config/frv/frv.c (MOVE_RATIO): Update.
7320
        * config/spu/spu.h (MOVE_RATIO): Update.
7321
        * config/sparc/sparc.h (MOVE_RATIO): Update.
7322
        * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
7323
        * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
7324
        * config/cris/cris.h (MOVE_RATIO): Update.
7325
        * config/mn10300/mn10300.h (MOVE_RATIO): Update.
7326
        * config/arm/arm.h (MOVE_RATIO): Update.
7327
        * config/pa/pa.md: Update uses of MOVE_RATIO
7328
        * config/pa/pa.h (MOVE_RATIO): Update.
7329
        * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
7330
        CLEAR_RATIO, SET_RATIO): Update.
7331
        * config/h8300/h8300.h (MOVE_RATIO): Update.
7332
        * config/v850/v850.h (MOVE_RATIO): Update.
7333
        * config/bfin/bfin.h (MOVE_RATIO): Update.
7334
 
7335
2008-08-31  Andrey Belevantsev  
7336
            Dmitry Melnik  
7337
            Dmitry Zhurikhin  
7338
            Alexander Monakov  
7339
            Maxim Kuvyrkov  
7340
 
7341
        * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
7342
        sel-sched-dump.c, sel-sched-ir.c: New files.
7343
        * Makefile.in (OBJS-common): Add selective scheduling object files.
7344
        (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
7345
        (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
7346
        (sched-vis.o): Add dependency on $(INSN_ATTR_H).
7347
        * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
7348
        * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
7349
        (make_forwarder_block): Update loop latch if we have redirected
7350
        the loop latch edge.
7351
        * cfgloop.c (get_loop_body_in_custom_order): New function.
7352
        * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
7353
        (CP_FALLTHRU_PREHEADERS): Likewise.
7354
        (get_loop_body_in_custom_order): Declare.
7355
        * cfgloopmanip.c (has_preds_from_loop): New.
7356
        (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
7357
        Assert that the preheader edge will be fall thru when it is set.
7358
        * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
7359
        fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
7360
        fsel-sched-substitution, fselective-scheduling): New flags.
7361
        * cse.c (hash_rtx_cb): New.
7362
        (hash_rtx): Use it.
7363
        * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
7364
        sel_sched_insn_cnt): New counters.
7365
        * final.c (compute_alignments): Export.  Free dominance
7366
        info after loop_optimizer_finalize.
7367
        * genattr.c (main): Output maximal_insn_latency prototype.
7368
        * genautomata.c (output_default_latencies): New.
7369
        Factor its code from ...
7370
        (output_internal_insn_latency_func): ... here.
7371
        (output_internal_maximal_insn_latency_func): New.
7372
        (output_maximal_insn_latency_func): New.
7373
        * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
7374
        (struct hard_reg_set_iterator): New.
7375
        (hard_reg_set_iter_init, hard_reg_set_iter_set,
7376
        hard_reg_set_iter_next): New functions.
7377
        (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
7378
        * lists.c (remove_free_INSN_LIST_node,
7379
        remove_free_EXPR_LIST_node): New functions.
7380
        * loop-init.c (loop_optimizer_init): When
7381
        LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
7382
        calling create_preheaders.
7383
        (loop_optimizer_finalize): Do not verify flow info after reload.
7384
        * recog.c (validate_replace_rtx_1): New parameter simplify.
7385
        Default it to true.  Update all uses.  Factor out simplifying
7386
        code to ...
7387
        (simplify_while_replacing): ... this new function.
7388
        (validate_replace_rtx_part,
7389
        validate_replace_rtx_part_nosimplify): New.
7390
        * recog.h (validate_replace_rtx_part,
7391
        validate_replace_rtx_part_nosimplify): Declare.
7392
        * rtl.c (rtx_equal_p_cb): New.
7393
        (rtx_equal_p): Use it.
7394
        * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
7395
        (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
7396
        debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
7397
        * vecprim.h: Add a vector type for unsigned int.
7398
        * haifa-sched.c: Include vecprim.h and cfgloop.h.
7399
        (issue_rate, sched_verbose_param, note_list, dfa_state_size,
7400
        ready_try, cycle_issued_insns, spec_info): Make global.
7401
        (readyp): Initialize.
7402
        (dfa_lookahead): New global variable.
7403
        (old_max_uid, old_last_basic_block): Remove.
7404
        (h_i_d): Make it a vector.
7405
        (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
7406
        through HID macro.
7407
        (after_recovery, adding_bb_to_current_region_p):
7408
        New variables to handle correct insertion of the recovery code.
7409
        (struct ready_list): Move declaration to sched-int.h.
7410
        (rgn_n_insns): Removed.
7411
        (rtx_vec_t): Move to sched-int.h.
7412
        (find_insn_reg_weight): Remove.
7413
        (find_insn_reg_weight1): Rename to find_insn_reg_weight.
7414
        (haifa_init_h_i_d, haifa_finish_h_i_d):
7415
        New functions to initialize / finalize haifa instruction data.
7416
        (extend_h_i_d, init_h_i_d): Rewrite.
7417
        (unlink_other_notes): Move logic to add_to_note_list.  Handle
7418
        selective scheduler.
7419
        (ready_lastpos, ready_element, ready_sort, reemit_notes,
7420
        find_fallthru_edge): Make global, remove static prototypes.
7421
        (max_issue): Make global.  Add privileged_n and state parameters.  Use
7422
        them.
7423
        (extend_global, extend_all): Removed.
7424
        (init_before_recovery): Add new param.  Fix the handling of the case
7425
        when we insert a recovery code before the EXIT which has a predecessor
7426
        with a fallthrough edge to it.
7427
        (create_recovery_block): Make global.  Rename to
7428
        sched_create_recovery_block.  Update.
7429
        (change_pattern): Rename to sched_change_pattern.  Make global.
7430
        (speculate_insn): Rename to sched_speculate_insn.  Make global.
7431
        Split haifa-specific functionality into ...
7432
        (haifa_change_pattern): New static function.
7433
        (sched_extend_bb): New static function.
7434
        (sched_init_bbs): New function.
7435
        (current_sched_info): Change type to struct haifa_sched_info.
7436
        (insn_cost): Adjust for selective scheduling.
7437
        (dep_cost_1): New function.  Move logic from ...
7438
        (dep_cost): ... here.
7439
        (dep_cost): Use dep_cost_1.
7440
        (contributes_to_priority_p): Use sched_deps_info instead of
7441
        current_sched_info.
7442
        (priority): Adjust to work with selective scheduling.  Process the
7443
        corner case when all dependencies don't contribute to priority.
7444
        (rank_for_schedule): Use ds_weak instead of dep_weak.
7445
        (advance_state): New function.  Move logic from ...
7446
        (advance_one_cycle): ... here.
7447
        (add_to_note_list, concat_note_lists): New functions.
7448
        (rm_other_notes): Make static.  Adjust for selective scheduling.
7449
        (remove_notes, restore_other_notes): New functions.
7450
        (move_insn): Add two arguments.  Update assert.  Don't call
7451
        reemit_notes.
7452
        (choose_ready): Remove lookahead variable, use dfa_lookahead.
7453
        Remove more_issue, max_points.  Move the code to initialize
7454
        max_lookahead_tries to max_issue.
7455
        (schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
7456
        ready.  Adjust use of move_insn.  Call restore_other_notes.
7457
        (luid): Remove.
7458
        (sched_init, sched_finish): Move Haifa-specific initialization/
7459
        finalization to ...
7460
        (haifa_sched_init, haifa_sched_finish): ... respectively.
7461
        New functions.
7462
        (setup_sched_dump): New function.
7463
        (haifa_init_only_bb): New static function.
7464
        (haifa_speculate_insn): New static function.
7465
        (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
7466
        (extend_ready, extend_all): Remove.
7467
        (sched_extend_ready_list, sched_finish_ready_list): New functions.
7468
        (create_check_block_twin, add_to_speculative_block): Use
7469
        haifa_insns_init instead of extend_global.  Update to use new
7470
        initialization functions.  Change parameter.  Factor out code from
7471
        create_check_block_twin to ...
7472
        (sched_create_recovery_edges) ... this new function.
7473
        (add_block): Remove.
7474
        (sched_scan_info): New.
7475
        (extend_bb): Use sched_scan_info.
7476
        (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
7477
        static functions for walking through scheduling region.
7478
        (sched_luids): New vector variable to replace uid_to_luid.
7479
        (luids_extend_insn): New function.
7480
        (sched_max_luid): New variable.
7481
        (luids_init_insn): New function.
7482
        (sched_init_luids, sched_finish_luids): New functions.
7483
        (insn_luid): New debug function.
7484
        (sched_extend_target): New function.
7485
        (haifa_init_insn): New static function.
7486
        (sched_init_only_bb): New hook.
7487
        (sched_split_block): New hook.
7488
        (sched_split_block_1): New function.
7489
        (sched_create_empty_bb): New hook.
7490
        (sched_create_empty_bb_1): New function.
7491
        (common_sched_info, ready): New global variables.
7492
        (current_sched_info_var): Remove.
7493
        (move_block_after_check): Use common_sched_info.
7494
        (haifa_luid_for_non_insn): New static function.
7495
        (init_before_recovery): Use haifa_init_only_bb instead of add_block.
7496
        (increase_insn_priority): New.
7497
        * modulo-sched.c (issue_rate): Remove static declaration.
7498
        (sms_sched_info): Change type to haifa_sched_info.
7499
        (sms_sched_deps_info, sms_common_sched_info): New variables.
7500
        (setup_sched_infos): New.
7501
        (sms_schedule): Initialize them.  Call haifa_sched_init/finish.
7502
        Do not call regstat_free_calls_crossed.
7503
        (sms_print_insn): Use const_rtx.
7504
        * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
7505
        PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
7506
        PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
7507
        PARAM_SCHED_MEM_TRUE_DEP_COST): New.
7508
        * sched-deps.c (sched_deps_info): New.  Update all relevant uses of
7509
        current_sched_info to use it.
7510
        (enum reg_pending_barrier_mode): Move to sched-int.h.
7511
        (h_d_i_d): New variable. Initialize to NULL.
7512
        ({true, output, anti, spec, forward}_dependency_cache): Initialize
7513
        to NULL.
7514
        (estimate_dep_weak): Remove static declaration.
7515
        (sched_has_condition_p): New function.  Adjust users of
7516
        sched_get_condition to use it instead.
7517
        (conditions_mutex_p): Add arguments indicating which conditions are
7518
        reversed.  Use them.
7519
        (sched_get_condition_with_rev): Rename from sched_get_condition.  Add
7520
        argument to indicate whether returned condition is reversed.  Do not
7521
        generate new rtx when condition should be reversed; indicate it by
7522
        setting new argument instead.
7523
        (add_dependence_list_and_free): Add deps parameter.
7524
        Update all users.  Do not free dependence list when
7525
        deps context is readonly.
7526
        (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
7527
        contexts.
7528
        (remove_from_dependence_list, remove_from_both_dependence_lists): New.
7529
        (remove_from_deps): New. Use the above functions.
7530
        (cur_insn, can_start_lhs_rhs_p): New static variables.
7531
        (add_or_update_back_dep_1): Initialize present_dep_type.
7532
        (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
7533
        haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
7534
        haifa_note_dep): New functions implementing dependence hooks for
7535
        the Haifa scheduler.
7536
        (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
7537
        note_dep): New functions.
7538
        (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
7539
        functions.
7540
        (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
7541
        (free_deps): Initialize deps->reg_last.
7542
        (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
7543
        sched_analyze_insn): Update to use dependency hooks infrastructure
7544
        and readonly contexts.
7545
        (deps_analyze_insn): New function.  Move part of logic from ...
7546
        (sched_analyze): ... here.  Also move some logic to ...
7547
        (deps_start_bb): ... here.  New function.
7548
        (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
7549
        sel_sched_p.
7550
        (sched_deps_init): New function.  Move code from ...
7551
        (init_dependency_caches): ... here.  Remove.
7552
        (init_deps_data_vector): New.
7553
        (sched_deps_finish): New function.  Move code from ...
7554
        (free_dependency_caches): ... here.  Remove.
7555
        (init_deps_global, finish_deps_global): Adjust for use with
7556
        selective scheduling.
7557
        (get_dep_weak): Move logic to ...
7558
        (get_dep_weak_1): New function.
7559
        (ds_merge): Move logic to ...
7560
        (ds_merge_1): New static function.
7561
        (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
7562
        (ds_get_max_dep_weak): New function.
7563
        * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
7564
        (n_insns): Rename to rgn_n_insns.
7565
        (debug_ebb_dependencies): New function.
7566
        (init_ready_list): Use it.
7567
        (begin_schedule_ready): Use sched_init_only_bb.
7568
        (ebb_print_insn): Indicate when an insn starts a new cycle.
7569
        (contributes_to_priority, compute_jump_reg_dependencies,
7570
        add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
7571
        (add_block1): Remove to ebb_add_block.
7572
        (ebb_sched_deps_info, ebb_common_sched_info): New variables.
7573
        (schedule_ebb): Initialize them.  Use remove_notes instead of
7574
        rm_other_notes.  Use haifa_local_init/finish.
7575
        (schedule_ebbs): Use haifa_sched_init/finish.
7576
        * sched-int.h: Include vecprim.h, remove rtl.h.
7577
        (struct ready_list): Delete declaration.
7578
        (sched_verbose_param, enum sched_pass_id_t,
7579
        bb_vec_t, insn_vec_t, rtx_vec_t): New.
7580
        (struct sched_scan_info_def): New structure.
7581
        (sched_scan_info, sched_scan, sched_init_bbs,
7582
        sched_init_luids, sched_finish_luids, sched_extend_target,
7583
        haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
7584
        (struct common_sched_info_def): New.
7585
        (common_sched_info, haifa_common_sched_info,
7586
        sched_emulate_haifa_p): Declare.
7587
        (sel_sched_p): New.
7588
        (sched_luids): Declare.
7589
        (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
7590
        (sched_max_luid, insn_luid): Declare.
7591
        (note_list, remove_notes, restore_other_notes, bb_note): Declare.
7592
        (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
7593
        print_insn, print_pattern, print_value, haifa_classify_insn,
7594
        sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
7595
        setup_sched_dump, sched_init, sched_finish,
7596
        sel_insn_is_speculation_check): Export.
7597
        (struct ready_list): Move from haifa-sched.c.
7598
        (ready_try, ready, max_issue): Export.
7599
        (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
7600
        sched_init_only_bb, sched_split_block, sched_split_block_1,
7601
        sched_create_empty_bb, sched_create_empty_bb_1,
7602
        sched_create_recovery_block, sched_create_recovery_edges): Export.
7603
        (enum reg_pending_barrier_mode): Export.
7604
        (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
7605
        (deps_t): New.
7606
        (struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
7607
        print_insn field.  Move add_block and fix_recovery_cfg to
7608
        common_sched_info_def.  Move compute_jump_reg_dependencies,
7609
        use_cselib  ...
7610
        (struct sched_deps_info_def): ... this new structure.
7611
        (sched_deps_info): Declare.
7612
        (struct spec_info_def): Remove weakness_cutoff, add
7613
        data_weakness_cutoff and control_weakness_cutoff.
7614
        (spec_info): Declare.
7615
        (struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
7616
        dep_count field.
7617
        (struct haifa_insn_data): Rename to struct _haifa_insn_data.
7618
        (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
7619
        (current_sched_info): Change type to struct haifa_sched_info.
7620
        (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
7621
        (h_d_i_d): New variable.
7622
        (HDID): New accessor macro.
7623
        (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
7624
        (HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
7625
        and HDID.
7626
        (IS_SPECULATION_CHECK_P): Update for selective scheduler.
7627
        (enum SCHED_FLAGS): Update for selective scheduler.
7628
        (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
7629
        (init_dependency_caches, free_dependency_caches): Delete declarations.
7630
        (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
7631
        estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
7632
        ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
7633
        sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
7634
        haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
7635
        ds_to_dt): Export.
7636
        (rm_other_notes): Delete declaration.
7637
        (schedule_block): Remove one argument.
7638
        (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
7639
        ready_element, ready_lastpos, sched_extend_ready_list,
7640
        sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
7641
        concat_note_lists): Export.
7642
        (struct region): Move from sched-rgn.h.
7643
        (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
7644
        RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
7645
        BLOCK_TO_BB, CONTAINING_RGN): Export.
7646
        (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
7647
        (current_nr_blocks, current_blocks, target_bb): Likewise.
7648
        (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
7649
        sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
7650
        sched_rgn_local_init, extend_regions,
7651
        rgn_make_new_region_out_of_new_block, compute_priorities,
7652
        debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
7653
        extend_rgns, deps_join rgn_setup_common_sched_info,
7654
        rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
7655
        dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
7656
        (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
7657
        increase_insn_priority): Likewise.
7658
        * sched-rgn.c: Include sel-sched.h.
7659
        (ref_counts): New static variable.  Use it ...
7660
        (INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
7661
        (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
7662
        (sched_is_disabled_for_current_region_p): Delete static declaration.
7663
        (struct region): Move to sched-int.h.
7664
        (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
7665
        ebb_head): Define and initialize.
7666
        (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
7667
        BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
7668
        BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
7669
        sched-int.h.
7670
        (find_single_block_region): Add new argument to indicate that EBB
7671
        regions should be constructed.
7672
        (debug_live): Delete declaration.
7673
        (current_nr_blocks, current_blocks, target_bb):
7674
        Remove static qualifiers.
7675
        (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
7676
        declaration.
7677
        (init_regions): Delete declaration.
7678
        (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
7679
        rgn_estimate_number_of_insns): New.
7680
        (too_large): Use estimate_number_of_insns.
7681
        (haifa_find_rgns): New. Move the code from ...
7682
        (find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
7683
        (free_trg_info): New.
7684
        (compute_trg_info): Allocate candidate tables here instead of ...
7685
        (init_ready_list): ... here.
7686
        (rgn_print_insn): Use const_rtx.
7687
        (contributes_to_priority, extend_regions): Delete static declaration.
7688
        (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
7689
        (add_block1): Rename to rgn_add_block.
7690
        (debug_rgn_dependencies): Delete static qualifier.
7691
        (new_ready): Use sched_deps_info.  Simplify.
7692
        (rgn_common_sched_info, rgn_const_sched_deps_info,
7693
        rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
7694
        New.
7695
        (region_sched_info): Rename to rgn_const_sched_info.
7696
        (deps_join): New, extracted from ...
7697
        (propagate_deps): ... here.
7698
        (compute_block_dependences, debug_dependencies): Update for selective
7699
        scheduling.
7700
        (free_rgn_deps, compute_priorities): New functions.
7701
        (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
7702
        sched_rgn_compute_dependencies): New functions.
7703
        (schedule_region): Use them.
7704
        (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
7705
        rgn_setup_common_sched_info, rgn_setup_sched_infos):
7706
        New functions.
7707
        (schedule_insns): Call new functions that were split out.
7708
        (rgn_make_new_region_out_of_new_block): New.
7709
        (get_rgn_sched_max_insns_priority): New.
7710
        (rest_of_handle_sched, rest_of_handle_sched2): Call selective
7711
        scheduling when appropriate.
7712
        * sched-vis.c: Include insn-attr.h.
7713
        (print_value, print_pattern): Make global.
7714
        (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
7715
        * target-def.h (TARGET_SCHED_ADJUST_COST_2,
7716
        TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
7717
        TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
7718
        TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
7719
        TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
7720
        hooks.  Initialize them to 0.
7721
        (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
7722
        * target.h (struct gcc_target): Add them.  Rename gen_check field to
7723
        gen_spec_check.
7724
        * flags.h (sel_sched_switch_set): Declare.
7725
        * opts.c (sel_sched_switch_set): New variable.
7726
        (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
7727
        pipelining is disabled from command line.
7728
        (common_handle_option): Record whether selective scheduling is
7729
        requested from command line.
7730
        * doc/invoke.texi: Document new flags and parameters.
7731
        * doc/tm.texi: Document new target hooks.
7732
        * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
7733
        ia64_gen_check.
7734
        (dfa_state_size): Do not declare locally.
7735
        * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
7736
        * config/rs6000/rs6000.c (rs6000_init_sched_context,
7737
        rs6000_alloc_sched_context, rs6000_set_sched_context,
7738
        rs6000_free_sched_context): New functions.
7739
        (struct _rs6000_sched_context): New.
7740
        (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
7741
        scheduling.
7742
        (rs6000_sched_finish): Do not run for selective scheduling.
7743
 
7744
2008-08-31  Jan Hubicka  
7745
 
7746
        * frv.c (frv_rtx_costs): Update forward declaration.
7747
        * spu.c (spu_rtx_costs): Likewise.
7748
        * pdp11.c: Include df.h
7749
        (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
7750
        * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
7751
        (m68hc11_rtx_costs_1): Fix call of rtx_cost.
7752
        * iq2000.c (iq2000_address_cost): Add speed argument.
7753
        (iq2000_rtx_costs): Likewise.
7754
        * mn10300.c (mn10300_address_cost_1): Remove speed argument;
7755
        update call of mn10300_address_cost.
7756
        * mcore.c: Include df.h
7757
        (mcore_rtx_costs): Update prototype.
7758
        * score3.c: Include df.h
7759
        (score3_rtx_costs): Remove speed argument.
7760
        * score7.c: Include df.h
7761
        (score7_address_cost): Remove speed argument.
7762
        * score-protos.h (score_address_cost): Update prototype.
7763
        * score.c: Include df.h
7764
        (score_rtx_costs): Update call of costs functions.
7765
        * v850.c (v850_rtx_costs): Add bool argument.
7766
 
7767
2008-08-31  Hans-Peter Nilsson  
7768
 
7769
        * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
7770
 
7771
2008-08-31  Aaron W. LaFramboise  
7772
 
7773
        * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
7774
        * config/i386/gthr-win32.c (__gthread_setspecific): Same.
7775
 
7776
2008-08-31  Aaron W. LaFramboise  
7777
 
7778
        * mkmap-flat.awk: Add option pe_dll.
7779
        * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
7780
        * config/i386/t-cygwin (SHLIB_LC): Add.
7781
        * config/i386/t-mingw32 (SHLIB_LC): Add.
7782
        * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
7783
        (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
7784
        (LINK_SPEC): Support libgcc_s.
7785
        (LIBGCC_SPEC): Support libgcc_s.
7786
        (LIBGCC_SONAME): New.
7787
 
7788
2008-08-31  Jan Hubicka  
7789
 
7790
        * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
7791
        mistakely had old version of patch.
7792
 
7793
        * ipa-cp.c (ipcp_need_original_clone_p): Remove.
7794
        (ipcp_estimate_growth): New.
7795
        (ipcp_insert_stage): Use ipcp_estimate_growth.
7796
        * profile.c (branch_prob): When reading failed, do not consider
7797
        profile as read.
7798
 
7799
2008-08-31  Jan Hubicka  
7800
 
7801
        * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
7802
        loop is optimized for speed.
7803
 
7804
2008-08-31  Richard Guenther  
7805
 
7806
        PR middle-end/37289
7807
        * fold-const.c (fold_binary): Retain conversions in folding
7808
        ~A + 1 to -A.
7809
 
7810
2008-08-31  Jan Hubicka  
7811
 
7812
        * postreload-gcse.c (eliminate_partially_redundant_loads):
7813
        Use optimize_bb_for_size_p.
7814
        * predict.c (maybe_hot_frequency_p): Make inline.
7815
        (maybe_hot_count_p): Break out from ...
7816
        (maybe_hot_bb_p): ... this one.
7817
        (maybe_hot_edge_p): Simplify.
7818
        * basic-block.h (probably_cold_bb_p): Remove.
7819
 
7820
2008-08-31  Jakub Jelinek  
7821
 
7822
        PR target/37168
7823
        * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
7824
        prototype.
7825
        * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
7826
        * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
7827
        Also split V4SFmode.
7828
        * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
7829
        vector float modes.
7830
 
7831
2008-08-31  Jan Hubicka  
7832
 
7833
        * predict.c (PROB_VERY_LIKELY): Make small enough so things
7834
        become cold.
7835
        * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
7836
 
7837
2008-08-31  Jakub Jelinek  
7838
 
7839
        PR debug/37287
7840
        * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
7841
        add source coords.
7842
 
7843
        * dwarf2out.c (native_encode_initializer): Subtract min_index for
7844
        non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
7845
 
7846
2008-08-31  Jan Hubicka  
7847
 
7848
        * sparc.h (BRANCH_COST): Fix macro definition.
7849
        * avr.c (avr_operand_rtx_cost): Add speed argument.
7850
        (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
7851
 
7852
2008-08-31  Richard Guenther  
7853
 
7854
        * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
7855
        types instead of operands.  Re-instantiate verifying of
7856
        binary expression operands.
7857
 
7858
2008-08-30  Jan Hubicka  
7859
 
7860
        * fwprop.c (should_replace_address): Add speed attribute.
7861
        (PR_OPTIMIZE_FOR_SPEED): New flag.
7862
        (propagate_rtx_1): Use it.
7863
        (propagate_rtx): Set it.
7864
        (try_fwprop_subst): Update call of rtx_costs.
7865
        (forward_propagate_and_simplify): LIkewise.
7866
        * hooks.c (hook_int_rtx_bool_0): New
7867
        (hook_bool_rtx_int_int_intp_false): Replace by ...
7868
        (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
7869
        * hooks.h (hook_int_rtx_bool_0): New
7870
        (hook_bool_rtx_int_int_intp_false): Replace by ...
7871
        (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
7872
        * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
7873
        (prepare_cmp_insn): UPdate call of rtx_cost.
7874
        * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
7875
        (reload_cse_simplify_operands): Update call of rtx_cost.
7876
        (reload_cse_move2add): call of rtx_cost.
7877
        * target.h (struct gcc_target): Update rtx_costs and address_costs.
7878
        * rtlanal.c (rtx_cost): Add speed argument.
7879
        (address_cost): Add speed argument
7880
        (default_address_cost): Likewise.
7881
        (insn_rtx_cost): Likewise.
7882
        * cfgloopanal.c (seq_cost): Add speed argument.
7883
        (target_reg_cost, target_spill_cost): Turn to array.
7884
        (init_set_costs): Update for speed.
7885
        (estimate_reg_pressure_cost): Add speed argument.
7886
        * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
7887
        * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
7888
        * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
7889
        (seq_cost): Add speed argument.
7890
        (computation_cost): Add speed arugment.
7891
        (add_cost, multiply_by_const, get_address_cost): add speed argument.
7892
        (force_expr_to_var_cost): Update for profile info.
7893
        (force_var_cost): Likewise.
7894
        (split_address_cost): Likewise.
7895
        (ptr_difference_cost): Likewise.
7896
        (difference_cost): Likewise.
7897
        (get_computation_cost_at): Likewise.
7898
        (determine_iv_cost): Likewise.
7899
        (ivopts_global_cost_for_size): Likewise.
7900
        (rewrite_use_address): Likewise.
7901
        (tree_ssa_iv_optimize_loop): Initialize speed field.
7902
        * cse.c (optimize_this_for_speed_p): New static var.
7903
        (notreg_cost): Update call of rtx_cost.
7904
        (cse_extended_basic_block): set optimize_this_for_speed_p.
7905
        * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
7906
        (noce_try_cmove_arith): Likewise.
7907
        (noce_try_sign_mask): LIkewise.
7908
        * expr.c (compress_float_constant): Update rtx_cost calls.
7909
        * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
7910
        argument.
7911
        (addr_to_parts): Likewise.
7912
        (create_mem_ref): Likewise.
7913
        * dse.c (find_shift_sequence): Add speed argument.
7914
        (replace_read): Update call.
7915
        * calls.c (precompute_register_parameters): Update call of rtx_cost.
7916
        * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
7917
        * neg_cost, shift_cost, shiftadd_cost,
7918
        shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
7919
        mul_highpart_cost): Increase dimension.
7920
        (init_expmed): Initialize for both size and speed.
7921
        (expand_shift): Use profile.
7922
        (synth_mult): Use profile.
7923
        (choose_mult_variant): Use profile.
7924
        (expand_mult): Use profile.
7925
        (expand_mult_highpart_optab): Use profile.
7926
        (expand_mult_highpart): Use profile.
7927
        (expand_smod_pow2): Use profile.
7928
        (expand_divmod): Use profile.
7929
        * simplify-rtx.c (simplify_binary_operation_1): Update call of
7930
        rtx_cost.
7931
        * loop-invariant.c (create_new_invariant): Use profile.
7932
        (gain_for_invariant): Add speed parameter.
7933
        (best_gain_for_invariant): Likewise.
7934
        (find_invariants_to_move): Likewise.
7935
        (move_single_loop_invariants): Set it.
7936
        * target-def.h (TARGET_RTX_COSTS): Use hook.
7937
        * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
7938
        (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
7939
        * output.h (default_address_cost): Update prototype.
7940
        * combine.c (optimize_this_for_speed_p): New static var.
7941
        (combine_validate_cost): Update call of rtx_cost.
7942
        (combine_instructions): Set optimize_this_for_speed_p.
7943
        (expand_compound_operation): Update call of rtx_cost.
7944
        (make_extraction):Update call of rtx_cost.
7945
        (force_to_mode):Update call of rtx_cost.
7946
        (distribute_and_simplify_rtx):Update call of rtx_cost.
7947
        * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
7948
        (estimate_reg_pressure_cost): Update prototype.
7949
        * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
7950
        * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
7951
        Remove.
7952
        * config/alpha/alpha.c (alpha_rtx_costs): Update.
7953
        (alpha_rtx_costs): Update.
7954
        * config/frv/frv.c (frv_rtx_costs): Update.
7955
        * config/s390/s390.c (s390_rtx_costs): Update.
7956
        * config/m32c/m32c.c (m32c_memory_move_cost): Update.
7957
        (m32c_rtx_costs): Update.
7958
        * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
7959
        (spu_rtx_costs): Update.
7960
        * config/sparc/sparc.c (sparc_rtx_costs): Update.
7961
        * config/m32r/m32r.c (m32r_rtx_costs): Update.
7962
        * config/i386/i386.c (:ix86_address_cost): Update.
7963
        (ix86_rtx_costs): Update.
7964
        * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
7965
        * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
7966
        * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
7967
        * config/crx/crx.c (crx_address_cost): Update.
7968
        * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
7969
        * config/stormy16/stormy16.c
7970
        (xstormy16_address_cost, xstormy16_rtx_costs): Update.
7971
        * config/m68hc11/m68hc11.c
7972
        (m68hc11_address_cost, m68hc11_rtx_costs): Update.
7973
        * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
7974
        * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
7975
        Update.
7976
        * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
7977
        Update
7978
        * config/ia64/ia64.c (ia64_rtx_costs): Update.
7979
        * config/m68k/m68k.c (m68k_rtx_costs): Update.
7980
        * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
7981
        * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
7982
        * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
7983
        (mcore_rtx_costs): update.
7984
        * config/score/score3.c (score3_rtx_costs): Update.
7985
        * config/score/score7.c (score7_rtx_costs): Update.
7986
        * config/score/score3.h (score3_rtx_costs):Update.
7987
        * config/score/score7.h (score7_rtx_costs): Update.
7988
        * config/score/score.c (score_rtx_costs): Update.
7989
        * config/arm/arm.c (arm_address_cost): Update.
7990
        (arm_rtx_costs_1): Update.
7991
        (arm_rtx_costs_1): Update.
7992
        (arm_size_rtx_costs): Update.
7993
        (arm_size_rtx_costs): Update.
7994
        (arm_size_rtx_costs): Update.
7995
        (arm_xscale_rtx_costs): Update.
7996
        (arm_thumb_address_cost): Update.
7997
        * config/pa/pa.c (hppa_address_cost): Update.
7998
        * config/mips/mips.c (mips_rtx_costs): Update.
7999
        * config/vax/vax.c (vax_address_cost): Update.
8000
        * config/h8300/h8300.c (h8300_shift_costs): Update.
8001
        (h8300_rtx_costs): Update.
8002
        * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
8003
        (v850_rtx_costs): Update.
8004
        * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
8005
        * config/bfin/bfin.c
8006
        (bfin_address_cost): Update.
8007
        (bfin_rtx_costs): Update.
8008
        * stmt.c (lshift_cheap_p): Update.
8009
 
8010
2008-08-30  Andrew Pinski  
8011
 
8012
        PR middle-end/36444
8013
        * expmed.c (extract_bit_field_1): Check the mode size to make
8014
        sure the vector modes have the same size.
8015
 
8016
2008-08-29  Michael Meissner  
8017
 
8018
        * dojump.c (top level): Include basic-block.h to declare
8019
        optimize_insn_for_speed_p
8020
 
8021
        * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
8022
 
8023
        * opts.h (CL_SAVE): New option class for marking options that are
8024
        target specific options usable in the target attribute.
8025
        (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
8026
 
8027
        * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
8028
        can easily find the target specific options that are safe to use
8029
        in the attribute or pragma.
8030
 
8031
        * attribs.c (decl_attributes): Change #pragma GCC option to
8032
        #pragma GCC target, and attribute((option(...))) to
8033
        attribute((target(...))).
8034
 
8035
        * doc/extend.texi (target attribute): Change from option
8036
        attribute.  Delete push/pop/reset.
8037
        (#pragma GCC target): Change from #pragma GCC option.  Delete
8038
        push/pop/reset.
8039
        (#pragma GCC push_options): Document new pragma.
8040
        (#pragma GCC pop_options): Document new pragma.
8041
        (#pragma GCC reset_options): Document new pragma.
8042
 
8043
        * targhooks.c (default_target_option_valid_attribute_p): Add
8044
        warning about port not supporting target attributes.
8045
        (default_target_option_pragma_parse): New function, warn about
8046
        #pragma GCC target not being supported.
8047
 
8048
        * targhooks.h (default_target_option_pragma_parse): Add
8049
        declaration.
8050
 
8051
        * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
8052
        TI_CURRENT_OPTION_PRAGMA.
8053
        (current_target_pragma): Rename from current_option_pragma.
8054
 
8055
        * target.h (struct target_option): Delete booleans for changing
8056
        the optimization level on hot/cold functions.  Change signature of
8057
        pragma_parse hook to take a second tree.
8058
 
8059
        * c-tree.h (c_builtin_function_ext_scope): Add declaration.
8060
 
8061
        * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
8062
        that the declaration is done at global scope.
8063
 
8064
        * langhooks.c (add_builtin_function_common): Move most of the code
8065
        from add_builtin_function here, calling the hook passed in.
8066
        (add_builtin_function): Call add_builtin_function_common with
8067
        standard builtin hook.
8068
        (add_builtin_function_ext_scope): New function to add builtins to
8069
        global scope.
8070
 
8071
        * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
8072
        hook.
8073
        (add_builtin_function_ext_scope): Add declaration.
8074
 
8075
        * c-pragma.c (handle_pragma_target): Rename from
8076
        handle_pragma_option, #pragma GCC option is now #pragma GCC
8077
        target.  Move warning about port not supporting target options to
8078
        default pragma parse hook.  Remove push/pop/reset from this
8079
        pragma.
8080
        (handle_pragma_optimize): Remove push/pop/reset from this pragma.
8081
        (option_stack): Delete static variable.
8082
        (optimize_stack): Ditto.
8083
        (optons_stack): New stack of saved target and optimization
8084
        options.
8085
        (handle_pragma_push_options): New function to handle pushing both
8086
        target and optimization options.
8087
        (handle_pragma_pop_options): New function to handle popping both
8088
        target and optimization options.
8089
        (handle_pragma_reset_options): New function to handle resetting
8090
        both target and optimization options to their initial state.
8091
        (init_pragma): Rename handle_pragma_option to
8092
        handle_pragma_target.  Add support for push_options, pop_options,
8093
        and reset_options pragmas.
8094
 
8095
        * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
8096
        default_target_option_pragma_parse.
8097
        (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
8098
        default_target_option_valid_attribute_p.
8099
        (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
8100
        (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
8101
        (TARGET_OPTION_HOOKS): Delete the fields for whether to change
8102
        optimization level on hot/cold functions.
8103
 
8104
        * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
8105
        if the caller and callee have different optimization levels.
8106
 
8107
        * c-common.c (handle_target_attribute): Rename from
8108
        handle_option_attribute, attribute((option(...))) is now
8109
        attribute((target(...))).  Move warning if the port does not
8110
        support target attributes to the default hook.
8111
        (handle_hot_attribute): Delete code to change the optimization
8112
        level of hot functions.
8113
        (handle_cold_attribute): Ditto.
8114
 
8115
        * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
8116
        argument that is the binary tree options to use if there are no
8117
        arguments.  Call ix86_valid_target_attribute_tree instead of
8118
        ix86_valid_option_attribute_tree.
8119
        (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
8120
        (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
8121
        ix86_pragma_option_parse.
8122
 
8123
        * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
8124
        Rename from ix86_valid_option_attribute_tree.
8125
 
8126
        * config/i386/i386.c (ix86_add_new_builtins): New function to add
8127
        new builtins when the ISA changes.
8128
        (ix86_valid_target_attribute_tree): Rename from
8129
        ix86_valid_option_attribute_tree.  Change callers.  If the
8130
        function specified optimization options, use those as the starting
8131
        point before setting up the target attributes.  If the
8132
        optimization options were changed in the course of setting the
8133
        target attributes, record the new optimization options.
8134
        (ix86_valid_target_attribute_tree_inner_p): Rename from
8135
        ix86_valid_option_attribute_tree_inner_p.  Change callers.  Call
8136
        ix86_add_new_builtins if the ISA changed.
8137
        (ix86_valid_target_attribute_p): Rename from
8138
        ix86_valid_option_attribute_p.  Change callers.
8139
        (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
8140
        __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
8141
        as delayed builtin functions.
8142
        (struct builtin_isa): New structure to record builtin functions
8143
        that should be delayed until the ISA for that function is used.
8144
        (ix86_builtins_isa): Change from int to struct to track builtin
8145
        functions we want to declare at some point.
8146
        (def_builtin): If the front end can delay defining the builtin
8147
        functions, don't create builtins for ISAs not part of the default
8148
        options.
8149
        (def_builtin_const): Ditto.
8150
        (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
8151
        __builtin_ia32_pcmov_v2di to be different builtin functions.
8152
        (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
8153
        a structure instead of an int.
8154
        (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
8155
        ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
8156
        (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
8157
        (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
8158
 
8159
        * config/ia64/ia64.h
8160
        (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
8161
        (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
8162
 
8163
        * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
8164
        hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
8165
        (LANG_HOOKS_INITIALIZER): Add
8166
        LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
8167
 
8168
2008-08-30  Kaz Kojima  
8169
 
8170
        PR target/37270
8171
        * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
8172
        the reload address with the index register for SFmode
8173
        access with a displacement.
8174
 
8175
2008-08-30  Jan Hubicka  
8176
 
8177
        * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
8178
        * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
8179
        * dojump.c (do_jump): Likewise.
8180
        * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
8181
        (note-if_info): Add BRANCH_COST.
8182
        (noce_try_store_flag_constants, noce_try_addcc,
8183
        noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
8184
        noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
8185
        find_if_case_2): Use computed branch cost.
8186
        * expr.h (BRANCH_COST): Update default.
8187
        * predict.c (predictable_edge_p): New function.
8188
        * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
8189
        Update BRANCH_COST call.
8190
        * basic-block.h (predictable_edge_p): Declare.
8191
        * config/alpha/alpha.h (BRANCH_COST): Update.
8192
        * config/frv/frv.h (BRANCH_COST): Update.
8193
        * config/s390/s390.h (BRANCH_COST): Update.
8194
        * config/spu/spu.h (BRANCH_COST): Update.
8195
        * config/sparc/sparc.h (BRANCH_COST): Update.
8196
        * config/m32r/m32r.h (BRANCH_COST): Update.
8197
        * config/i386/i386.h (BRANCH_COST): Update.
8198
        * config/i386/i386.c (ix86_expand_int_movcc): Update use of
8199
        BRANCH_COST.
8200
        * config/sh/sh.h (BRANCH_COST): Update.
8201
        * config/pdp11/pdp11.h (BRANCH_COST): Update.
8202
        * config/avr/avr.h (BRANCH_COST): Update.
8203
        * config/crx/crx.h (BRANCH_COST): Update.
8204
        * config/xtensa/xtensa.h (BRANCH_COST): Update.
8205
        * config/stormy16/stormy16.h (BRANCH_COST): Update.
8206
        * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
8207
        * config/iq2000/iq2000.h (BRANCH_COST): Update.
8208
        * config/ia64/ia64.h (BRANCH_COST): Update.
8209
        * config/rs6000/rs6000.h (BRANCH_COST): Update.
8210
        * config/arc/arc.h (BRANCH_COST): Update.
8211
        * config/score/score.h (BRANCH_COST): Update.
8212
        * config/arm/arm.h (BRANCH_COST): Update.
8213
        * config/pa/pa.h (BRANCH_COST): Update.
8214
        * config/mips/mips.h (BRANCH_COST): Update.
8215
        * config/vax/vax.h (BRANCH_COST): Update.
8216
        * config/h8300/h8300.h (BRANCH_COST): Update.
8217
        * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
8218
        * doc/invoke.texi (predictable-branch-cost-outcome): Document.
8219
        * doc/tm.texi (BRANCH_COST): Update.
8220
 
8221
2008-08-30  Samuel Tardieu  
8222
 
8223
        PR target/37283
8224
        * config/arm/arm.c (arm_optimization_options): Set
8225
        flag_section_anchors to 2 instead of 1 to distinguish it from
8226
        -fsection-anchors given explicitely on the command line.
8227
 
8228
2008-08-30  Richard Sandiford  
8229
 
8230
        * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
8231
        final insn of a split.
8232
 
8233
2008-08-30  Jan Hubicka  
8234
 
8235
        * postreload-gcse.c (gate_handle_gcse2): Disable for functions
8236
        optimized for speed.
8237
        * final.c (compute_alignments): Use optimize_bb_for_size_p.
8238
        * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
8239
        * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
8240
        flag_gcse_after_reload_set): New static vars.
8241
        (common_handle_option): Enable those flags for profile-use.
8242
        (decode_options): Remove optimize_size flags that are handled
8243
        on higher granuality.
8244
        * tree-vectorizer.c (vectorize_loops): Use
8245
        optimize_loop_nest_for_speed_p.
8246
        * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
8247
        * tree-predcom.c (tree_predictive_commoning): Use
8248
        optimize_loop_for_speed_p.
8249
        * varasm.c (assemble_start_function): Use
8250
        optimize_function_for_speed_p.
8251
        * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
8252
        * predict.c (optimize_loop_for_speed_p): Fix walk.
8253
 
8254
2008-08-30  Jan Hubicka  
8255
 
8256
        * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
8257
        functions.
8258
        (cgraph_decide_inlining_of_small_function): Use edge->count to detect
8259
        profile presence locally.
8260
 
8261
2008-08-29  Joseph Myers  
8262
 
8263
        PR bootstrap/37086
8264
        * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
8265
        versions before 4.0.
8266
 
8267
2008-08-29  Jan Hubicka  
8268
 
8269
        * tree-inline.c (insert_init_stmt): Insert sequence even when
8270
        not in SSA form.
8271
 
8272
2008-08-29  Jeff Law  
8273
 
8274
        * mn10300.c (mn10300_secondary_reload_class): We need secondary
8275
        reloads for AM33-2 if IN is a pseudo with an equivalent memory
8276
        location and class is an FP register.
8277
 
8278
2008-08-29  Jan Hubicka  
8279
 
8280
        * see.c (see_merge_one_def_extension): Silence used uninitialized
8281
        warning.
8282
        * matrix-reorg.c (check_allocation_function): Likewise.
8283
        * config/i386/driver-i386.c (detect_caches_amd): Likewise.
8284
 
8285
2008-08-29  Jakub Jelinek  
8286
 
8287
        PR c/37261
8288
        * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
8289
        compute new & and | in type rather than TREE_TYPE (arg0).
8290
 
8291
        * dwarf2out.c (fortran_common): Update comment.
8292
        (gen_variable_die): Swap com_die and var_die variables in Fortran
8293
        COMMON block handling code.
8294
 
8295
        * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
8296
 
8297
        * dwarf2out.c (gen_const_die): New function.
8298
        (size_of_die, value_format, output_die): Output larger
8299
        dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
8300
        (native_encode_initializer): New function.
8301
        (tree_add_const_value_attribute): Call it.
8302
        (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
8303
 
8304
        * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
8305
        DECL_BY_REFERENCE decls don't pass TREE_READONLY and
8306
        TREE_THIS_VOLATILE to add_type_attribute.
8307
 
8308
        * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
8309
        types.
8310
        (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
8311
        types.
8312
 
8313
        * dwarf2out.c (loc_by_reference): New function.
8314
        (add_location_or_const_value_attribute): Use it.
8315
 
8316
        PR fortran/23057
8317
        * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
8318
        as DW_TAG_variable children of DW_TAG_common_block rather than
8319
        DW_TAG_member children.  Put DW_AT_external to individual
8320
        DW_TAG_variable DIEs, not to DW_TAG_common_block.
8321
 
8322
        * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
8323
        loc_descriptor_from_tree_1.
8324
 
8325
        PR fortran/29635
8326
        PR fortran/23057
8327
        * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
8328
        arguments to imported_module_or_decl.
8329
        (debug_nothing_tree_tree): Removed.
8330
        (debug_nothing_tree_tree_tree_bool): New prototype.
8331
        * debug.c (do_nothing_debug_hooks): Adjust.
8332
        (debug_nothing_tree_tree): Removed.
8333
        (debug_nothing_tree_tree_tree_bool): New function.
8334
        * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
8335
        (gen_variable_die): Put all common vars for the
8336
        same COMMON block under one DW_TAG_common_block.
8337
        (declare_in_namespace): Return new context_die, for Fortran
8338
        return the module DIE instead of adding extra declarations into
8339
        the namespace.
8340
        (gen_type_die_with_usage): Adjust declare_in_namespace caller.
8341
        (gen_namespace_die): If is_fortran (), generate DW_TAG_module
8342
        instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
8343
        DW_AT_declaration.
8344
        (dwarf2out_global_decl): Don't skip Fortran global vars.
8345
        (gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
8346
        (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
8347
        If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
8348
        DW_TAG_imported_declaration as child of previous
8349
        DW_TAG_imported_module.
8350
        * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
8351
        * sdbout.c (sdb_debug_hooks): Likewise.
8352
        * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8353
 
8354
2008-08-29  Jan Hubicka  
8355
 
8356
        * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
8357
 
8358
        * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
8359
        * ipa-cp.c (n_cloning_candidates): New static variable.
8360
        (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
8361
        (ipcp_print_all_lattices): Improve debug output.
8362
        (ipcp_cloning_candidate_p): New function.
8363
        (ipcp_initialize_node_lattices): Use it.
8364
        (ipcp_init_stage): Do only analyzis here; prettier debug output.
8365
        (ipcp_propagate_stage): Prettier debug output.
8366
        (ipcp_iterate_stage): Initialize latices here; prettier debug output.
8367
        (ipcp_print_all_structures): Remove.
8368
        (ipcp_need_redirect_p): Test !n_cloning_candidates.
8369
        (ipcp_insert_stage): Prettier debug output; call
8370
        cgraph_remove_unreachable_nodes before propagating.
8371
        (pass_ipa_cp): Schedule function removal pass.
8372
        * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
8373
        debug output.
8374
        (cgraph_maybe_hot_edge_p): Move to ...
8375
        * predict.c (cgraph_maybe_hot_edge_p) ... here.
8376
        * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
8377
        (common_handle_option): Set them; enable ipa-cp when profiling.
8378
        * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
8379
        (ipa_print_all_jump_functions): Likewise.
8380
        (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
8381
        (ipa_print_node_params, ipa_print_all_params): New.
8382
        * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
8383
        ipa_print_all_param_flags): Remove.
8384
        (ipa_print_node_params, ipa_print_all_params): New.
8385
 
8386
2008-08-29  Bob Wilson  
8387
 
8388
        * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
8389
        change from 2008-04-03.
8390
        * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
8391
 
8392
2008-08-29  Vladimir Makarov  
8393
 
8394
        PR rtl-opt/37251
8395
        * ira-color.c (push_allocnos_to_stack): Truncate
8396
        removed_splay_allocno_vec.
8397
 
8398
2008-08-29  Vladimir Makarov  
8399
 
8400
        PR rtl-opt/37243
8401
        * ira-color (ira_fast_allocation): Don't assign hard registers to
8402
        global allocnos.
8403
 
8404
2008-08-29  Jan Hubicka  
8405
 
8406
        PR middle-end/37278
8407
        * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
8408
        for cold internal loops.
8409
 
8410
2008-08-29  Richard Guenther  
8411
 
8412
        * tree-ssa-structalias.c (create_variable_info_for): Do not
8413
        create fields for heap vars or vars with a noalias state.
8414
        For NO_ALIAS_ANYTHING variables add a self-constraint, not one
8415
        from ESCAPED.
8416
 
8417
2008-08-29  Richard Guenther  
8418
 
8419
        * common.opt (ftree-store-ccp): Mark as preserved for
8420
        backward compatibility.
8421
        * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
8422
        * tree-pass.h (pass_store_ccp): Remove.
8423
        * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
8424
        (first_vdef): Remove declaration.
8425
        (get_value_loaded_by): Likewise.
8426
        * tree-ssa-ccp.c (do_store_ccp): Remove.
8427
        (get_default_value): Simplify as do_store_ccp is always false
8428
        now.  Do not initialize mem_ref.
8429
        (set_value_varying): Likewise.
8430
        (canonicalize_float_value): Likewise.
8431
        (set_lattice_value): Likewise.
8432
        (likely_value): Likewise.
8433
        (surely_varying_stmt_p): Likewise.
8434
        (ccp_initialize): Likewise.
8435
        (ccp_lattice_meet): Likewise.
8436
        (ccp_visit_phi_node): Likewise.
8437
        (ccp_fold): Likewise.
8438
        (evaluate_stmt): Likewise.
8439
        (visit_assignment): Likewise.
8440
        (ccp_visit_stmt): Likewise.
8441
        (execute_ssa_ccp): Fold into ...
8442
        (do_ssa_ccp): ... this.
8443
        (do_ssa_store_ccp): Remove.
8444
        (gate_store_ccp): Likewise.
8445
        (pass_store_ccp): Likewise.
8446
        * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
8447
        initialize mem_ref.
8448
        * tree-ssa-propagate.c (first_vdef): Remove.
8449
        (get_value_loaded_by): Likewise.
8450
        (replace_vuses_in): Likewise.
8451
        (substitute_and_fold): Do not call replace_vuses_in.
8452
        * opts.c (decode_options): Do not set flag_tree_store_ccp.
8453
 
8454
2008-08-29  Richard Guenther  
8455
 
8456
        PR middle-end/37236
8457
        * tree-ssa-structalias.c (intra_create_variable_infos): Mark
8458
        PARAM_NOALIAS tags with is_heapvar.
8459
        * tree-ssa-operands.c (access_can_touch_variable): Offset
8460
        based tests do not apply for heapvars.  Fix offset test.
8461
 
8462
2008-08-29  Jan Hubicka  
8463
 
8464
        * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
8465
        (-fipa-cp-clone): Enabled by default at -O3.
8466
        * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
8467
        make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
8468
 
8469
2008-08-29  Jan Hubicka  
8470
 
8471
        * tree.c (build_function_type_skip_args,
8472
        build_function_decl_skip_args): New functions.
8473
        * tree.h (build_function_type_skip_args,
8474
        build_function_decl_skip_args): Declare.
8475
        * gimple.c (giple_copy_call_skip_args): New function.
8476
        (giple_copy_call_skip_args): Declare.
8477
 
8478
        * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
8479
        * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
8480
        (ipcp_node_modifiable_p): ... this one; use
8481
        tree_versionable_function_p.
8482
        (ipcp_create_replace_map): Improve debug output.
8483
        (ipcp_need_redirect_p): Return false when not clonning.
8484
        (ipcp_update_callgraph): Skip args.
8485
        (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
8486
        skip args.
8487
        * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
8488
        (save_inline_function_body): Update call of tree_function_versioning.
8489
        * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
8490
        * tree-inline.c (copy_arguments_for_versioning): Add skip_args
8491
        argument.
8492
        (tree_function_versioning): Likewise.
8493
        * tree-inline.h (tree_function_versioning): Update prototype.
8494
 
8495
2008-08-29  Jan Hubicka  
8496
 
8497
        * loop-unswitch.c (unswitch_single_loop): Use
8498
        optimize_loop_for_speed_p.
8499
        * tree-ssa-threadupdate.c (mark_threaded_blocks):
8500
        Use optimize_function_for_size_p.
8501
        * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
8502
        * postreload-gcse.c (eliminate_partially_redundant_load):
8503
        Use optimize_bb_for_size_p.
8504
        * value-prof.c (gimple_divmod_fixed_value_transform,
8505
        gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
8506
        gimple_stringops_transform): Use optimize_bb_for_size_p.
8507
        * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
8508
        * final.c (compute_alignments): Use optimize_function_for_size_p.
8509
        * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
8510
        (fold_builtin_strcpy, fold_builtin_fputs): Use
8511
        optimize_function_for_size_p.
8512
        * fold-const.c (tree_swap_operands_p): Use
8513
        optimize_function_for_size_p.
8514
        * recog.c (relax_delay_slots): Likewise.
8515
        * tree-ssa-math-opts.c (replace_reciprocal):
8516
        Use optimize_bb_for_speed_p.
8517
        (execute_cse_reciprocals): Use optimize_bb_for_size_p.
8518
        * ipa-inline.c (cgraph_decide_recursive_inlining): Use
8519
        optimize_function_for_size_p.
8520
        (cgraph_decide_inlining_of_small_function): Use
8521
        optimize_function_for_size_p.
8522
        * global.c (find_reg): Use optimize_function_for_size_p.
8523
        * opts.c (decode_options): Do not clear flag_tree_ch,
8524
        flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
8525
        flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
8526
        work it out from profile.
8527
        * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
8528
        optimize_loop_for_speed_p.
8529
        * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8530
        Constify argument.
8531
        (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
8532
        * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
8533
        * tree-eh.c (decide_copy_try_finally): Use
8534
        optimize_function_for_size_p.
8535
        * local-alloc.c (block_alloc): Pass BB pointer.
8536
        (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
8537
        * gcse.c (gcse_main): Use optimize_function_for_size_p.
8538
        * loop-unroll.c (decide_unrolling_and_peeling):
8539
        Use optimize_loop_for_size_p.
8540
        (decide_peel_completely): Likewise.
8541
        * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
8542
        optimize_loop_for_size_p.
8543
        (vect_enhance_data_refs_alignment): Likewise.
8544
        * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
8545
        (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
8546
        Update call.
8547
        * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
8548
        (try_crossjump_bb): Use optimize_bb_for_size_p.
8549
        * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
8550
        optimize_loop_for_speed_p.
8551
        * bb-reorder.c (find_traces_1_round): Likewise.
8552
        (copy_bb): Use optimize_bb_for_speed_p.
8553
        (duplicate_computed_gotos): Likewise.
8554
        * basic-block.h (optimize_loop_nest_for_size_p,
8555
        optimize_loop_nest_for_speed_p): New.
8556
        * stmt.c (expand_case): Use optimize_insn_for_size_p.
8557
 
8558
2008-08-29  Tristan Gingold  
8559
 
8560
        * gcov.c (main): Call expandargv.
8561
 
8562
2008-08-29  Jan Hubicka  
8563
 
8564
        * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
8565
        is not cold.
8566
        * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8567
        Constify arguments.
8568
        (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
8569
        * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8570
        Constify.
8571
        (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
8572
 
8573
2008-08-29  Jan Hubicka  
8574
 
8575
        * tree-pass.h (pass_strip_predict_hints): Declare.
8576
        * predict.c (strip_builtin_expect): Rename to ...
8577
        (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
8578
        (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
8579
        (tree_estimate_probability): Do not strip builtin_expect.
8580
        (pass_strip_predict_hints): New pass.
8581
        * tree-inline.c (expand_call_inline): When inlining cold function,
8582
        predict it as unlikely.
8583
        * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
8584
 
8585
2008-08-29  Richard Guenther  
8586
 
8587
        PR tree-optimization/37207
8588
        * tree-vrp.c (extract_range_from_binary_expr): Also try
8589
        to constant fold if only one of the operands is a constant.
8590
 
8591
2008-08-29  Nick Clifton  
8592
 
8593
        * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
8594
        the same way as SYMBOL_REFs.
8595
 
8596
2008-08-28  Bob Wilson  
8597
 
8598
        * config/xtensa/xtensa.md (mulsidi3): Use a temporary register.
8599
 
8600
2008-08-28  Adam Nemet  
8601
 
8602
        * config/mips/mips.h (ISA_HAS_BBIT): New macro.
8603
        * config/mips/mips.md (branch_likely): Remove const.  Fix
8604
        comment formatting.
8605
        (define_delay for type "branch"): Change to only apply for branch
8606
        with likely variant.
8607
        (define_delay for type "branch" and "branch_likely" no).  New delay
8608
        definition.
8609
        (equality_op): New code iterator.
8610
        (bbv, bbinv): New code attributes.
8611
        (*branch_bit, *branch_bit_inverted): New
8612
        patterns.
8613
 
8614
2008-08-28  Manuel Lopez-Ibanez  
8615
            Andrew Pinski  
8616
 
8617
        PR 18050
8618
        * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
8619
 
8620
2008-08-28  Paolo Carlini  
8621
 
8622
        * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
8623
        rule that a symbolic constant must be defined and >= 0 for the
8624
        corresponding facility to be present at compile-time.
8625
        * gthr-posix.c: Likewise.
8626
 
8627
2008-08-28  Adam Nemet  
8628
 
8629
        * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
8630
        * config/mips/mips.md (D): New mode attribute.
8631
        (mulsi3, muldi3): Merge it into ...
8632
        (mul3): ... new template.  Use _mul3 ending for 3-op patterns.
8633
        (muldi3_mul3): New pattern.
8634
        (mulsi3_mult3): Rename to mulsi3_mul3.
8635
 
8636
2008-08-28  Jan Hubicka  
8637
 
8638
        * expmed.c (store_bit_field_1): Be prepared for movstrict expander
8639
        to fail.
8640
        * predict.c (always_optimize_for_size_p): Rename to ...
8641
        (optimize_function_for_size): ... this one; make extern.
8642
        (optimize_function_for_speed_p): New.
8643
        (optimize_bb_for_size_p, optimize_bb_for_size_p,
8644
        optimize_edge_for_size_p,optimize_edge_for_size_p,
8645
        optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
8646
        * basic-block.h (optimize_function_for_size_p,
8647
        optimize_function_for_speed_p): Declare.
8648
        * i386.md (optimize_size checks): Replace them by appropriate
8649
        predicate.
8650
        (standard_80387_constant_p, ix86_compute_frame_layout,
8651
        ix86_expand_epilogue, ix86_decompose_address,
8652
        print_operand, emit_i387_cw_initialization,
8653
        inline_memory_move_cost, ix86_pad_returns,
8654
        ix86_reorg): Replace optimize_size checks.
8655
 
8656
2008-08-28  Richard Sandiford  
8657
 
8658
        * rtl.h (simplify_subreg_regno): Declare.
8659
        * rtlanal.c (simplify_subreg_regno): New function, split out from...
8660
        * simplify-rtx.c (simplify_subreg): ...here.
8661
        * reload.c (find_reloads): Use simplify_subreg_regno instead of
8662
        subreg_offset_representable_p.
8663
 
8664
2008-08-28  Manuel Lopez-Ibanez  
8665
 
8666
        PR c/30949
8667
        * c-typeck.c (convert_for_assignment): Give a note describing what
8668
        was passed and what was expected.
8669
 
8670
2008-08-28  Joey Ye  
8671
 
8672
        * doc/extend.texi: Document AVX built-in functions.
8673
        * doc/invoke.texi: Document -mavx.
8674
 
8675
2008-08-28  H.J. Lu  
8676
            Joey Ye  
8677
            Xuepeng Guo  
8678
 
8679
        * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
8680
 
8681
        * config/i386/cpuid.h (bit_FMA): New.
8682
        (bit_XSAVE): Likewise.
8683
        (bit_OSXSAVE): Likewise.
8684
        (bit_AVX): Likewise.
8685
 
8686
        * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
8687
        define.  Use ASM_OUTPUT_AVX_PREFIX.
8688
 
8689
        * config/i386/gmmintrin.h: New.
8690
 
8691
        * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
8692
        (OPTION_MASK_ISA_AVX_SET): New.
8693
        (OPTION_MASK_ISA_FMA_SET): Likewise.
8694
        (OPTION_MASK_ISA_AVX_UNSET): Likewise.
8695
        (OPTION_MASK_ISA_FMA_SET): Likewise.
8696
        (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
8697
        (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
8698
        (pta_flags): Add PTA_AVX and PTA_FMA.
8699
        (override_options): Handle PTA_AVX and PTA_FMA.
8700
        (init_cumulative_args): Handle warn_avx.
8701
        (classify_argument): Return 0 for COImode and OImode.  Return
8702
        1 and X86_64_AVX_CLASS for 256bit vector types.
8703
        (examine_argument): Handle X86_64_AVX_CLASS.
8704
        (construct_container): Likewise.
8705
        (function_arg_advance_32): Pass OImode and 256bit vector types
8706
        in AVX register.
8707
        (function_arg_advance_64): Take a new argument to indicate if a
8708
        parameter is named.  Handle 256bit vector types.  Return
8709
        immediately for unnamed 256bit vector mode parameters.
8710
        (function_arg_advance): Updated.
8711
        (function_arg_32): Add comments for TImode.  Handle OImode
8712
        and 256bit vector types.
8713
        (function_arg_64): Take a new argument to indicate if a
8714
        parameter is named.  Handle 256bit vector types.  Return NULL
8715
        for unnamed 256bit vector mode parameters.
8716
        (function_arg): Updated.
8717
        (setup_incoming_varargs_64): Support
8718
        AVX encoding for *sse_prologue_save_insn.
8719
        (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
8720
        (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
8721
        enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
8722
        enabled, otherwise return -3.
8723
        (standard_sse_constant_opcode): Handle AVX and 256bit vector
8724
        modes.
8725
        (print_reg): Support AVX registers.  Handle 'x' and 't'.
8726
        Handle 'd' to duplicate the operand.
8727
        (print_operand): Likewise.  Also support AVX vector compare
8728
        instructions.
8729
        (output_387_binary_op): Support AVX.
8730
        (output_fp_compare): Likewise.
8731
        (ix86_expand_vector_move_misalign): Likewise.
8732
        (ix86_attr_length_vex_default): New.
8733
        (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
8734
        IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
8735
        IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
8736
        IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
8737
        IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
8738
        IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
8739
        IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
8740
        IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
8741
        IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
8742
        IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
8743
        IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
8744
        IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
8745
        IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
8746
        IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
8747
        IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
8748
        IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
8749
        IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
8750
        IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
8751
        IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
8752
        IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
8753
        IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
8754
        IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
8755
        IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
8756
        IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
8757
        IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
8758
        IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
8759
        IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
8760
        IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
8761
        IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
8762
        IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
8763
        IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
8764
        IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
8765
        IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
8766
        IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
8767
        IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
8768
        IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
8769
        IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
8770
        IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
8771
        IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
8772
        IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
8773
        IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
8774
        IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
8775
        IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
8776
        IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
8777
        IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
8778
        IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
8779
        IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
8780
        IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
8781
        IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
8782
        IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
8783
        IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
8784
        IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
8785
        IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
8786
        IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
8787
        IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
8788
        IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
8789
        IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
8790
        IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
8791
        IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
8792
        IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
8793
        IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
8794
        IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
8795
        IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
8796
        IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
8797
        and IX86_BUILTIN_MOVMSKPS256,
8798
        (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
8799
        V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
8800
        V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
8801
        V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
8802
        V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
8803
        VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
8804
        VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
8805
        VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
8806
        (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
8807
        INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
8808
        INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
8809
        INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
8810
        V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
8811
        V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
8812
        V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
8813
        V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
8814
        V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
8815
        V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
8816
        V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
8817
        V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
8818
        V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
8819
        V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
8820
        V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
8821
        V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
8822
        V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
8823
        V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
8824
        (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
8825
        IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
8826
        IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
8827
        IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
8828
        IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
8829
        IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
8830
        IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
8831
        IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
8832
        IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
8833
        IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
8834
        IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
8835
        IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
8836
        (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
8837
        IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
8838
        IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
8839
        IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
8840
        IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
8841
        IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
8842
        IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
8843
        IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
8844
        IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
8845
        IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
8846
        IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
8847
        IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
8848
        IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
8849
        IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
8850
        IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
8851
        IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
8852
        IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
8853
        IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
8854
        IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
8855
        IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
8856
        IX86_BUILTIN_CMPPS,
8857
        IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
8858
        IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
8859
        IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
8860
        IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
8861
        IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
8862
        IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
8863
        IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
8864
        IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
8865
        IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
8866
        IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
8867
        IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
8868
        IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
8869
        IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
8870
        IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
8871
        IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
8872
        IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
8873
        IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
8874
        IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
8875
        IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
8876
        IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
8877
        IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
8878
        IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
8879
        IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
8880
        IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
8881
        IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
8882
        IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
8883
        IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
8884
        IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
8885
        IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
8886
        IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
8887
        IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
8888
        IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
8889
        IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
8890
        IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
8891
        IX86_BUILTIN_MOVMSKPS256.
8892
        (ix86_init_mmx_sse_builtins): Support AVX builtins.
8893
        (ix86_expand_args_builtin): Likewise.
8894
        (ix86_expand_special_args_builtin): Likewise.
8895
        (ix86_hard_regno_mode_ok): Handle AVX modes.
8896
        (ix86_expand_vector_init_duplicate): Likewise.
8897
        (ix86_expand_vector_init_one_nonzero): Likewise.
8898
        (ix86_expand_vector_init_one_var): Likewise.
8899
        (ix86_expand_vector_init_concat): Likewise.
8900
        (ix86_expand_vector_init_general): Likewise.
8901
        (ix86_expand_vector_set): Likewise.
8902
        (ix86_vector_mode_supported_p): Likewise.
8903
        (x86_extended_reg_mentioned_p): Check INSN_P before using
8904
        PATTERN.
8905
 
8906
        * config/i386/i386-c.c (ix86_target_macros_internal): Handle
8907
        OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
8908
 
8909
        * config/i386/i386.h (TARGET_AVX): New.
8910
        (TARGET_FMA): Likewise.
8911
        (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
8912
        (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
8913
        (VALID_AVX256_REG_MODE): New.
8914
        (AVX256_VEC_FLOAT_MODE_P): Likewise.
8915
        (AVX_FLOAT_MODE_P): Likewise.
8916
        (AVX128_VEC_FLOAT_MODE_P): Likewise.
8917
        (AVX256_VEC_FLOAT_MODE_P): Likewise.
8918
        (AVX_VEC_FLOAT_MODE_P): Likewise.
8919
        (ASM_OUTPUT_AVX_PREFIX): Likewise.
8920
        (ASM_OUTPUT_OPCODE): Likewise.
8921
        (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
8922
        support.
8923
        (SSE_REG_MODE_P): Allow 256bit vector modes.
8924
        (ix86_args): Add a warn_avx field.
8925
 
8926
        * config/i386/i386.md (UNSPEC_PCMP): New.
8927
        (UNSPEC_VPERMIL): Likewise.
8928
        (UNSPEC_VPERMIL2): Likewise.
8929
        (UNSPEC_VPERMIL2F128): Likewise.
8930
        (UNSPEC_MASKLOAD): Likewise.
8931
        (UNSPEC_MASKSTORE): Likewise.
8932
        (UNSPEC_CAST): Likewise.
8933
        (UNSPEC_VTESTP): Likewise.
8934
        (UNSPECV_VZEROALL): Likewise.
8935
        (UNSPECV_VZEROUPPER): Likewise.
8936
        (XMM0_REG): Likewise.
8937
        (XMM1_REG): Likewise.
8938
        (XMM2_REG): Likewise.
8939
        (XMM3_REG): Likewise.
8940
        (XMM4_REG): Likewise.
8941
        (XMM5_REG): Likewise.
8942
        (XMM6_REG): Likewise.
8943
        (XMM8_REG): Likewise.
8944
        (XMM9_REG): Likewise.
8945
        (XMM10_REG): Likewise.
8946
        (XMM11_REG): Likewise.
8947
        (XMM12_REG): Likewise.
8948
        (XMM13_REG): Likewise.
8949
        (XMM14_REG): Likewise.
8950
        (XMM15_REG): Likewise.
8951
        (prefix): Likewise.
8952
        (prefix_vex_imm8): Likewise.
8953
        (prefix_vex_w): Likewise.
8954
        (length_vex): Likewise.
8955
        (maxmin): Likewise.
8956
        (movoi): Likewise.
8957
        (*avx_ashlti3): Likewise.
8958
        (*avx_lshrti3): Likewise.
8959
        (*avx_setcc): Likewise.
8960
        (*fop__comm_mixed_avx): Likewise.
8961
        (*fop__comm_avx): Likewise.
8962
        (*fop__1_mixed_avx): Likewise.
8963
        (*fop__1_avx): Likewise.
8964
        (*avx_3): Likewise.
8965
        (*avx_ieee_smin3): Likewise.
8966
        (*avx_ieee_smax3): Likewise.
8967
        (mode): Add OI, V8SF and V4DF.
8968
        (length): Support VEX prefix.
8969
        (*cmpfp_i_mixed): Set prefix attribute.
8970
        (*cmpfp_i_sse): Likewise.
8971
        (*cmpfp_iu_mixed): Likewise.
8972
        (*cmpfp_iu_sse): Likewise.
8973
        (*movsi_1): Support AVX.
8974
        (*movdi_2): Likewise.
8975
        (*movdi_1_rex64): Likewise.
8976
        (*movti_internal): Likewise.
8977
        (*movti_rex64): Likewise.
8978
        (*movsf_1): Likewise.
8979
        (*movdf_nointeger): Likewise.
8980
        (*movdf_integer_rex64): Likewise.
8981
        (*movtf_internal): Likewise.
8982
        (zero_extendsidi2_32): Likewise.
8983
        (zero_extendsidi2_rex64): Likewise.
8984
        (*extendsfdf2_mixed): Likewise.
8985
        (*extendsfdf2_sse): Likewise.
8986
        (*truncdfsf_fast_mixed): Likewise.
8987
        (*truncdfsf_fast_sse): Likewise.
8988
        (*truncdfsf_mixed): Likewise.
8989
        (fix_truncdi_sse): Likewise.
8990
        (fix_truncsi_sse): Likewise.
8991
        (*float2_mixed_interunit): Likewise.
8992
        (*float2_mixed_nointerunit): Likewise.
8993
        (*float2_sse_interunit): Likewise.
8994
        (*float2_sse_nointerunit): Likewise.
8995
        (*rcpsf2_sse): Likewise.
8996
        (*rsqrtsf2_sse): Likewise.
8997
        (*sqrt2_sse): Likewise.
8998
        (sse4_1_round2): Likewise.
8999
        (*sse_prologue_save_insn): Disallow REX prefix for AVX.
9000
        Support AVX.  Set length attribute properly for AVX.
9001
 
9002
        * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
9003
        (VECTOR_MODES (FLOAT, 32)): Likewise.
9004
        (VECTOR_MODE (INT, DI, 8)): Likewise.
9005
        (VECTOR_MODE (INT, HI, 32)): Likewise.
9006
        (VECTOR_MODE (INT, QI, 64)): Likewise.
9007
        (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
9008
        (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
9009
        (VECTOR_MODE (INT, DI, 4)): Removed.
9010
        (VECTOR_MODE (INT, SI, 8)): Likewise.
9011
        (VECTOR_MODE (INT, HI, 16)): Likewise.
9012
        (VECTOR_MODE (INT, QI, 32)): Likewise.
9013
        (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
9014
        (INT_MODE (OI, 32)): Likewise.
9015
 
9016
        * config/i386/i386.opt (mavx): New.
9017
        (mfma): Likewise.
9018
 
9019
        * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
9020
 
9021
        * config/i386/mmx.md (*mov_internal_rex64): Support AVX.
9022
        (*mov_internal_avx): New.
9023
        (*movv2sf_internal_rex64_avx): Likewise.
9024
        (*movv2sf_internal_avx): Likewise.
9025
 
9026
        * config/i386/predicates.md (const_4_to_5_operand): New.
9027
        (const_6_to_7_operand): Likewise.
9028
        (const_8_to_11_operand): Likewise.
9029
        (const_12_to_15_operand): Likewise.
9030
        (avx_comparison_float_operator): Likewise.
9031
 
9032
        * config/i386/sse.md (AVX256MODEI): New.
9033
        (AVX256MODE): Likewise.
9034
        (AVXMODEQI): Likewise.
9035
        (AVXMODE): Likewise.
9036
        (AVX256MODEF2P): Likewise.
9037
        (AVX256MODE2P): Likewise.
9038
        (AVX256MODE4P): Likewise.
9039
        (AVX256MODE8P): Likewise.
9040
        (AVXMODEF2P): Likewise.
9041
        (AVXMODEF4P): Likewise.
9042
        (AVXMODEDCVTDQ2PS): Likewise.
9043
        (AVXMODEDCVTPS2DQ): Likewise.
9044
        (avxvecmode): Likewise.
9045
        (avxvecpsmode): Likewise.
9046
        (avxhalfvecmode): Likewise.
9047
        (avxscalarmode): Likewise.
9048
        (avxcvtvecmode): Likewise.
9049
        (avxpermvecmode): Likewise.
9050
        (avxmodesuffixf2c): Likewise.
9051
        (avxmodesuffixp): Likewise.
9052
        (avxmodesuffixs): Likewise.
9053
        (avxmodesuffix): Likewise.
9054
        (vpermilbits): Likewise.
9055
        (pinsrbits): Likewise.
9056
        (mov): Likewise.
9057
        (*mov_internal): Likewise.
9058
        (push1): Likewise.
9059
        (movmisalign): Likewise.
9060
        (avx_movup): Likewise.
9061
        (avx_movdqu): Likewise.
9062
        (avx_lddqu): Likewise.
9063
        (3): Likewise.
9064
        (*avx_3): Likewise.
9065
        (*avx_vm3): Likewise.
9066
        (mul3): Likewise.
9067
        (*avx_mul3): Likewise.
9068
        (*avx_vmmul3): Likewise.
9069
        (divv8sf3): Likewise.
9070
        (divv4df3): Likewise.
9071
        (avx_div3): Likewise.
9072
        (*avx_div3): Likewise.
9073
        (*avx_vmdiv3): Likewise.
9074
        (avx_rcpv8sf2): Likewise.
9075
        (*avx_vmrcpv4sf2): Likewise.
9076
        (sqrtv8sf2): Likewise.
9077
        (avx_sqrtv8sf2): Likewise.
9078
        (*avx_vmsqrt2): Likewise.
9079
        (rsqrtv8sf2): Likewise.
9080
        (avx_rsqrtv8sf2): Likewise.
9081
        (*avx_vmrsqrtv4sf2): Likewise.
9082
        (3): Likewise.
9083
        (*avx_3_finite): Likewise.
9084
        (*avx_3): Likewise.
9085
        (*avx_vm3): Likewise.
9086
        (*avx_ieee_smin3): Likewise.
9087
        (*avx_ieee_smax3): Likewise.
9088
        (avx_addsubv8sf3): Likewise.
9089
        (avx_addsubv4df3): Likewise.
9090
        (*avx_addsubv4sf3): Likewise.
9091
        (*avx_addsubv2df3): Likewise.
9092
        (avx_hv4df3): Likewise.
9093
        (avx_hv8sf3): Likewise.
9094
        (*avx_hv4sf3): Likewise.
9095
        (*avx_hv2df3): Likewise.
9096
        (avx_cmpp3): Likewise.
9097
        (avx_cmps3): Likewise.
9098
        (*avx_maskcmp3): Likewise.
9099
        (avx_nand3): Likewise.
9100
        (*avx_3): Likewise.
9101
        (*avx_nand3): Likewise.
9102
        (*avx_3): Likewise.
9103
        (*avx_cvtsi2ss): Likewise.
9104
        (*avx_cvtsi2ssq): Likewise.
9105
        (*avx_cvtsi2sd): Likewise.
9106
        (*avx_cvtsi2sdq): Likewise.
9107
        (*avx_cvtsd2ss): Likewise.
9108
        (avx_cvtss2sd): Likewise.
9109
        (avx_cvtdq2ps): Likewise.
9110
        (avx_cvtps2dq): Likewise.
9111
        (avx_cvttps2dq): Likewise.
9112
        (*avx_cvtsi2sd): Likewise.
9113
        (*avx_cvtsi2sdq): Likewise.
9114
        (avx_cvtdq2pd256): Likewise.
9115
        (avx_cvtpd2dq256): Likewise.
9116
        (avx_cvttpd2dq256): Likewise.
9117
        (*avx_cvtsd2ss): Likewise.
9118
        (*avx_cvtss2sd): Likewise.
9119
        (avx_cvtpd2ps256): Likewise.
9120
        (avx_cvtps2pd256): Likewise.
9121
        (*avx_movhlps): Likewise.
9122
        (*avx_movlhps): Likewise.
9123
        (avx_unpckhps256): Likewise.
9124
        (*avx_unpckhps): Likewise.
9125
        (avx_unpcklps256): Likewise.
9126
        (*avx_unpcklps): Likewise.
9127
        (avx_movshdup256): Likewise.
9128
        (avx_movsldup256): Likewise.
9129
        (avx_shufps256): Likewise.
9130
        (avx_shufps256_1): Likewise.
9131
        (*avx_shufps_): Likewise.
9132
        (*avx_loadhps): Likewise.
9133
        (*avx_storelps): Likewise.
9134
        (*avx_loadlps): Likewise.
9135
        (*avx_movss): Likewise.
9136
        (*vec_dupv4sf_avx): Likewise.
9137
        (*vec_concatv2sf_avx): Likewise.
9138
        (*vec_concatv4sf_avx): Likewise.
9139
        (*vec_setv4sf_0_avx): Likewise.
9140
        (*vec_setv4sf_avx): Likewise.
9141
        (*avx_insertps): Likewise.
9142
        (avx_vextractf128): Likewise.
9143
        (vec_extract_lo_): Likewise.
9144
        (vec_extract_hi_): Likewise.
9145
        (vec_extract_lo_): Likewise.
9146
        (vec_extract_hi_): Likewise.
9147
        (vec_extract_lo_v16hi): Likewise.
9148
        (vec_extract_hi_v16hi): Likewise.
9149
        (vec_extract_lo_v32qi): Likewise.
9150
        (vec_extract_hi_v32qi): Likewise.
9151
        (avx_unpckhpd256): Likewise.
9152
        (*avx_unpckhpd): Likewise.
9153
        (avx_movddup256): Likewise.
9154
        (*avx_movddup): Likewise.
9155
        (avx_unpcklpd256): Likewise.
9156
        (*avx_unpcklpd): Likewise.
9157
        (avx_shufpd256): Likewise.
9158
        (avx_shufpd256_1): Likewise.
9159
        (*avx_punpckhqdq): Likewise.
9160
        (*avx_punpcklqdq): Likewise.
9161
        (*avx_shufpd_): Likewise.
9162
        (*avx_storehpd): Likewise.
9163
        (*avx_loadhpd): Likewise.
9164
        (*avx_loadlpd): Likewise.
9165
        (*avx_movsd): Likewise.
9166
        (*vec_concatv2df_avx): Likewise.
9167
        (*avx_3): Likewise.
9168
        (*avx_3): Likewise.
9169
        (*avx_mulv8hi3): Likewise.
9170
        (*avxv8hi3_highpart): Likewise.
9171
        (*avx_umulv8hi3_highpart): Likewise.
9172
        (*avx_umulv2siv2di3): Likewise.
9173
        (*avx_mulv2siv2di3): Likewise.
9174
        (*avx_pmaddwd): Likewise.
9175
        (*avx_mulv4si3): Likewise.
9176
        (*avx_ashr3): Likewise.
9177
        (*avx_lshr3): Likewise.
9178
        (*avx_ashl3): Likewise.
9179
        (*avx_3): Likewise.
9180
        (*avx_eq3): Likewise.
9181
        (*avx_gt3): Likewise.
9182
        (*avx_nand3): Likewise.
9183
        (*avx_nand3): Likewise.
9184
        (*avx_3): Likewise.
9185
        (*avx_3): Likewise.
9186
        (*avx_packsswb): Likewise.
9187
        (*avx_packssdw): Likewise.
9188
        (*avx_packuswb): Likewise.
9189
        (*avx_punpckhbw): Likewise.
9190
        (*avx_punpcklbw): Likewise.
9191
        (*avx_punpckhwd): Likewise.
9192
        (*avx_punpcklwd): Likewise.
9193
        (*avx_punpckhdq): Likewise.
9194
        (*avx_punpckldq): Likewise.
9195
        (*avx_pinsr): Likewise.
9196
        (*avx_pinsrq): Likewise.
9197
        (*avx_loadld): Likewise.
9198
        (*vec_extractv2di_1_rex64_avx): Likewise.
9199
        (*vec_extractv2di_1_avx): Likewise.
9200
        (*vec_dupv2di_avx): Likewise.
9201
        (*vec_concatv2si_avx): Likewise.
9202
        (*vec_concatv4si_1_avx): Likewise.
9203
        (*vec_concatv2di_avx): Likewise.
9204
        (*vec_concatv2di_rex64_avx): Likewise.
9205
        (*avx_uavgv16qi3): Likewise.
9206
        (*avx_uavgv8hi3): Likewise.
9207
        (*avx_psadbw): Likewise.
9208
        (avx_movmskp256): Likewise.
9209
        (*avx_phaddwv8hi3): Likewise.
9210
        (*avx_phadddv4si3): Likewise.
9211
        (*avx_phaddswv8hi3): Likewise.
9212
        (*avx_phsubwv8hi3): Likewise.
9213
        (*avx_phsubdv4si3): Likewise.
9214
        (*avx_phsubswv8hi3): Likewise.
9215
        (*avx_pmaddubsw128): Likewise.
9216
        (*avx_pmulhrswv8hi3): Likewise.
9217
        (*avx_pshufbv16qi3): Likewise.
9218
        (*avx_psign3): Likewise.
9219
        (*avx_palignrti): Likewise.
9220
        (avx_blendp): Likewise.
9221
        (avx_blendvp): Likewise.
9222
        (avx_dpp): Likewise.
9223
        (*avx_mpsadbw): Likewise.
9224
        (*avx_packusdw): Likewise.
9225
        (*avx_pblendvb): Likewise.
9226
        (*avx_pblendw): Likewise.
9227
        (avx_vtestp): Likewise.
9228
        (avx_ptest256): Likewise.
9229
        (avx_roundp256): Likewise.
9230
        (*avx_rounds): Likewise.
9231
        (*avx_aesenc): Likewise.
9232
        (*avx_aesenclast): Likewise.
9233
        (*avx_aesdec): Likewise.
9234
        (*avx_aesdeclast): Likewise.
9235
        (avx_vzeroupper): Likewise.
9236
        (avx_vzeroupper_rex64): Likewise.
9237
        (avx_vpermil): Likewise.
9238
        (avx_vpermilvar3): Likewise.
9239
        (avx_vpermil23): Likewise.
9240
        (avx_vperm2f1283): Likewise.
9241
        (avx_vbroadcasts): Likewise.
9242
        (avx_vbroadcastss256): Likewise.
9243
        (avx_vbroadcastf128_p256): Likewise.
9244
        (avx_vinsertf128): Likewise.
9245
        (vec_set_lo_): Likewise.
9246
        (vec_set_hi_): Likewise.
9247
        (vec_set_lo_): Likewise.
9248
        (vec_set_hi_): Likewise.
9249
        (vec_set_lo_v16hi): Likewise.
9250
        (vec_set_hi_v16hi): Likewise.
9251
        (vec_set_lo_v32qi): Likewise.
9252
        (vec_set_hi_v32qi): Likewise.
9253
        (avx_maskloadp): Likewise.
9254
        (avx_maskstorep): Likewise.
9255
        (avx__): Likewise.
9256
        (avx__): Likewise.
9257
        (vec_init): Likewise.
9258
        (*vec_concat_avx): Likewise.
9259
        (blendbits): Support V8SF and V4DF.
9260
        (sse2_movq128): Support AVX.
9261
        (_movnt): Likewise.
9262
        (sse2_movntv2di): Likewise.
9263
        (sse_rcpv4sf2): Likewise.
9264
        (sse_sqrtv4sf2): Likewise.
9265
        (sse_rsqrtv4sf2): Likewise.
9266
        (_comi): Likewise.
9267
        (_ucomi): Likewise.
9268
        (sse_cvtss2si): Likewise.
9269
        (sse_cvtss2si_2): Likewise.
9270
        (sse_cvtss2siq): Likewise.
9271
        (sse_cvtss2siq_2): Likewise.
9272
        (sse_cvttss2si): Likewise.
9273
        (sse_cvttss2siq): Likewise.
9274
        (sse2_cvtsd2si): Likewise.
9275
        (sse2_cvtsd2si_2): Likewise.
9276
        (sse2_cvtsd2siq): Likewise.
9277
        (sse2_cvtsd2siq_2): Likewise.
9278
        (sse2_cvttsd2si): Likewise.
9279
        (sse2_cvttsd2siq): Likewise.
9280
        (sse2_cvtdq2pd): Likewise.
9281
        (*sse2_cvtpd2dq): Likewise.
9282
        (*sse2_cvttpd2dq): Likewise.
9283
        (*sse2_cvtpd2ps): Likewise.
9284
        (sse2_cvtps2pd): Likewise.
9285
        (sse3_movshdup): Likewise.
9286
        (sse3_movsldup): Likewise.
9287
        (sse_storehps): Likewise.
9288
        (*sse4_1_extractps): Likewise.
9289
        (sse2_storelpd): Likewise.
9290
        (vec_dupv2df_sse3): Likewise.
9291
        (*vec_concatv2df_sse3): Likewise.
9292
        (*sse4_1_pextrb): Likewise.
9293
        (*sse4_1_pextrb_memory): Likewise.
9294
        (*sse2_pextrw): Likewise.
9295
        (*sse4_1_pextrw_memory): Likewise.
9296
        (*sse4_1_pextrd): Likewise.
9297
        (*sse4_1_pextrq): Likewise.
9298
        (sse2_pshufd_1): Likewise.
9299
        (sse2_pshuflw_1): Likewise.
9300
        (sse2_pshufhw_1): Likewise.
9301
        (*sse2_storeq_rex64): Likewise.
9302
        (*vec_dupv4si): Likewise.
9303
        (_movmskp): Likewise.
9304
        (sse2_pmovmskb): Likewise.
9305
        (*sse2_maskmovdqu): Likewise.
9306
        (*sse2_maskmovdqu_rex64): Likewise.
9307
        (sse_ldmxcsr): Likewise.
9308
        (sse_stmxcsr): Likewise.
9309
        (abs2): Likewise.
9310
        (sse4_1_movntdqa): Likewise.
9311
        (sse4_1_phminposuw): Likewise.
9312
        (sse4_1_extendv8qiv8hi2): Likewise.
9313
        (*sse4_1_extendv8qiv8hi2): Likewise.
9314
        (sse4_1_extendv4qiv4si2): Likewise.
9315
        (*sse4_1_extendv4qiv4si2): Likewise.
9316
        (sse4_1_extendv2qiv2di2): Likewise.
9317
        (*sse4_1_extendv2qiv2di2): Likewise.
9318
        (sse4_1_extendv4hiv4si2): Likewise.
9319
        (*sse4_1_extendv4hiv4si2): Likewise.
9320
        (sse4_1_extendv2hiv2di2): Likewise.
9321
        (*sse4_1_extendv2hiv2di2): Likewise.
9322
        (sse4_1_extendv2siv2di2): Likewise.
9323
        (*sse4_1_extendv2siv2di2): Likewise.
9324
        (sse4_1_zero_extendv8qiv8hi2): Likewise.
9325
        (*sse4_1_zero_extendv8qiv8hi2): Likewise.
9326
        (sse4_1_zero_extendv4qiv4si2): Likewise.
9327
        (*sse4_1_zero_extendv4qiv4si2): Likewise.
9328
        (sse4_1_zero_extendv2qiv2di2): Likewise.
9329
        (*sse4_1_zero_extendv2qiv2di2): Likewise.
9330
        (sse4_1_zero_extendv4hiv4si2): Likewise.
9331
        (*sse4_1_zero_extendv4hiv4si2): Likewise.
9332
        (sse4_1_zero_extendv2hiv2di2): Likewise.
9333
        (*sse4_1_zero_extendv2hiv2di2): Likewise.
9334
        (sse4_1_zero_extendv2siv2di2): Likewise.
9335
        (*sse4_1_zero_extendv2siv2di2): Likewise.
9336
        (sse4_1_ptest): Likewise.
9337
        (sse4_1_roundp): Likewise.
9338
        (sse4_2_pcmpestri): Likewise.
9339
        (sse4_2_pcmpestrm): Likewise.
9340
        (sse4_2_pcmpistri): Likewise.
9341
        (sse4_2_pcmpistrm): Likewise.
9342
        (aesimc): Likewise.
9343
        (aeskeygenassist): Likewise.
9344
 
9345
2008-08-28  Uros Bizjak  
9346
 
9347
        * config/i386/predicates.md (vzeroall_operation): New.
9348
 
9349
        * config/i386/sse.md (avx_vzeroall): New.
9350
        (*avx_vzeroall): Likewise.
9351
 
9352
2008-08-28  Paul Brook  
9353
            Mark Shinwell  
9354
            Richard Earnshaw  
9355
 
9356
        * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
9357
        (TARGET_MIN_ANCHOR_OFFSET): New.
9358
        (arm_override_options): Set correct anchor ranges for Thumb-1
9359
        and Thumb-2 if required.
9360
        (legitimize_pic_address): Handle case involving a TLS symbol
9361
        reference with an addend.
9362
        (arm_optimization_options): Enable section anchors at -O1 and
9363
        above.
9364
        * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
9365
        * config/arm/arm-protos.h (arm_optimization_options): New.
9366
 
9367
2008-08-28  Nick Clifton  
9368
 
9369
        * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
9370
        * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
9371
        attribute.
9372
 
9373
        * config/v850/v850.h (IRA_COVER_CLASSES): Define.
9374
        * config/v850/v850.md (return): Remove frame size restriction.
9375
 
9376
        * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
9377
 
9378
        * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
9379
 
9380
        * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
9381
 
9382
        * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
9383
 
9384
2008-08-28  Paul Brook  
9385
 
9386
        * config/arm/vfp11.md: Update license notice.
9387
        * config/arm/cortex-r4.md: Ditto.
9388
 
9389
2008-08-28  Richard Guenther  
9390
 
9391
        PR tree-optimization/37207
9392
        * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
9393
        tuplification bug.
9394
 
9395
2008-08-28  Dodji Seketeli  
9396
 
9397
        PR c++/36741
9398
        * tree.c (int_fits_type_p): Don't forget unsigned integers
9399
          of type sizetype which higher end word equals -1.
9400
 
9401
2008-08-28  Ira Rosen  
9402
 
9403
        * target.h (struct vectorize): Add new target builtin.
9404
        * tree-vectorizer.c (destroy_loop_vec_info): Call
9405
        vect_free_slp_instance instead of vect_free_slp_node.
9406
        * tree-vectorizer.h (enum slp_load_perm_type): New.
9407
        (struct _slp_instance): Add new fields.
9408
        (SLP_INSTANCE_LOAD_PERMUTATION): New.
9409
        (SLP_INSTANCE_LOADS): New.
9410
        (vect_free_slp_tree): Remove.
9411
        (vect_free_slp_instance): Declare.
9412
        (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
9413
        (vectorizable_load): Add argument.
9414
        (vect_transform_slp_perm_load): New.
9415
        * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
9416
        vectorizable_load.
9417
        (vect_get_place_in_interleaving_chain): New function.
9418
        (vect_free_slp_tree): Make static.
9419
        (vect_free_slp_instance): New function.
9420
        (vect_build_slp_tree): Add new arguments. Allow load permutations and
9421
        collect the load location in the interleaving chain.
9422
        (vect_supported_slp_permutation_p): New function.
9423
        (vect_supported_load_permutation_p): Likewise.
9424
        (vect_analyze_slp_instance): In case of loads permutation, call
9425
        vect_supported_load_permutation_p to check that the permutation is
9426
        supported.
9427
        * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
9428
        * tree-vect-transform.c (vect_transform_stmt): Add new argument.
9429
        (vect_create_mask_and_perm): New function.
9430
        (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
9431
        (vectorizable_load): Add an argument. Don't keep the created vectors
9432
        statements in the node if permutation is required. Call
9433
        vect_transform_slp_perm_load to generate the permutation.
9434
        (vect_transform_stmt): Add new argument. Call vectorizable_load with
9435
        additional argument.
9436
        (vect_schedule_slp_instance): In case of loads permutation, allocate
9437
        vectorized statements structure for all the related SLP nodes. Call
9438
        vect_transform_stmt with addditional argument.
9439
        (vect_transform_loop): Call vect_transform_stmt with correct arguments.
9440
        * config/spu/spu.c (spu_builtin_vec_perm): New.
9441
        (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
9442
        * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
9443
        * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
9444
        (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
9445
 
9446
2008-08-28  Chris Fairles  
9447
 
9448
        * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
9449
        __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
9450
        __gthread_cond_signal, __gthread_cond_timedwait,
9451
        __gthread_cond_timedwait_recursive): New functions.
9452
        * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
9453
        Likewise.
9454
        * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
9455
        thread interfaces.
9456
 
9457
2008-08-28  Richard Guenther  
9458
 
9459
        PR middle-end/37005
9460
        * fold-const.c (maybe_canonicalize_comparison_1): Require
9461
        undefined overflow only for canonicalizing A +- CST cmp CST.
9462
        Make sure to not generate new constants that are not inside
9463
        their TYPE_MIN/MAX_VALUE range.
9464
        (maybe_canonicalize_comparison): Remove undefined overflow
9465
        checking from here.
9466
        (fold_binary): Remove now duplicate folding.
9467
 
9468
2008-08-27  Paolo Carlini  
9469
 
9470
        * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
9471
        use not updated in the last change.
9472
 
9473
2008-08-27  Kaz Kojima  
9474
 
9475
        * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
9476
        (IRA_COVER_CLASSES): Add FPUL_REGS.
9477
 
9478
2008-08-27  Manuel Lopez-Ibanez  
9479
 
9480
        PR 37217
9481
        * c-common.c (conversion_warning): Check for null operands.
9482
 
9483
2008-08-27  Manuel Lopez-Ibanez  
9484
 
9485
        PR c/31673
9486
        * c-decl.c (check_for_loop_decls): Improve error message. Give
9487
        hint.
9488
 
9489
2008-08-27  Manuel Lopez-Ibanez  
9490
 
9491
        PR c/37186
9492
        * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
9493
        (convert_for_assignment): Pass corrent OPT_W* parameter to
9494
        WARN_FOR_ASSIGNMENT.
9495
 
9496
2008-08-27  Paolo Carlini  
9497
 
9498
        PR c++/35321
9499
        * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
9500
 
9501
2008-08-27  Paul Brook  
9502
 
9503
        * config.gcc: Loosen checks for arm uclinux eabi targets.
9504
 
9505
2008-08-27  Paul Brook  
9506
 
9507
        * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
9508
        _clzsi2.
9509
        * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
9510
 
9511
2008-08-26  Douglas Gregor  
9512
 
9513
        * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
9514
        the enumerators of an ENUMERAL_TYPE.
9515
        * dbxout.c (dbxout_type): Ditto.
9516
 
9517
2008-08-26  Andrew Pinski  
9518
 
9519
        PR rtl-opt/37219
9520
        * fwprop.c (fwprop): Check that the loop_father is the outer loop.
9521
        (fwprop_addr): Check that the loop_father is not the outer loop.
9522
 
9523
2008-08-26  Paul Brook  
9524
 
9525
        * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
9526
        Remove documentation entry for fmul type.
9527
        Use fmuls to annotate single-precision multiplication patterns,
9528
        fmuld to annotate double-precision multiplication patterns,
9529
        fmacs to annotate single-precision multiply-accumulate patterns
9530
        and fmacd to annotate double-precision multiply-accumulate patterns.
9531
        * config/arm/vfp11.md: Update reservations accordingly.
9532
        * config/arm/arm.md: Note that certain values of the "type"
9533
        attribute are documented in vfp.md.
9534
        * config/arm/arm1020e.md: Remove out of date duplicate comment.
9535
        (v10_cvt): Use new fmul types.
9536
 
9537
2008-08-26  Paul Brook  
9538
 
9539
        * config/arm/vfp.md: Move pipeline description for VFP11 to...
9540
        * config/arm/vfp11.md: ...here.  New.
9541
        * config/arm/arm.md: Include vfp11.md.
9542
 
9543
2008-08-26  Hans-Peter Nilsson  
9544
 
9545
        * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
9546
        parameter to inform call.
9547
 
9548
2008-08-26  Jeff Law  
9549
 
9550
        * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
9551
        avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
9552
        preferred class when copying a constant into a partial word register.
9553
 
9554
2008-08-26  Ben Elliston  
9555
 
9556
        * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
9557
        * cp/typeck.c: Likewise.
9558
        * cp/tree.c: Likewise.
9559
        * gimple-low.c: Likewise.
9560
        * jump.c: Likewise.
9561
 
9562
2008-08-26  Vladimir Makarov  
9563
 
9564
        * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
9565
        ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
9566
 
9567
        * doc/passes.texi: Describe IRA.
9568
 
9569
        * doc/tm.texi (IRA_COVER_CLASSES,
9570
        IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
9571
 
9572
        * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
9573
        (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
9574
        -fira-propagate-cost, -fno-ira-share-save-slots,
9575
        -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
9576
 
9577
        * flags.h (ira_algorithm): New enumeration.
9578
        (flag_ira_algorithm, flag_ira_verbose): New external variable
9579
        declarations.
9580
 
9581
        * postreload.c (gate_handle_postreload): Don't do post reload
9582
        optimizations unless the reload is completed.
9583
 
9584
        * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
9585
        IRA.
9586
 
9587
        * tree-pass.h (pass_ira): New external variable declaration.
9588
 
9589
        * reload.h: Add 2008 to the Copyright.
9590
 
9591
        * cfgloopanal.c: Include params.h.
9592
        (estimate_reg_pressure_cost): Decrease cost for IRA optimization
9593
        mode.
9594
 
9595
        * params.h (IRA_MAX_LOOPS_NUM): New macro.
9596
 
9597
        * toplev.c (ira.h): New include.
9598
        (flag_ira_algorithm, flag_ira_verbose): New external variables.
9599
        (backend_init_target): Call ira_init.
9600
        (backend_init): Call ira_init_once.
9601
        (finalize): Call finish_ira_once.
9602
 
9603
        * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
9604
        flag_ira_share_save_slots, flag_ira_share_spill_slots): New
9605
        external variables.
9606
 
9607
        * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
9608
        may_move_out_cost): New external variable declarations.
9609
        (move_table): New typedef.
9610
 
9611
        * caller-save.c: Include headers output.h and ira.h.
9612
        (no_caller_save_reg_set): New global variable.
9613
        (save_slots_num, save_slots): New variables.
9614
        (reg_save_code, reg_restore_code, add_stored_regs): Add
9615
        prototypes.
9616
        (init_caller_save): Set up no_caller_save_reg_set.
9617
        (init_save_areas): Reset save_slots_num.
9618
        (saved_hard_reg): New structure.
9619
        (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
9620
        (initiate_saved_hard_regs, new_saved_hard_reg,
9621
        finish_saved_hard_regs, saved_hard_reg_compare_func): New
9622
        functions.
9623
        (setup_save_areas): Add code for sharing stack slots.
9624
        (all_blocks): New variable.
9625
        (save_call_clobbered_regs): Process pseudo-register too.
9626
        (mark_set_regs): Process pseudo-register too.
9627
        (insert_one_insn): Put the insn after bb note in a empty basic
9628
        block.  Add insn check.
9629
 
9630
        * global.c (eliminable_regset): Make it external.
9631
        (mark_elimination): Use DF_LR_IN for IRA.
9632
        (pseudo_for_reload_consideration_p): New.
9633
        (build_insn_chain): Make it external.  Don't ignore spilled
9634
        pseudos for IRA.  Use pseudo_for_reload_consideration_p.
9635
        (gate_handle_global_alloc): New function.
9636
        (pass_global_alloc): Add the gate function.
9637
 
9638
        * opts.c (decode_options): Set up flag_ira.  Print the warning for
9639
        -fira.
9640
        (common_handle_option): Process -fira-algorithm and -fira-verbose.
9641
 
9642
        * timevar.def (TV_IRA, TV_RELOAD): New passes.
9643
 
9644
        * regmove.c (regmove_optimize): Don't do replacement of output for
9645
        IRA.
9646
 
9647
        * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
9648
        New external variable declarations.
9649
 
9650
        * local-alloc.c (update_equiv_regs): Make it external.  Return
9651
        true if jump label rebuilding should be done.  Rescan new_insn for
9652
        notes.
9653
        (gate_handle_local_alloc): New function.
9654
        (pass_local_alloc): Add the gate function.
9655
 
9656
        * alias.c (value_addr_p, stack_addr_p): New functions.
9657
        (nonoverlapping_memrefs_p): Use them for IRA.
9658
 
9659
        * common.opt (fira, fira-algorithm, fira-coalesce,
9660
        fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
9661
        fira-verbose): New options.
9662
 
9663
        * regclass.c (reg_class_subclasses, contains_reg_of_mode,
9664
        move_cost, may_move_in_cost, may_move_out_cost): Make the
9665
        variables external.
9666
        (move_table): Remove typedef.
9667
        (init_move_cost): Make it external.
9668
        (allocate_reg_info, resize_reg_info, setup_reg_classes): New
9669
        functions.
9670
 
9671
        * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
9672
        setup_reg_classes): New function prototypes.
9673
        (eliminable_regset): New external variable declaration.
9674
        (build_insn_chain, update_equiv_regs): New function prototypes.
9675
 
9676
        * Makefile.in (IRA_INT_H): New definition.
9677
        (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
9678
        ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
9679
        (reload1.o, toplev.o): Add dependence on ira.h.
9680
        (cfgloopanal.o): Add PARAMS_H.
9681
        (caller-save.o): Add dependence on output.h and ira.h.
9682
        (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
9683
        ira-emit.o, ira-lives.o): New entries.
9684
 
9685
        * passes.c (pass_ira): New pass.
9686
 
9687
        * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
9688
 
9689
        * reload1.c (ira.h): Include the header.
9690
        (changed_allocation_pseudos): New bitmap.
9691
        (init_reload): Initiate the bitmap.
9692
        (compute_use_by_pseudos): Permits spilled registers in FROM.
9693
        (temp_pseudo_reg_arr): New variable.
9694
        (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
9695
        IRA.  Call alter_reg with the additional parameter.  Don't clear
9696
        spilled_pseudos for IRA.  Restore original insn chain for IRA.
9697
        Clear changed_allocation_pseudos at the end of reload.
9698
        (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
9699
        (hard_regno_to_pseudo_regno): New variable.
9700
        (count_pseudo): Check spilled pseudos.  Set up
9701
        hard_regno_to_pseudo_regno.
9702
        (count_spilled_pseudo): Check spilled pseudos. Update
9703
        hard_regno_to_pseudo_regno.
9704
        (find_reg): Use better_spill_reload_regno_p.  Check
9705
        hard_regno_to_pseudo_regno.
9706
        (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
9707
        code for IRA.
9708
        (eliminate_regs_1): Use additional parameter for alter_reg.
9709
        (finish_spills): Set up pseudo_previous_regs only for spilled
9710
        pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
9711
        more arguments.  Don't clear live_throughout and dead_or_set for
9712
        spilled pseudos.  Use additional parameter for alter_reg.  Call
9713
        mark_allocation_change.  Set up changed_allocation_pseudos.
9714
        Remove sanity check.
9715
        (emit_input_reload_insns, delete_output_reload): Use additional
9716
        parameter for alter_reg.  Call mark_allocation_change.
9717
        (substitute, gen_reload_chain_without_interm_reg_p): New
9718
        functions.
9719
        (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
9720
 
9721
        * testsuite/gcc.dg/20080410-1.c: New file.
9722
 
9723
        * config/s390/s390.h (IRA_COVER_CLASSES,
9724
        IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
9725
 
9726
        * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
9727
 
9728
        * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
9729
 
9730
        * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9731
 
9732
        * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
9733
 
9734
        * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9735
 
9736
        * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
9737
 
9738
        2008-08-24  Jeff Law  
9739
        * ira.c (setup_reg_class_intersect_union): Prefer smallest class
9740
        when ignoring unavailable registers.
9741
 
9742
        2008-08-24  Jeff Law  
9743
        * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
9744
        FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
9745
        * ira.c (setup_eliminable_regset): Check stack_realign_needed.
9746
        * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
9747
 
9748
        2008-06-03  Steve Chamberlain  
9749
        * ira-build.c (allocno_range_compare_func): Stabilize sort.
9750
 
9751
        2008-05-29  Andy Hutchinson  
9752
        * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
9753
        * reload1.c (find_reg): Process registers in register allocation order.
9754
 
9755
        2008-05-10  Richard Sandiford  
9756
        * toplev.c (backend_init_target): Move ira_init call from
9757
        here...
9758
        (lang_dependent_init_target): ...to here.
9759
 
9760
        2008-05-10  Richard Sandiford  
9761
        * ira.c (setup_class_subset_and_memory_move_costs): Don't
9762
        calculate memory move costs for NO_REGS.
9763
 
9764
        2008-05-05  Kaz Kojima  
9765
        * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
9766
        STACK_REGS is defined.
9767
 
9768
        2008-04-08  Andrew Pinski  
9769
        * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
9770
 
9771
        2008-04-04  Bernd Schmidt  
9772
        * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
9773
 
9774
        2008-04-04  Kaz Kojima  
9775
        * config/sh/sh.h (IRA_COVER_CLASSES): Define.
9776
        * config/sh/sh.md (movsicc_true+3): Check if emit returns a
9777
        barrier.
9778
 
9779
2008-08-26  Victor Kaplansky  
9780
            Dorit Nuzman  
9781
 
9782
        * gcc/config/spu/spu.md (vec_extract_evenv4si,
9783
        vec_extract_evenv4sf, vec_extract_evenv8hi,
9784
        vec_extract_evenv16qi, vec_extract_oddv4si,
9785
        vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
9786
        vec_interleave_highv4sf, vec_interleave_lowv4sf,
9787
        vec_interleave_highv4si, vec_interleave_lowv4si,
9788
        vec_interleave_highv8hi, vec_interleave_lowv8hi,
9789
        vec_interleave_highv16qi, vec_interleave_lowv16qi,
9790
        vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
9791
 
9792
2008-08-25  Janis Johnson  
9793
 
9794
        PR target/36756
9795
        * config/rs6000/rs6000.c (optimization_options): Don't default to
9796
        section anchors without toplevel reorder.
9797
 
9798
2008-08-25  Ulrich Weigand  
9799
 
9800
        * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
9801
        (mfc_end_critical_section): Likewise.
9802
 
9803
2008-08-25  Ulrich Weigand  
9804
 
9805
        * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
9806
        all type qualifiers from element type to vector type.
9807
 
9808
2008-08-25  David Daney  
9809
 
9810
        * config/mips/mips.md (immediate_insn): Move up in file, fix
9811
        comment typo, reformat.
9812
        (fetchop_bit, atomic_hiqi_op memory_barrier,
9813
        sync_compare_and_swap, compare_and_swap_12, sync_add,
9814
        sync_, sync__12, sync_old_,
9815
        sync_old__12, sync_new_, sync_new__12,
9816
        sync_nand, sync_nand_12, sync_old_nand,
9817
        sync_old_nand_12, sync_new_nand, sync_new_nand_12,
9818
        sync_sub, sync_old_add, sync_old_sub,
9819
        sync_new_add, sync_new_sub, sync_,
9820
        sync_old_, sync_new_, sync_nand,
9821
        sync_old_nand, sync_new_nand,
9822
        sync_lock_test_and_set, sync_lock_test_and_set,
9823
        test_and_set_12): Moved to sync.md.
9824
        (sync.md): Include.
9825
        * config/mips/sync.md: New file.
9826
 
9827
2008-08-25  Richard Henderson  
9828
 
9829
        * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
9830
        (regsave): Likewise.
9831
        (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
9832
        (output_cfi_directive): Likewise.
9833
        (div_data_align): New.
9834
        (output_cfi): Use it.
9835
 
9836
2008-08-24  Adam Nemet  
9837
 
9838
        * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
9839
        * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
9840
        (TARGET_OCTEON): New macro.
9841
        (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
9842
        (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
9843
        (ISA_HAS_POP): New macro.
9844
        * config/mips/driver-native.c (host_detect_local_cpu): Handle
9845
        Octeon.
9846
        * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
9847
        Handle Octeon.
9848
        * config/mips/mips.md (cpu): Add octeon.
9849
        (type): Add pop attribute value.
9850
        (popcount2): New pattern.
9851
        * doc/invoke.texi (-march=@var{arch}): Add octeon.
9852
 
9853
2008-08-24  Jan Hubicka  
9854
 
9855
        * doc/invoke.texi (-fipa-cp-clone): New option.
9856
        (-fipa-cp): Update docs.
9857
        (--param ipcp-unit-growth):New.
9858
        * ipa-cp.c: Include fibheap.h, params.h
9859
        (ipcp_initialize_node_lattices): When not cloning, all externally
9860
        visible functions are bottom.
9861
        (ipcp_need_redirect_p): Accept clones.
9862
        (ipcp_insert_stage): Use cost driven heuristics.
9863
        (max_count, dead_nodes): New static vars.
9864
        (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
9865
        ipcp_const_param_count): New functions.
9866
        * common.opt (ipa-cp-clone): New command line option.
9867
        * params.def (ipcp-unit-growth): New.
9868
 
9869
2008-08-24  Jan Hubicka  
9870
 
9871
        * tree-inline.c (tree_function_versioning): Look harder
9872
        for referenced vars.
9873
 
9874
2008-08-24  Razya Ladelsky  
9875
 
9876
        PR tree-optimization/37185
9877
        * matrix-reorg.c (transform_access_sites): Update changed stmt.
9878
 
9879
2008-08-23  Jan Hubicka  
9880
 
9881
        * ipa-cp.c (ipcp_analyze_node): New function.
9882
        (ipcp_update_cloned_node): Use it.
9883
        (ipcp_init_stage): Likewise.
9884
        * ipa-inline.c (function_insertion_hook_holder): New static var.
9885
        (analyze_function): Break out from ....
9886
        (inline_generate_summary): Here; register insertion hook.
9887
        (cgraph_decide_inlining): Remove hook.
9888
        (add_new_function): New function.
9889
 
9890
2008-08-23  Jan Hubicka  
9891
 
9892
        * opts.c (decode_options): Revert accidental change enabling ipa-cp.
9893
 
9894
2008-08-23  Jan Hubicka  
9895
 
9896
        * ipa-cp.c (constant_val_insert): Remove.
9897
        (ipcp_propagate_one_const): Remove.
9898
        (ipcp_create_replace_map): Always insert replacements to the map.
9899
        (ipcp_insert_stage): Do not try to insert statements by hand.
9900
        * tree-inline.c (insert_init_stmt): Break out from ...
9901
        (setup_one_parameter): ... here; allow NULL BB pointer.
9902
        (tree_function_versioning): Use setup_one_parameter to process
9903
        replacement map.
9904
 
9905
2008-08-23  Jan Hubicka  
9906
 
9907
        * tree.c (decl_address_ip_invariant_p): New function.
9908
        * tree.h (decl_address_ip_invariant_p): Declare.
9909
        * gimple.c (strip_invariant_refs): Break out from ...
9910
        (is_gimple_invariant_address): ... here
9911
        (is_gimple_ip_invariant_address): New function.
9912
        (is_gimple_ip_invariant): New function.
9913
        * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
9914
        Declare.
9915
 
9916
        * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
9917
        (ipcp_lat_is_insertable): All constants are insertable.
9918
        (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
9919
        IPA_CONST_VALUE_REF.
9920
        (ipcp_initialize_node_lattices): Propagate all types of operands.
9921
        (build_const_val): Do not handle IPA_CONST_VALUE_REF.
9922
        (ipcp_create_replace_map): Reformat.
9923
        (ipcp_need_redirect_p): Simplify.
9924
        (ipcp_insert_stage): Check that argument is used before clonning.
9925
        * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
9926
        IPA_CONST_REF.
9927
        (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
9928
        (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
9929
        (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
9930
        * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
9931
        (jump_func_type): Remove IPA_CONST_VALUE_REF.
9932
        * tree-inline.c (tree_function_versioning): Add variables referenced
9933
        by replacing trees.
9934
 
9935
2008-08-23  Jan Hubicka  
9936
 
9937
        PR target/37094
9938
        * i386.c (standard_80387_constant_p): Use optimize_size.
9939
 
9940
2008-08-23  Ira Rosen  
9941
 
9942
        PR tree-optimization/37161
9943
        * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
9944
        * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
9945
        (vect_determine_vectorization_factor): Move the scalar type
9946
        retrieval to vect_get_smallest_scalar_type.
9947
        (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
9948
        scalar type. Remove redundant computation.
9949
        * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
9950
        (vect_get_slp_defs): Take the type of RHS into account if
9951
        necessary by calling vect_get_smallest_scalar_type. Call
9952
        vect_get_constant_vectors with additional argument.
9953
 
9954
2008-08-23  Manuel Lopez-Ibanez  
9955
 
9956
        PR 35648
9957
        * doc/invoke.texi (Wwrite-strings): Clarify description.
9958
 
9959
2008-08-23  Ira Rosen  
9960
 
9961
        PR tree-optimization/37174
9962
        * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
9963
        def stmt is a part of the loop before accessing its stmt_vec_info.
9964
 
9965
2008-08-22  Anatoly Sokolov  
9966
 
9967
        PR target/11259
9968
        * config/avr/avr.md (UNSPEC_SWAP): New constants.
9969
        (*swap): New insn pattern.
9970
        (*ashlqi3): Rename from ashlqi3 insn pattern.
9971
        (ashlqi3): New expanders.
9972
        (*lshrqi3): Rename from lshrqi3 insn pattern.
9973
        (lshrqi3): New expanders.
9974
        (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
9975
        lshrqi3_const5, lshrqi3_const6): New splitters.
9976
        (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
9977
        lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
9978
        peephole2 patterns.
9979
 
9980
2008-08-22  Richard Guenther  
9981
 
9982
        PR tree-optimization/37078
9983
        * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
9984
        [+INF, +INF] ranges.
9985
 
9986
2008-08-22  Richard Guenther  
9987
 
9988
        PR tree-optimization/37143
9989
        * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
9990
        a conversion statement instead of a copy.
9991
 
9992
2008-08-22  Uros Bizjak  
9993
 
9994
        PR target/37184
9995
        * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
9996
        CCCmode, CCOmode and CCSmode destination modes.
9997
 
9998
        PR target/37191
9999
        * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
10000
        from different units in a single alternative.
10001
        (*vec_extractv2sf_1): Ditto.
10002
        (*vec_extractv2si_0): Ditto.
10003
        (*vec_extractv2si_1): Ditto.
10004
        * config/i386/sse.md (sse2_storehpd): Ditto.
10005
        (sse2_storelpd): Ditto.
10006
        (sse2_loadhpd): Ditto.
10007
        (sse2_loadlpd): Ditto.
10008
 
10009
        PR target/37197
10010
        * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
10011
        (popcountsi2): Ditto.
10012
        (clzdi2_abm): Ditto.
10013
        (popcountdi2): Ditto.
10014
        (clzhi2_abm): Ditto.
10015
        (popcounthi2): Ditto.
10016
 
10017
2008-08-22  Richard Guenther  
10018
 
10019
        PR middle-end/36548
10020
        PR middle-end/37125
10021
        * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
10022
        if the multiplication does not overflow.
10023
 
10024
2008-08-21  Nathan Sidwell  
10025
 
10026
        * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
10027
 
10028
2008-08-21  Richard Henderson  
10029
 
10030
        * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
10031
        spurrious comma from test.
10032
        * configure: Rebuild.
10033
 
10034
2008-08-21  Manuel Lopez-Ibanez  
10035
 
10036
        PR 30457
10037
        * builtins.c (fold_builtin_next_arg): Add warning about undefined
10038
        behaviour.
10039
 
10040
2008-08-21  Aldy Hernandez  
10041
 
10042
        * c-tree.h (grokfield): New argument.
10043
        * c-decl.c (grokfield): Handle new location argument.
10044
        * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
10045
 
10046
2008-08-21  Richard Guenther  
10047
 
10048
        * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
10049
 
10050
2008-08-21  Jan Hubicka  
10051
 
10052
        * cgraph.c (first_cgraph_function_insertion_hook): New variable.
10053
        (cgraph_add_function_insertion_hook,
10054
        cgraph_remove_function_insertion_hook,
10055
        cgraph_call_function_insertion_hooks): New functions.
10056
        * cgraph.h (cgraph_add_function_insertion_hook,
10057
        cgraph_remove_function_insertion_hook,
10058
        cgraph_call_function_insertion_hooks): Declare.
10059
        * ipa-reference.c (function_insertion_hook_holder): New variable.
10060
        (check_operand, look_for_address_of): When checking late, do not care
10061
        about module bitmaps.
10062
        (add_new_function): New function.
10063
        (generate_summary): Register hooks; zero module bitmaps.
10064
        (propagate): Unregister hooks.
10065
        * ipa-pure-const.c (function_insertion_hook_holder): New variable.
10066
        (add_new_function): New function.
10067
        (generate_summary): Register hook.
10068
        (propagate): Remove hook.
10069
 
10070
        * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
10071
 
10072
        * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
10073
        * ipa-cp.c (ipcp_update_cloned_node): New function.
10074
        (build_const_val): Handle functions correctly; bring type logic
10075
        into sync with tree-inline.c
10076
        (ipcp_init_stage):  Take care of computing stuff needed by
10077
        indirect inlining; update clones.
10078
        (ipcp_generate_summary): Break out of ipcp_driver.
10079
        (ipcp_driver): Do only execution and transformation.
10080
        (pass_ipa_cp): Make IPA_PASS.
10081
        * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
10082
        offset to address.
10083
        * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
10084
        ipcp, some info is already available.
10085
        * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
10086
        * tree-inline.c (remap_ssa_name): Unshare expression.
10087
 
10088
2008-08-21  Richard Guenther  
10089
 
10090
        * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10091
        a PHI ask VN if it is already available.
10092
        * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10093
        * tree-ssa-sccvn.c (vn_phi_lookup): Export.
10094
 
10095
2008-08-21  Richard Guenther  
10096
 
10097
        PR middle-end/36817
10098
        * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
10099
        makes sure to produce a result of the correct type.
10100
 
10101
2008-08-21  Jan Hubicka  
10102
        Backport from LTO branch:
10103
 
10104
        2008-05-05  Kenneth Zadeck  
10105
                    Jan Hubicka  
10106
 
10107
        * ipa-pure-const.c
10108
        (init_state, finish_state, set_function_state, generate_summary):
10109
        New functions.
10110
        (scan_stmt): Renamed from scan_function.  Changed to keep state in
10111
        local static vars rather than cgraph aux field.
10112
        (propagate): Renamed from static_execute. Changed to keep state in
10113
        local static vars rather than cgraph aux field.
10114
        (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
10115
        * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
10116
 
10117
        2008-07-15  Kenneth Zadeck  
10118
 
10119
        * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
10120
        * ipa-reference.c (init_function_info, generate_summary,
10121
        propagate): New functions.
10122
        (analyze_function):  Call init_function_info.
10123
        (static_execute): Stripped into generate_summary and propagate.
10124
        (pass_ipa_reference): Made into ipa_opt_pass.
10125
 
10126
2008-08-21  Richard Guenther  
10127
 
10128
        PR tree-optimization/37181
10129
        * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
10130
        folding result.
10131
        (extract_range_from_unary_expr): Likewise.
10132
 
10133
2008-08-21  Manuel Lopez-Ibanez  
10134
 
10135
        * diagnostic.c (pedwarn_at): Rename as pedwarn.
10136
        (pedwarn): Delete.
10137
        * toplev.h (pedwarn_at): Likewise.
10138
        * builtins.c: Update all calls to pedwarn.
10139
        * c-lex.c: Likewise.
10140
        * toplev.c: Likewise.
10141
        * c-tree.h: Likewise.
10142
        * c-decl.c: Likewise.
10143
        * c-errors.c: Likewise.
10144
        * c-typeck.c: Likewise.
10145
        * c-common.c: Likewise.
10146
        * c-parser.c: Likewise.
10147
 
10148
2008-08-20  Joseph Myers  
10149
 
10150
        PR target/31070
10151
        * config/sparc/sparc.c (function_arg_slotno): Handle structure
10152
        with MODE_VECTOR_INT mode.
10153
 
10154
2008-08-21  Manuel Lopez-Ibanez  
10155
 
10156
        PR middle-end/179
10157
        * tree-ssa.c (warn_uninit): Do not warn for variables that can be
10158
        initialized outside the current module.
10159
        (warn_uninitialized_var): Ignore left-hand side when walking the
10160
        trees. Ignore address expressions. Examine VUSE operands in gimple
10161
        statements with a variable declaration on the right-hand side.
10162
 
10163
2008-08-20  Richard Sandiford  
10164
 
10165
        PR bootstrap/37155
10166
        * rtlanal.c (subreg_offset_representable_p): Revert last change.
10167
 
10168
2008-08-20  Manuel Lopez-Ibanez  
10169
 
10170
        PR 35701
10171
        * c-common.c (conversion_warning): Do not warn if applying bit-and
10172
        operator to unsigned constant that fits in the target type.
10173
 
10174
2008-08-20  Manuel Lopez-Ibanez  
10175
 
10176
        PR c++/35602
10177
        * c-common.c (conversion_warning): Do not warn for artificial
10178
        expressions.
10179
 
10180
2008-08-20  Richard Guenther  
10181
 
10182
        * tree-vrp.c (op_with_constant_singleton_value_range): New function.
10183
        (extract_range_from_binary_expr): Fall back to constant propagation.
10184
        (extract_range_from_unary_expr): Likewise.
10185
 
10186
2008-08-20  Richard Guenther  
10187
 
10188
        * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
10189
        with TREE_THIS_VOLATILE on shared nodes.
10190
        (fold_stmt_r): Likewise.
10191
 
10192
2008-08-20  Jakub Jelinek  
10193
 
10194
        PR c/37171
10195
        * c-parser.c (c_parser_attributes): For keywords use canonical
10196
        spelling for attr_name.
10197
 
10198
2008-08-20  Manuel Lopez-Ibanez  
10199
 
10200
        * value-prof.c (check_counter): Revert wrong call to error.
10201
 
10202
2008-08-20  Manuel Lopez-Ibanez  
10203
 
10204
        * profile.c: Update calls to inform.
10205
        * value-prof.c: Update calls to inform.
10206
 
10207
2008-08-20  Manuel Lopez-Ibanez  
10208
 
10209
        * diagnostic.c (inform): Add an explicit location_t parameter.
10210
        * toplev.h (inform): Update declaration.
10211
        * builtins.c: Update all calls to inform.
10212
        * c-common.c: Likewise.
10213
        * c-decl.c: Likewise.
10214
        * c-opts.c: Likewise.
10215
        * c-pch.c: Likewise.
10216
        * c-pragma.c: Likewise.
10217
        * c-typeck.c: Likewise.
10218
        * coverage.c: Likewise.
10219
        * opts.c: Likewise.
10220
        * toplev.c: Likewise.
10221
        * tree-cfg.c: Likewise.
10222
        * tree-ssa.c: Likewise.
10223
 
10224
2008-08-20  H.J. Lu  
10225
 
10226
        PR target/37169
10227
        * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
10228
        V2DI mode, for SSE4.1, use movq instead of vector set if the
10229
        second element is zero and inter-unit moves are OK.
10230
 
10231
2008-08-20  Richard Guenther  
10232
 
10233
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
10234
        properly handle conversion/copy chains after tuplification.
10235
 
10236
2008-08-20  Richard Guenther  
10237
 
10238
        * passes.c (init_optimization_passes): Move the second
10239
        forwprop pass before alias computation.  Remove the second
10240
        DCE pass.  Remove the first dominator and phi copy/const
10241
        prop passes.
10242
 
10243
2008-08-20  Nick Clifton  
10244
 
10245
        * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
10246
        support of this feature.  Do not assume that a sufficiently new
10247
        assembler will support the feature regardless of the target type.
10248
        (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10249
        * configure: Regenerate.
10250
 
10251
2008-08-20  Richard Guenther  
10252
 
10253
        * tree-vrp.c (found_in_subgraph): Remove.
10254
        (live): New global static.
10255
        (live_on_edge): New function.
10256
        (blocks_visited): Remove.
10257
        (register_edge_assert_for_2): Use live_on_edge.
10258
        (find_conditional_asserts): Remove code dealing with
10259
        found_in_subgraph.  Do not walk the CFG.
10260
        (find_switch_asserts): Likewise.
10261
        (find_assert_locations_1): Renamed from find_assert_locations.
10262
        Move finding assert locations for conditional and switch
10263
        statements first.  Update live bitmap.  Do not walk the CFG.
10264
        (find_assert_locations): New function.
10265
        (insert_range_assertions): Remove entry of CFG walk.
10266
        Adjust call to find_assert_locations.
10267
        * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
10268
        that only can appear because of fake exit edges but assert we
10269
        never try to insert on those.
10270
        (fini_pre): Do not remove fake exit edges here...
10271
        (execute_pre): ...but here, before committing edge inserts.
10272
 
10273
2008-08-19  Richard Guenther  
10274
 
10275
        * passes.c (init_optimization_passes): Exchange store-ccp
10276
        with a ccp pass.
10277
 
10278
2008-08-19  Rafael Espíndola  
10279
 
10280
        * varasm.c (weak_decls): Move earlier in the file.
10281
        (assemble_external): Add weak decls to the weak_decls list.
10282
        (declare_weak): Don't add decls to the weak_decls list.
10283
 
10284
2008-08-19  H.J. Lu  
10285
 
10286
        PR target/37157
10287
        * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
10288
        before (sse2_shufpd_).
10289
 
10290
2008-08-19  Jakub Jelinek  
10291
 
10292
        PR debug/37156
10293
        * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
10294
        * tree.c (block_nonartificial_location): Likewise.
10295
 
10296
2008-08-19  Richard Guenther  
10297
 
10298
        PR tree-optimization/35972
10299
        PR tree-optimization/23094
10300
        * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
10301
        parameter.
10302
        * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
10303
        handle MISALIGNED_INDIRECT_REF.
10304
        (get_ref_from_reference_ops): New helper.
10305
        (vn_reference_lookup_pieces): Walk the use-def chain using the
10306
        alias-oracle if requested.
10307
        * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
10308
        walking the use-def chain.
10309
        (compute_avail): But not here.
10310
        (create_component_ref_by_pieces_1): Properly handle
10311
        MISALIGNED_INDIRECT_REF.
10312
        (do_regular_insertion): Handle fully redundant
10313
        expressions after PHI-translation also for SSA_NAME values, not
10314
        only constants.  Correctly use edoubleprime for that.
10315
 
10316
2008-08-19  Ira Rosen  
10317
 
10318
        * tree-vectorizer.c (supportable_widening_operation): Support
10319
        multi-step conversion, return the number of steps in such conversion
10320
        and the required intermediate types.
10321
        (supportable_narrowing_operation): Likewise.
10322
        * tree-vectorizer.h (vect_pow2): New function.
10323
        (supportable_widening_operation): Change argument types.
10324
        (supportable_narrowing_operation): Likewise.
10325
        (vectorizable_type_promotion): Add an argument.
10326
        (vectorizable_type_demotion): Likewise.
10327
        * tree-vect-analyze.c (vect_analyze_operations): Call
10328
        vectorizable_type_promotion and vectorizable_type_demotion with
10329
        additional argument.
10330
        (vect_get_and_check_slp_defs): Detect patterns.
10331
        (vect_build_slp_tree): Add an argument, don't fail in case of multiple
10332
        types.
10333
        (vect_analyze_slp_instance): Don't fail in case of multiple types.
10334
        Call vect_build_slp_tree with correct arguments. Calculate unrolling
10335
        factor according to the smallest type in the loop.
10336
        (vect_detect_hybrid_slp_stmts): Include statements from patterns.
10337
        * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
10338
        supportable_widening_operation with correct arguments.
10339
        * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
10340
        operands lists according to the number of vector statements in left
10341
        or right node, if exists.
10342
        (vect_gen_widened_results_half): Remove unused argument.
10343
        (vectorizable_conversion): Call supportable_widening_operation,
10344
        supportable_narrowing_operation, and vect_gen_widened_results_half
10345
        with correct arguments.
10346
        (vectorizable_assignment): Change documentation, support multiple
10347
        types in SLP.
10348
        (vectorizable_operation): Likewise.
10349
        (vect_get_loop_based_defs): New function.
10350
        (vect_create_vectorized_demotion_stmts): Likewise.
10351
        (vectorizable_type_demotion): Support loop-aware SLP and general
10352
        multi-step conversion. Call vect_get_loop_based_defs and
10353
        vect_create_vectorized_demotion_stmts for transformation.
10354
        (vect_create_vectorized_promotion_stmts): New function.
10355
        (vectorizable_type_promotion): Support loop-aware SLP and general
10356
        multi-step conversion. Call vect_create_vectorized_promotion_stmts
10357
        for transformation.
10358
        (vectorizable_store): Change documentation, support multiple
10359
        types in SLP.
10360
        (vectorizable_load): Likewise.
10361
        (vect_transform_stmt): Pass SLP_NODE to
10362
        vectorizable_type_promotion and vectorizable_type_demotion.
10363
        (vect_schedule_slp_instance): Move here the calculation of number
10364
        of vectorized statements for each node from...
10365
        (vect_schedule_slp): ... here.
10366
        (vect_transform_loop): Call vect_schedule_slp without the last
10367
        argument.
10368
 
10369
2008-08-19  Dorit Nuzman  
10370
 
10371
        PR bootstrap/37152
10372
        * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
10373
        to == in assert statement.
10374
        (vectorizable_reduction): Fix typo.
10375
 
10376
2008-08-18  H.J. Lu  
10377
 
10378
        PR bootstrap/37153
10379
        * value-prof.c (check_counter): Dereference pointer to overall
10380
        count when printing it.
10381
 
10382
2008-08-18  H.J. Lu  
10383
 
10384
        * profile.h: Really add it.
10385
 
10386
2008-08-18  H.J. Lu  
10387
 
10388
        * mcf.c: Really add it.
10389
 
10390
2008-08-18  Paul Yuan  
10391
            Vinodha Ramasamy  
10392
 
10393
        * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
10394
        count_scale.
10395
        * value-prof.c (check_counter): Fix the counter if
10396
        flag_profile_correction is true.
10397
        (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
10398
        tree_mod_subtract_transform):
10399
        Follow check_counter parameter change.
10400
        * common.opt (fprofile-correction): New option.
10401
        * mcf.c: New file.
10402
        * profile.h: Likewise.
10403
        * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
10404
        (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
10405
        is_inconsistent, set_bb_counts, read_profile_edge_counts): New
10406
        functions.
10407
        (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
10408
        flag_profile_correction is set.
10409
 
10410
2008-08-18  Richard Sandiford  
10411
 
10412
        * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
10413
 
10414
2008-08-18  Tomas Bily  
10415
 
10416
        * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
10417
        * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
10418
        CONVERT_EXPR_P.
10419
        * tree-data-ref.c (split_constant_offset_1): Likewise.
10420
        * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
10421
        * tree-sra.c (sra_walk_expr): Likewise.
10422
        * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
10423
        * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
10424
        * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
10425
        * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
10426
        Likewise.
10427
        * gimple.c (gimple_assign_unary_nop_p): Likewise.
10428
        * tree-vect-transform.c (vectorizable_type_demotion)
10429
        (vectorizable_type_promotion): Likewise.
10430
        * tree-inline.c (expand_call_inline):
10431
        * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
10432
        (forward_propagate_addr_expr_1, forward_propagate_comparison)
10433
        (tree_ssa_forward_propagate_single_use_vars): Likewise.
10434
        * expr.c (expand_expr_real_1): Likewise.
10435
        * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
10436
        (gimple_assign_unary_useless_conversion_p): Likewise.
10437
        * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10438
        * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
10439
        * fold-const.c (fold_unary): Likewise.
10440
        * tree.h (CONVERT_EXPR_P): Likewise.
10441
        * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
10442
        * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
10443
        * tree-vrp.c:
10444
        (register_edge_assert_for_2, extract_range_from_unary_expr)
10445
        (register_edge_assert_for_1): Likewise.
10446
 
10447
2008-08-18  Manuel Lopez-Ibanez  
10448
 
10449
        * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
10450
        dconst_third_ptr, dconst_sqrt2_ptr): Declare.
10451
        (enum real_value_const): Delete.
10452
        (get_real_const): Delete.
10453
        * real.c (get_real_const): Delete.
10454
        (dconst_e_ptr): Define.
10455
        (dconst_third_ptr): Define.
10456
        (dconst_sqrt2_ptr): Define.
10457
        * builtins.c: Update all callers.
10458
 
10459
2008-08-18  Richard Guenther  
10460
 
10461
        * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
10462
        statement iterator after statement removal.
10463
 
10464
2008-08-18  Andreas Tobler  
10465
 
10466
        * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
10467
        (detect_processor_freebsd): Likewise.
10468
        (host_detect_local_cpu): Call newly added functions for FreeBSD.
10469
 
10470
2008-08-18  Richard Guenther  
10471
 
10472
        * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
10473
        and loads have the correct types.
10474
 
10475
2008-08-18  Manuel Lopez-Ibanez  
10476
 
10477
        PR cpp/7263
10478
        * c-opts.c (cpp_opts): Remove static.
10479
        * c-parser.c (cpp_opts): Declare it extern.
10480
        (disable_extension_diagnostics): Handle cpp options.
10481
        (enable_extension_diagnostics): Likewise.
10482
 
10483
2008-08-18  Manuel Lopez-Ibanez  
10484
 
10485
        * diagnostics.c (permerror_at): Rename as permerror.
10486
        (permerror): Delete.
10487
        * toplev.h: Likewise.
10488
 
10489
2008-08-18  Richard Guenther  
10490
 
10491
        * passes.c (init_optimization_passes): Remove cleanup_cfg1,
10492
        sdse1 and addressables2 passes.  Replace dce1 with cddce1.
10493
        Move call_cdce before build_alias.  Move copyrename2,
10494
        cunrolli and ccp2 beafore build_alias.  Re-add addressable2
10495
        right after final inlining.
10496
        * tree-cfg.c (build_gimple_cfg): Do not dump function here.
10497
        (pass_build_cfg): But instead via TODO_dump_func.
10498
 
10499
2008-08-18  Richard Guenther  
10500
 
10501
        * tree-sra.c (generate_element_init_1): Deal with NULL constructor
10502
        element index.
10503
        (scalarize_init): If we failed to generate some initializers
10504
        do not generate zeros for not instantiated members.  Instead
10505
        rely on the copy out.
10506
        * tree-ssa-operands.c (get_addr_dereference_operands): Warn
10507
        about missing flow-sensitive alias info only if we have
10508
        aliases computed.
10509
 
10510
2008-08-17  Nick Clifton  
10511
 
10512
        * doc/extend.texi (Function Attributes): Fix typo in description
10513
        if hot function attribute.
10514
 
10515
2008-08-17  Daniel Jacobowitz  
10516
            Richard Sandiford  
10517
 
10518
        * doc/install.texi (--with-mips-plt): Document.
10519
        * doc/invoke.texi (-mplt, -mno-plt): Document.
10520
        * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
10521
        and handle ${with_mips_plt}.
10522
        * config/mips/mips.opt (mplt): New option.
10523
        * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
10524
        (TARGET_ABICALLS_PIC2): Likewise.
10525
        (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
10526
        (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
10527
        (ASM_SPEC): Use !mabi=* instead of !mabi*.
10528
        (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
10529
        to decide whether to output ".option picX" directives.
10530
        * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
10531
        Pass -call_nonpic rather than -KPIC for -mplt.
10532
        (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
10533
        on the command line.  Also remove it when -mabi=64 is used without
10534
        -msym32.
10535
        * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
10536
        * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
10537
        TARGET_ABICALLS_PIC0.
10538
        (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
10539
        TARGET_ABICALLS.
10540
        (mips16_build_function_stub): Only output ".option pic" directives
10541
        and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
10542
        (mips16_build_call_stub): Fix comment and remove redundant
10543
        ".set at"/"set .noat" directives.
10544
        (mips_function_rodata_section): Use the default behaviour for
10545
        TARGET_ABSOLUTE_ABICALLS.
10546
        (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
10547
        (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
10548
        (mips_restore_gp): Do nothing if the current function doesn't use
10549
        a global pointer.
10550
        (mips_expand_prologue): Only save $gp if the current function uses it.
10551
        Use a normal move for TARGET_ABICALLS_PIC0.
10552
        (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
10553
 
10554
2008-08-17  Richard Sandiford  
10555
 
10556
        * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
10557
        of function when handling GLOBAL_POINTER_REGNUM.
10558
 
10559
2008-08-16  Eric Botcazou  
10560
 
10561
        PR ada/20548
10562
        * common.opt (-fstack-check): Do not declare the variable here.
10563
        (-fstack-check=): New option variant.
10564
        * doc/invoke.texi (Code Gen Options): Document it.
10565
        * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
10566
        (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
10567
        (STACK_CHECK_STATIC_BUILTIN): New macro.
10568
        * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
10569
        * opts.c: Include expr.h.
10570
        (common_handle_option) : New case.
10571
        : Likewise.
10572
        * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
10573
        consistently in the test for variable-sized types.  Adjust for
10574
        new behaviour of flag_stack_check.
10575
        * explow.c: Include except.h.
10576
        (allocate_dynamic_stack_space): Do not take into account
10577
        STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
10578
        * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
10579
        for variable-sized parameters.  Treat all parameters whose size is
10580
        greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
10581
        stack checking is enabled.
10582
        * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
10583
        size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
10584
        if generic stack checking is enabled.
10585
        (expand_function_end): Adjust for new behaviour of flag_stack_check.
10586
        * reload1.c (reload): Likewise.
10587
        * stmt.c (expand_decl): Assert that all automatic variables have
10588
        fixed size at this point and remove dead code.
10589
        * flags.h (stack_check_type): New enumeration type.
10590
        (flag_stack_check): Declare.
10591
        * toplev.c (flag_stack_check): New global variable.
10592
        * Makefile.in (opts.o): Add dependency on EXPR_H.
10593
        (explow.o): Add dependency on except.h.
10594
 
10595
2008-08-16  Andy Hutchinson  
10596
 
10597
        * config/avr/avr.c (avr_override_options): Reduce value of
10598
        PARAM_INLINE_CALL_COST.
10599
 
10600
2008-08-15  Eric Botcazou  
10601
 
10602
        * expr.c (expand_expr_real_1) : When converting
10603
        to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
10604
        lieu of TYPE_MODE (type) throughout.
10605
 
10606
2008-08-15  Joseph Myers  
10607
 
10608
        * config/arm/arm.c (add_minipool_backward_ref): Check for
10609
        8-byte-aligned entries in second case of forcing insertion after a
10610
        particular entry.  Change third case to avoid inserting
10611
        non-8-byte-aligned entries before 8-byte-aligned ones.
10612
 
10613
2008-08-15  Richard Guenther  
10614
 
10615
        * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
10616
        strip components for unknown size accesses.
10617
 
10618
2008-08-15  Wolfgang Gellerich  
10619
 
10620
        * config/s390/2097.md New file.
10621
        * config/s390/s390.md ("z10prop" attribute): Define none,
10622
        z10_super, z10_super_E1, z10_super_A1, z10_super_c,
10623
        z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
10624
        z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
10625
        possible values and apply them to insns as appropriate.
10626
        ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
10627
        ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
10628
        fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
10629
        fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
10630
        ("bfp" mode attribute): Removed.  Every occurence replaced
10631
        with .
10632
        * config/s390/s390.c (struct "z10_cost"): Updated entries.
10633
        * config/s390/2084.md (insn_reservation "x_itof"): Updated
10634
        type attribute.
10635
 
10636
2008-08-14  Manuel Lopez-Ibanez  
10637
 
10638
        PR c/28152
10639
        * c-parser.c (c_lex_one_token): Do not store the canonical spelling
10640
        for keywords.
10641
 
10642
2008-08-14  Dorit Nuzman  
10643
 
10644
        * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
10645
        additional argument. Support reduction when duplication is needed due
10646
        to data-types of different sizes in the loop.
10647
        (get_initial_def_for_induction): Fix printout.
10648
        (vect_get_vec_def_for_stmt_copy): Support case where the
10649
        vec_stmt_for_operand is a phi node.
10650
        (vectorizable_reduction): Support reduction when duplication is needed
10651
        due to data-types of different sizes in the loop.
10652
        (vectorizable_call): Remove restriction to not vectorize in case we
10653
        have data-types of different sizes in the loop.
10654
        (vectorizable_conversion): Likewise.
10655
        (vectorizable_operation): Likewise.
10656
        (vectorizable_type_demotion): Likewise.
10657
        (vectorizable_type_promotion): Likewise.
10658
        (vectorizable_induction): Add restriction to not vectorize in case
10659
        we have data-types of different sizes in the loop.
10660
 
10661
2008-08-14  Christophe Saout  
10662
            Uros Bizjak  
10663
 
10664
        PR target/37101
10665
        * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
10666
        (*vec_concatv2di_rex64_sse4_1): Ditto.
10667
        (*vec_concatv2di_rex64_sse): Ditto.
10668
 
10669
2008-08-14  Jakub Jelinek  
10670
 
10671
        PR middle-end/37103
10672
        * fold-const.c (fold_widened_comparison): Do not allow
10673
        sign changes that change the result even if shorter type
10674
        is wider than arg1_unw's type.
10675
 
10676
2008-08-13  Kazu Hirata  
10677
 
10678
        * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
10679
        Skip if the multilib testing specifies -march that does not
10680
        agree with the one specified in the testcase.
10681
 
10682
2008-08-13  Joseph Myers  
10683
 
10684
        * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
10685
        zero extend SImode values being converted to TFmode before passing
10686
        to libcalls.
10687
 
10688
2008-08-13  Ulrich Weigand  
10689
 
10690
        * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
10691
        __PPU__ when targeting the Cell/B.E. PPU processor.
10692
 
10693
2008-08-13  Eric Botcazou  
10694
 
10695
        * gimple.h (gimple_call_set_chain): Accept SSA variables.
10696
        * tree-ssa-pre.c (create_component_ref_by_pieces_1) :
10697
        Rematerialize the static chain, if any.
10698
        * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
10699
        static chain.
10700
 
10701
2008-08-13  H.J. Lu  
10702
 
10703
        * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
10704
        (new_loc_descr): Likewise.
10705
        (add_loc_descr): Likewise.
10706
        (size_of_loc_descr): Likewise.
10707
        (size_of_locs): Likewise.
10708
        (output_loc_operands): Likewise.
10709
        (output_loc_sequence): Likewise.
10710
        (new_reg_loc_descr): New.
10711
        (build_cfa_loc): Use it.
10712
        (build_cfa_aligned_loc): Likewise.
10713
        (one_reg_loc_descriptor): Likewise.
10714
        (based_loc_descr): Likewise.
10715
 
10716
2008-08-13  Manuel Lopez-Ibanez  
10717
 
10718
        PR 30551
10719
        * doc/invoke.texi (Wmain): Update.
10720
        * c-decl.c (start_decl): warn_main is only 0 or 1.
10721
        (start_function): Likewise. Fix formatting.
10722
        (finish_function): Delete redundant warning.
10723
        * c.opt (Wmain): Add Var(warn_main) and Init(-1).
10724
        * c-opts (c_common_handle_option): -Wall only has effect if
10725
        warn_main is uninitialized. OPT_Wmain is automatically
10726
        handled. -pedantic also enables Wmain.
10727
        (c_common_post_options): Handle all logic for Wmain here.
10728
        * c-common.c (warn_main): Delete.
10729
        (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
10730
        * c-common.h (warn_main): Delete.
10731
 
10732
2008-08-13  H.J. Lu  
10733
 
10734
        PR middle-end/36701
10735
        * expr.c (emit_group_store): Allocate stack temp with the
10736
        largest alignment when copying from register to stack.
10737
 
10738
2008-08-13  Richard Guenther  
10739
 
10740
        * tree.h (maybe_fold_offset_to_address): Declare.
10741
        * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
10742
        (ccp_fold): Handle pointer conversions the same as fold_stmt.
10743
        Likewise for POINTER_PLUS_EXPR.
10744
        (maybe_fold_offset_to_reference): Enable disabled code.
10745
        (maybe_fold_offset_to_address): New function.
10746
        (fold_stmt_r): Use it.
10747
        (fold_gimple_assign): Likewise.
10748
        * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
10749
        (gimplify_expr): Likewise.
10750
 
10751
2008-08-13  Manuel Lopez-Ibanez  
10752
 
10753
        * toplev.h (pedwarn_at): Fix declaration.
10754
 
10755
2008-08-13  Joseph Myers  
10756
 
10757
        * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
10758
        LINK_SPEC): Use %R in -Y P argument.
10759
 
10760
2008-08-13  Manuel Lopez-Ibanez  
10761
 
10762
        PR c/15236
10763
        * diagnostic.c (pedwarn_at): New.
10764
        * toplev.h (pedwarn_at): Declare.
10765
        * c-tree.h (build_enumerator): Update declaration.
10766
        * c-decl.c (finish_enum): Update comment.
10767
        (build_enumerator): Take a location parameter. Give a pedwarn but do
10768
        not perform any conversion.
10769
        * c-parser.c (c_parser_enum_specifier): Set correct location for
10770
        enumerator.
10771
 
10772
2008-08-13  Manuel Lopez-Ibanez  
10773
 
10774
        PR 35635
10775
        * c-common.c (conversion_warning): Use a switch. Ignore boolean
10776
        expressions except for conversions to signed:1 bitfields. Handle
10777
        COND_EXPR with constant operands.
10778
 
10779
2008-08-13  Richard Guenther  
10780
 
10781
        PR tree-optimization/15255
10782
        * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
10783
        (struct oecount_s): New struct and VEC types.
10784
        (cvec): New global.
10785
        (oecount_hash): New function.
10786
        (oecount_eq): Likewise.
10787
        (oecount_cmp): Likewise.
10788
        (zero_one_operation): New function.
10789
        (build_and_add_sum): Likewise.
10790
        (undistribute_ops_list): Perform un-distribution of multiplication
10791
        and division on the chain of summands.
10792
        (should_break_up_subtract): Also break up subtracts for factors.
10793
        (reassociate_bb): Delete dead visited statements.
10794
        Call undistribute_ops_list.  Re-sort and optimize if it did something.
10795
        * passes.c (init_optimization_passes): Move DSE before
10796
        reassociation.
10797
        * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
10798
        PHI nodes.
10799
 
10800
2008-08-12  Janis Johnson  
10801
 
10802
        * doc/invoke.texi (-fipa-pta): Say the option is experimental.
10803
 
10804
        * doc/invoke.texi: Revert unintended checkin.
10805
 
10806
2008-08-12  Nathan Froyd  
10807
 
10808
        PR libgomp/26165
10809
        * gcc.c (include_spec_function): Tweak call to find_a_file.
10810
 
10811
2008-08-12  Jakub Jelinek  
10812
 
10813
        PR middle-end/37014
10814
        * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
10815
        and TRUTH_ORIF_EXPR.
10816
        * dojump.c (do_jump): Likewise.
10817
 
10818
        PR tree-optimization/37084
10819
        * tree-inline.c (copy_bb): Call gimple_regimplify_operands
10820
        if id->regimplify, don't assume stmt is a cast assignment.
10821
 
10822
2008-08-12  Anatoly Sokolov  
10823
 
10824
        * final.c (final_scan_insn): Use app_enable/app_disable functions.
10825
 
10826
2008-08-12  Ulrich Weigand  
10827
 
10828
        PR bootstrap/37097
10829
        * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
10830
        by last change.
10831
 
10832
2008-08-12  Ulrich Weigand  
10833
 
10834
        * defaults.h (TARGET_FLOAT_FORMAT): Remove.
10835
        (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
10836
 
10837
        * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
10838
        * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
10839
        * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
10840
        * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
10841
        * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
10842
 
10843
        * doc/tm.texi (Storage Layout): Remove documentation for
10844
        TARGET_FLOAT_FORMAT.
10845
 
10846
        * simplify-rtx.c (simplify_binary_operation_1): Replace
10847
        TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
10848
 
10849
2008-08-12  Ulrich Weigand  
10850
 
10851
        * real.h (struct real_format): New member has_sign_dependent_rounding.
10852
        * real.c (ieee_single_format, mips_single_format, motorola_single_format,
10853
        spu_single_format, ieee_double_format, mips_double_format,
10854
        motorola_double_format, ieee_extended_motorola_format,
10855
        ieee_extended_intel_96_format, ieee_extended_intel_128_format,
10856
        ieee_extended_intel_96_round_53_format, ibm_extended_format,
10857
        mips_extended_format, ieee_quad_format, mips_quad_format,
10858
        vax_f_format, vax_d_format, vax_g_format): Initialize it.
10859
        * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
10860
 
10861
        * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
10862
        MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
10863
        * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
10864
        MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
10865
        (ROUND_TOWARDS_ZERO): Likewise.
10866
 
10867
        * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
10868
        (FLOAT_MODE_FORMAT): New macro.
10869
        (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
10870
        (MODE_COMPOSITE_P): ... this new macro.
10871
        (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
10872
        MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
10873
        * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
10874
 
10875
        * flags.h: Include "real.h".
10876
 
10877
        * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
10878
        REAL_MODE_FORMAT_COMPOSITE_P.
10879
        * simplify-rtx.c (simplify_const_binary_operation): Likewise.
10880
 
10881
        * doc/tm.texi (Storage Layout): Remove documentation of
10882
        MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
10883
        MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
10884
        ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
10885
        they only apply to libgcc2.a.
10886
 
10887
2008-08-12  Ulrich Weigand  
10888
 
10889
        * config/spu/float_disf.c: New file.
10890
        * config/spu/float_unsdisf.c: New file.
10891
        * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
10892
        (LIB2FUNCS_EXCLUDE): Define.
10893
 
10894
2008-08-12  Ulrich Weigand  
10895
            Trevor Smigiel  
10896
 
10897
        * real.h (struct real_format): New member round_towards_zero.
10898
        * real.c (round_for_format): Respect fmt->round_towards_zero.
10899
        (ieee_single_format, mips_single_format, motorola_single_format,
10900
        spu_single_format, ieee_double_format, mips_double_format,
10901
        motorola_double_format, ieee_extended_motorola_format,
10902
        ieee_extended_intel_96_format, ieee_extended_intel_128_format,
10903
        ieee_extended_intel_96_round_53_format, ibm_extended_format,
10904
        mips_extended_format, ieee_quad_format, mips_quad_format,
10905
        vax_f_format, vax_d_format, vax_g_format): Initialize it.
10906
        * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
10907
 
10908
        * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
10909
        real_format to choose rounding mode when calling MPFR functions.
10910
        (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
10911
        (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
10912
 
10913
        * real.h (real_to_decimal_for_mode): Add prototype.
10914
        * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
10915
        Respect target rounding mode when generating decimal representation.
10916
        (real_to_decimal): New stub for backwards compatibility.
10917
        * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
10918
        real_to_decimal_for_mode instead of real_to_decimal.
10919
 
10920
        * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
10921
 
10922
2008-08-12  Ulrich Weigand  
10923
            Trevor Smigiel  
10924
 
10925
        * real.c (spu_single_format): New variable.
10926
        * real.h (spu_single_format): Declare.
10927
 
10928
        * config/spu/spu.c (spu_override_options): Install SFmode format.
10929
        (spu_split_immediate): Use integer mode to operate on pieces of
10930
        floating-point values in all cases.
10931
 
10932
        * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
10933
        ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
10934
        ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
10935
 
10936
2008-08-12  Ulrich Weigand  
10937
 
10938
        * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
10939
 
10940
2008-08-12  Ulrich Weigand  
10941
 
10942
        * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
10943
 
10944
2008-08-12  Jakub Jelinek  
10945
 
10946
        PR c++/36688
10947
        * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
10948
        on the VAR_DECL instead of TYPE_READONLY on its type.
10949
 
10950
2008-08-12  Ira Rosen  
10951
 
10952
        * tree-vectorizer.c: Depend on langhooks.h.
10953
        (supportable_widening_operation): Add two arguments. Support double
10954
        type conversions.
10955
        (supportable_narrowing_operation): Likewise.
10956
        * tree-vectorizer.h (supportable_widening_operation): Add two
10957
        arguments.
10958
        (supportable_narrowing_operation): Likewise.
10959
        * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
10960
        supportable_widening_operation with correct arguments.
10961
        * tree-vect-transform.c (vectorizable_conversion): Likewise.
10962
        (vectorizable_type_demotion): Support double type conversions.
10963
        (vectorizable_type_promotion): Likewise.
10964
        * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
10965
 
10966
2008-08-11  Michael Matz  
10967
 
10968
        * i386/i386.c (override_options): Move initialisation from
10969
        flag_schedule_insns_after_reload to here from ...
10970
        (optimization_options): ... here.
10971
 
10972
2008-08-11  Jakub Jelinek  
10973
 
10974
        PR rtl-optimization/36998
10975
        * dwarf2out.c (compute_barrier_args_size_1,
10976
        compute_barrier_args_size): Temporarily remove assertions.
10977
 
10978
2008-08-10  Manuel Lopez-Ibanez  
10979
 
10980
        PR middle-end/20644
10981
        * tree-ssa.c (struct walk_data): Add new flag
10982
        warn_possibly_uninitialized.
10983
        (warn_uninitialized_var): Use it.
10984
        (warn_uninitialized_vars): New.
10985
        (execute_early_warn_uninitialized): Call it.
10986
        (execute_late_warn_uninitialized): Likewise.
10987
 
10988
2008-08-09  Andrew Pinski  
10989
 
10990
        PR middle-end/36238
10991
        * reload1.c (gen_reload): Guard calls to get_secondary_mem
10992
        for memory subregs.
10993
 
10994
2008-08-09  Jan Hubicka  
10995
 
10996
        PR target/37055
10997
        * optabs.c (maybe_emit_unop_insn): Remove produced code if
10998
        expansion failed.
10999
        (expand_fix): Be prepared for expansion to fail.
11000
        (expand_sfix_optab): Remove instructions if expansion failed.
11001
 
11002
2008-08-09  Anatoly Sokolov  
11003
 
11004
        * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
11005
        avr31 architecture.
11006
        * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
11007
        * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
11008
 
11009
2008-08-09  Richard Sandiford  
11010
 
11011
        * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
11012
        mips/t-libgcc-mips16 to tmake_file.
11013
        * config/mips/mips-protos.h (mips_call_type): New enum.
11014
        (mips_pic_base_register, mips_got_load): Declare.
11015
        (mips_restore_gp): Take an rtx argument.
11016
        (mips_use_pic_fn_addr_reg_p): Declare.
11017
        (mips_expand_call): Replace the sibcall_p argument with
11018
        a mips_call_type argument.  Add a lazy_p parameter.
11019
        (mips_split_call): Declare.
11020
        * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
11021
        (MIPS16_PIC_TEMP): Likewise.
11022
        (reg_class): Delete M16_NA_REGS.
11023
        (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
11024
        (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
11025
        (mips_split_hi_p): Declare.
11026
        * config/mips/mips.c (mips_split_hi_p): New array.
11027
        (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
11028
        (mips_got_symbol_type_p): New function.
11029
        (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
11030
        (mips16_stub_function_p): New function.
11031
        (mips16_local_function_p): Likewise.
11032
        (mips_use_pic_fn_addr_reg_p): Likewise.
11033
        (mips_cannot_force_const_mem): Return false for HIGHs.
11034
        Extend CONST_INT and symbolic handling to MIPS16, using
11035
        mips_symbol_insns to check that the base symbol type is a
11036
        legitimate constant.  Reject GOT-based constants if
11037
        TARGET_MIPS16_PCREL_LOADS.
11038
        (mips_const_insns): Check targetm.cannot_force_const_mem when
11039
        decomposing a symbolic base and a large offset.
11040
        (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
11041
        When calling a function that needs $25 from MIPS16 code,
11042
        move the target address into $25 separately and add a USE
11043
        to the call insn.
11044
        (mips16_gp_pseudo_reg): Insert the initializer immediately
11045
        before the first real insn.
11046
        (mips_pic_base_register, mips_got_load): New functions.
11047
        (mips_split_symbol): Generalize the name of the LO_SUM_OUT
11048
        parameter to LOW_OUT.  Say that it can be any valid SET_SRC
11049
        when splitting a load-address operation.  Split SYMBOL_GOT_DISP
11050
        constants and highs of SYMBOL_GOT_PAGE_OFST constants.
11051
        (mips_call_tls_get_addr): Update the call to mips_expand_call,
11052
        also passing NULL_RTX rather than const0_rtx as the aux argument.
11053
        (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
11054
        instead of TARGET_EXPLICIT_RELOCS.
11055
        (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
11056
        (mips_load_call_address): Replace the sibcall_p argument with
11057
        a mips_call_type argument.  Use mips_got_load.
11058
        (mips16_local_alias): New structure.
11059
        (mips16_local_aliases): New variable.
11060
        (mips16_local_aliases_hash): New function.
11061
        (mips16_local_aliases_eq): Likewise.
11062
        (mips16_local_alias): Likewise.
11063
        (mips16_stub_function): Likewise.
11064
        (mips16_build_function_stub): Create a local alias for the target
11065
        function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
11066
        .cpload directive and an R_MIPS_NONE relocation for the target
11067
        function, then load the alias rather than the function itself.
11068
        Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
11069
        (mips16_copy_fpr_return_value): Use mips16_stub_function and
11070
        mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
11071
        (mips16_build_call_stub): Replace the FN parameter with an
11072
        FN_PTR parameter.  Force the address into a register if it
11073
        isn't a call_insn_operand; don't rely on the caller to do this.
11074
        If a call to a locally-defined and locally-binding MIPS16
11075
        function must be made indirectly, redirect the call to the
11076
        function's local alias.  Use mips16_stub_function_p,
11077
        mips16_stub_function, mips_expand_call and use_reg.
11078
        Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
11079
        Use explicit %hi and %lo accesses where possible.
11080
        Use MIPS_CALL to generate the correct code form of a
11081
        jal instruction.  Add clobbers of $18 instead of uses.
11082
        Update the call to mips_emit_call_insn.
11083
        (mips_expand_call): Replace the SIBCALL_P argument with a
11084
        mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
11085
        Take a LAZY_P parameter.  Call mips16_build_call_stub first,
11086
        allowing it to modify the call address.  Update the calls to
11087
        mips_load_call_address and mips_emit_call_insn.
11088
        (mips_split_call): New function.
11089
        (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
11090
        !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
11091
        SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
11092
        (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
11093
        (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
11094
        if TARGET_MIPS16.
11095
        (mips_cprestore_slot): New function.
11096
        (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
11097
        and use mips_cprestore_slot.
11098
        (mips_output_function_prologue): Handle TARGET_MIPS16 for
11099
        LOADGP_OLDABI.
11100
        (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
11101
        then use a copygp_mips16 instruction to set up $28.
11102
        (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
11103
        (mips16_lay_out_constants): Call split_all_insns_noflow.
11104
        (mips_reorg_process_insns): Explicitly set all_noreorder_p to
11105
        false if TARGET_MIPS16.
11106
        (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
11107
        (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
11108
        mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
11109
        (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
11110
        MIPS16 code.  Allow MIPS16 o32 PIC.
11111
        (mips_override_options): Allow MIPS16 o32 PIC.
11112
        * config/mips/mips.md: Lower CONST_GP_P moves into register moves
11113
        after reload if TARGET_USE_GOT.
11114
        (UNSPEC_COPYGP): New constant.
11115
        (length): Use a default length of 8 for MIPS16 GOT loads.
11116
        (*got_disp): Check mips_split_p instead of TARGET_XGOT.
11117
        (*got_page): Check mips_split_hi_p.
11118
        (*got_disp, *got_page): Use mips_got_load.
11119
        (unspec_got, unspec_call): New expanders.
11120
        (load_got, load_call): Remove the length attributes.
11121
        Use a got attribute instead of a type attribute.
11122
        (copygp_mips16): New insn.
11123
        (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
11124
        (load_call): Use a "d" constraint instead of an "r" constraint.
11125
        (sibcall, sibcall_value, call, call_value): Update the calls
11126
        to mips_expand_call.
11127
        (call_internal, call_value_internal): Use mips_split_call.
11128
        (call_value_multiple_internal): Likewise.
11129
        (call_split): Move after call_internal (the insn it is split from).
11130
        (call_internal_direct, call_value_internal_direct): Turn into
11131
        define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
11132
        (call_direct_split, call_value_direct_split): New patterns.
11133
        * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
11134
        and use M16_REGS instead of M16_NA_REGS.
11135
        * config/mips/predicates.md (const_call_insn_operand): Replace
11136
        the TARGET_ABSOLUTE_ABICALLS-based check with a more general
11137
        mips_use_pic_fn_addr_reg_p check.
11138
        (move_operand): Reject HIGHs if mips_split_hi_p.
11139
        * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
11140
        (__mips16_floatunsisf): Inline __mips16_floatsisf.
11141
        (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
11142
        * config/mips/libgcc-mips16.ver: New file.
11143
        * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
11144
        $(srcdir)/config/mips/libgcc-mips16.ver.
11145
 
11146
2008-08-09  Richard Sandiford  
11147
 
11148
        * config/mips/mips.c (mips_unspec_address_offset): Move earlier
11149
        in file.
11150
        (mips_unspec_address, mips_unspec_offset_high): Likewise.
11151
        (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
11152
        (mips16_cfun_returns_in_fpr_p): Likewise.
11153
 
11154
2008-08-09  Richard Sandiford  
11155
 
11156
        * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
11157
        * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
11158
        rather than 4 to PC.
11159
 
11160
2008-08-09  Richard Sandiford  
11161
 
11162
        * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
11163
        (FUNCTION_PROFILER): Save the static chain pointer into $2
11164
        beforehand and restore it aftewards.
11165
        (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
11166
        address directly into $25 and call the function through $25;
11167
        do not clobber $3.  Pad the DImode version to cover the space
11168
        left by the deleted $25 <- $3 move.
11169
        (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
11170
        the removal of the $25 <- $3 move.
11171
        (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
11172
        * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
11173
 
11174
2008-08-09  Richard Sandiford  
11175
            Daniel Jacobowitz  
11176
 
11177
        * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
11178
        * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
11179
        (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
11180
        * config/mips/mips.c (mips_start_function_definition): New function.
11181
        (mips_end_function_definition): Likewise.
11182
        (mips_output_function_prologue): Use mips_start_function_definition.
11183
        (mips_output_function_epilogue): Use mips_end_function_definition.
11184
        (build_mips16_function_stub): Use mips_start_function_definition
11185
        and mips_end_function_definition.
11186
        (build_mips16_call_stub): Likewise.
11187
 
11188
2008-08-09  Richard Guenther  
11189
 
11190
        * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
11191
        * gimple.h (gimple_call_fn): Adjust comment.
11192
        (gimple_call_set_fndecl): New function.
11193
        (gimple_call_fndecl): Adjust for GIMPLE_CALL no
11194
        longer having bare FUNCTION_DECL operand.
11195
        (gimple_call_return_type): Likewise.
11196
        * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
11197
 
11198
        * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
11199
        (gimple_mod_pow2): Likewise.
11200
        (gimple_mod_subtract): Likewise.
11201
        (gimple_ic): Likewise.
11202
        (gimple_stringop_fixed_value): Likewise.
11203
        (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
11204
        longer having bare FUNCTION_DECL operand.
11205
        * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
11206
        * omp-low.c (optimize_omp_library_calls): Likewise.
11207
        * cgraphunit.c (update_call_expr): Likewise.
11208
        * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
11209
        (execute_convert_to_rsqrt): Likewise.
11210
        * cfgexpand.c (gimple_to_tree): Simplify.
11211
        (release_stmt_tree): Fix for GIMPLE_CALL no longer having
11212
        bare FUNCTION_DECL operand.
11213
        * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
11214
        (convert_gimple_call): Use gimple_call_fndecl.
11215
        * c-common.c (c_warn_unused_result): Likewise.
11216
 
11217
2008-08-09  Manuel Lopez-Ibanez  
11218
 
11219
        PR c/17880
11220
        * c-typeck.c (digest_init): Call verify_sequence_points from here.
11221
        (c_finish_return): Likewise.
11222
        (c_start_case): Likewise.
11223
        * c-common.c (warn_for_collisions_1): Use explicit location in warning.
11224
        * c-parser.c (c_parser_condition): New. Call
11225
        verify_sequence_points.
11226
        (c_parser_paren_condition): Call c_parser_condition.
11227
        (c_parser_for_statement): Call c_parser_condition.
11228
 
11229
2008-08-09  Manuel Lopez-Ibanez  
11230
 
11231
        PR 36901
11232
        * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
11233
        * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
11234
        Moved from diagnostic.h
11235
        (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
11236
        DK_PERMERROR.
11237
        (emit_diagnostic): New.
11238
        (warning0, pedwarn0): Delete.
11239
        (warning, warning_at, pedwarn, permerror): Return bool.
11240
        * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
11241
        Moved to diagnostic.c.
11242
        (struct diagnostic_context): Use correct type for
11243
        classify_diagnostic.
11244
        (diagnostic_report_diagnostic): Update declaration.
11245
        (emit_diagnostic): Declare.
11246
        * errors.c (warning): Return bool.
11247
        * errors.h (warning): Update declaration.
11248
        * toplev.h (warning0, pedwarn0): Delete.
11249
        (warning, warning_at, pedwarn, permerror): Return bool.
11250
        * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
11251
        * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
11252
        inform. Update all calls.
11253
        (diagnose_mismatched_decls): Check return value of warning/pedwarn
11254
        before giving informative note.
11255
        (implicit_decl_warning): Likewise.
11256
        * c-typeck.c (build_function_call): Likewise.
11257
        * tree-sssa.c (warn_uninit): Likewise.
11258
        * builtins.c (gimplify_va_arg_expr): Likewise.
11259
 
11260
2008-08-09  Manuel Lopez-Ibanez  
11261
 
11262
        PR 7651
11263
        * doc/invoke.texi (-Wextra): Move warning from here...
11264
        (-Wuninitialized): ... to here.
11265
 
11266
2008-08-08  Manuel Lopez-Ibanez  
11267
 
11268
        PR 28875
11269
        * flags.h (set_Wunused): Delete
11270
        * toplev.c (process_options): Handle Wunused flags here.
11271
        * opts.c (maybe_warn_unused_parameter): Delete.
11272
        (common_handle_option): Replace set_Wunused by warn_unused.
11273
        (set_Wextra): Do not handle Wunused-parameter here.
11274
        (set_Wunused): Delete.
11275
        * c-opts.c (c_common_handle_option): Replace set_Wunused by
11276
        warn_unused.
11277
        * common.opt (Wunused): Add Var and Init.
11278
        (Wunused-function): Likewise.
11279
        (Wunused-label): Likewise.
11280
        (Wunused-parameter): Likewise.
11281
        (Wunused-value): Likewise.
11282
        (Wunused-variable): Likewise.
11283
 
11284
2008-08-08  Peter Bergner  
11285
 
11286
        * doc/invoke.texi: Add cpu_type power7.
11287
        * config.in (HAVE_AS_VSX): New.
11288
        * config.gcc: Add cpu_type power7.
11289
        * configure.ac (HAVE_AS_VSX): Check for assembler support of the
11290
        VSX instructions.
11291
        * configure: Regenerate.
11292
        * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
11293
        power5.
11294
        * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
11295
        (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
11296
        (EXTRA_SPECS): Add asm_cpu_power7 spec string.
11297
 
11298
2008-08-08  Dorit Nuzman  
11299
 
11300
        * tree-vect-transform.c (vectorizable_conversion): Pass the integral
11301
        type to vectorize.builtin_conversion.
11302
        (vectorizable_conversion): Likewise.
11303
        * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
11304
        integral type as input.
11305
        * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
11306
        FIX_TRUNC_EXPR.
11307
        (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
11308
        and ALTIVEC_BUILTIN_VCTSXS.
11309
        (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
11310
        formatting.
11311
 
11312
2008-08-08  Richard Guenther  
11313
 
11314
        * tree-ssa-ccp.c (likely_value): Calls are not all varying.
11315
        (surely_varying_stmt_p): Calls are varying only if they are
11316
        non-builtin and not indirect or have no result.
11317
        (ccp_fold): Re-instantiate code before the tuples merge.
11318
 
11319
2008-08-08  Richard Guenther  
11320
 
11321
        PR tree-optimization/37056
11322
        * gimple.h (gimple_assign_rhs_class): New helper function.
11323
        * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
11324
        unary operations properly.
11325
 
11326
2008-08-07  Jan Hubicka  
11327
 
11328
        * i386.h (ix86_size_cost): Declare.
11329
        (ix86_cur_cost): New function macro.
11330
        * i386.md (peepholes expanding size and splitters): Predicate by
11331
        optimize_insn_for_speed_p.
11332
        (peepholes reduce size and splitters): Predicate by
11333
        optimize_insn_for_size_p.
11334
        * i386.c (ix86_size_cost): Rename from ...
11335
        (size_cost): This one.
11336
        (override_options): Update.
11337
        (decide_alg): Likewise.
11338
        (ix86_expand_clear): Use RTL profile.
11339
        (ix86_pad_returns): Use RTL profile.
11340
 
11341
2008-08-07  Jan Hubicka  
11342
 
11343
        * recog.c (split_all_insns): Set RTL profile
11344
        (peephole2_optimize): Likewise.
11345
        * function.c (thread_prologue_and_epilogue_insns): Likewise.
11346
        * combine.c (combine_instructions): Likewise.
11347
 
11348
2008-08-07  Kaveh R. Ghazi  
11349
 
11350
        * c-common.c (c_common_reswords): Also warn about keyword "bool".
11351
 
11352
2008-08-07  Bob Wilson  
11353
 
11354
        * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
11355
        value in a6 after the set_frame_ptr insn.
11356
 
11357
2008-08-07  Richard Henderson  
11358
 
11359
        PR debug/37033
11360
        * gcc.c (cpp_options): Pass along -g*.
11361
 
11362
2008-08-07  Joseph Myers  
11363
 
11364
        * config/arm/arm.c (output_move_neon): Update comment describing
11365
        big-endian vector layout.
11366
        (arm_assemble_integer): Do not handle big-endian NEON vectors
11367
        specially.
11368
        * config/arm/neon.md (vec_set_internal, vec_extract,
11369
        neon_vget_lane_sext_internal,
11370
        neon_vget_lane_zext_internal, neon_vget_lane): Adjust
11371
        element indices for big-endian.
11372
 
11373
2008-08-07  Richard Henderson  
11374
 
11375
        * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
11376
        * configure, config.in: Rebuild.
11377
        * debug.h (dwarf2out_do_cfi_asm): Declare.
11378
        * c-cppbuiltin.c (c_cpp_builtins): Use it.
11379
        * dwarf2out.c (dwarf2out_do_cfi_asm): New.
11380
        (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
11381
        dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
11382
 
11383
2008-08-07  Joseph Myers  
11384
 
11385
        * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
11386
        movv2si_internal): Combine into mov_internal.
11387
        (movv2si_internal_2): Remove.
11388
 
11389
2008-08-07  Jan Hubicka  
11390
 
11391
        PR target/37048
11392
        * i386.md (single stringop patterns): Enable unconditionally.
11393
 
11394
2008-08-07  H.J. Lu  
11395
 
11396
        PR target/36992
11397
        * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
11398
 
11399
        * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
11400
        (bdesc_args): Add IX86_BUILTIN_MOVQ128.
11401
 
11402
        * config/i386/sse.md (sse2_movq128): New.
11403
 
11404
        * doc/extend.texi: Document __builtin_ia32_movq128.
11405
 
11406
2008-08-07  Richard Guenther  
11407
 
11408
        PR middle-end/37042
11409
        * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
11410
        pointers can access anything.
11411
 
11412
2008-08-06  Jan Hubicka  
11413
 
11414
        * optabs.c (emit_unop_insn): Break out to ...
11415
        (maybe_emit_unop_insn): ... this one.
11416
        (expand_sfix_optab): Use maybe variant.
11417
        * optabs.h (maybe_emit_unop_insn): Declare.
11418
 
11419
        * i386.md (mov0 patterns): Enable by default.
11420
        (FP conversion expanders): Disable expansion of code expanding
11421
        sequences when instruction should be optimized for size.
11422
        (single strinop patterns): Enable when optimizing for size.
11423
        (string expanders): Disable expanding of code expanding sequences
11424
        when optimizning instruction for size.
11425
        * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
11426
        per BB basis.
11427
        (ix86_fp_comparison_sahf_cost): Likewise.
11428
        (ix86_expand_branch): Likewise.
11429
        (ix86_expand_ashl_const): Likewise.
11430
        (ix86_split_ashl): Likewise.
11431
        (ix86_expand_strlen): Likewise.
11432
        (ix86_emit_fp_unordered_jump): Likewie.
11433
 
11434
2008-08-06  Kaveh R. Ghazi  
11435
 
11436
        * c-common.c: Fix typo.
11437
        (c_common_reswords): Activate more C++ keyword warnings.
11438
 
11439
        * matrix-reorg.c (compute_offset): Avoid C++ keywords.
11440
 
11441
2008-08-06  Manuel Lopez-Ibanez  
11442
 
11443
        PR 26785
11444
        * diagnostic.c (permerror_at): New.
11445
        * toplev.h (permerror_at): Declare.
11446
 
11447
2008-08-06  Victor Kaplansky  
11448
            Ira Rosen  
11449
 
11450
        * tree-vect-transform.c (vect_model_simple_cost): Return
11451
        immediately if stmt is pure SLP.
11452
        (vect_model_store_cost): Ditto.
11453
        (vect_model_load_cost): Ditto.
11454
        (vectorizable_store): Remove PURE_SLP check before call
11455
        to vect_model_store_cost.
11456
        (vect_model_store_cost): When checking whether stmt describe
11457
        strided access, add a check that it is not slp_node.
11458
 
11459
2008-08-06  Manuel Lopez-Ibanez  
11460
 
11461
        PR 8715
11462
        * c-common.c (warn_for_sign_compare): New. Handle separately the
11463
        case that 'constant' is zero.
11464
        * c-typeck.c (build_binary_op): Move code to c-common.c
11465
 
11466
2008-08-06  Kaveh R. Ghazi  
11467
 
11468
        * config/alpha/alpha.c (alpha_preferred_reload_class,
11469
        alpha_secondary_reload, alpha_emit_set_const_1, function_value,
11470
        alpha_output_mi_thunk_osf): Avoid C++ keywords.
11471
        * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
11472
        * config/arm/arm.md: Likewise.
11473
        * config/avr/avr-protos.h (preferred_reload_class,
11474
        test_hard_reg_class, avr_simplify_comparison_p,
11475
        out_shift_with_cnt, class_max_nregs): Likewise.
11476
        * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
11477
        output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
11478
        preferred_reload_class, test_hard_reg_class): Likewise.
11479
        * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
11480
        bfin_memory_move_cost, bfin_secondary_reload,
11481
        bfin_output_mi_thunk): Likewise.
11482
        * config/crx/crx.c (crx_secondary_reload_class,
11483
        crx_memory_move_cost): Likewise.
11484
        * config/frv/frv-protos.h (frv_secondary_reload_class,
11485
        frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
11486
        * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
11487
        frv_secondary_reload_class, frv_class_likely_spilled_p,
11488
        frv_class_max_nregs): Likewise.
11489
        * config/h8300/h8300.c (h8300_classify_operand,
11490
        h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
11491
        Likewise.
11492
        * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
11493
        * config/ia64/ia64.c (ia64_preferred_reload_class,
11494
        ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
11495
        * config/iq2000/iq2000.c (gen_int_relational): Likewise.
11496
        * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
11497
        Likewise.
11498
        * config/m68hc11/m68hc11.c (preferred_reload_class,
11499
        m68hc11_memory_move_cost): Likewise.
11500
        * config/mcore/mcore.c (mcore_secondary_reload_class,
11501
        mcore_reload_class): Likewise.
11502
        * config/mips/mips.c (mips_hard_regno_mode_ok_p,
11503
        mips_class_max_nregs, mips_cannot_change_mode_class,
11504
        mips_preferred_reload_class, mips_secondary_reload_class,
11505
        mips_output_mi_thunk): Likewise.
11506
        * config/mmix/mmix.c (mmix_preferred_reload_class,
11507
        mmix_preferred_output_reload_class, mmix_secondary_reload_class):
11508
        Likewise.
11509
        * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
11510
        Likewise.
11511
        * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
11512
        pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
11513
        * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
11514
        * config/rs6000/rs6000.c (paired_expand_vector_init,
11515
        rs6000_secondary_reload_class, rs6000_output_mi_thunk,
11516
        compare_section_name, rs6000_memory_move_cost): Likewise.
11517
        * config/s390/s390.c (s390_emit_compare_and_swap,
11518
        s390_preferred_reload_class, s390_secondary_reload,
11519
        legitimize_pic_address, legitimize_tls_address,
11520
        legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
11521
        s390_class_max_nregs): Likewise.
11522
        * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
11523
        * config/s390/s390.md: Likewise.
11524
        * config/score/score-protos.h (score_secondary_reload_class,
11525
        score_preferred_reload_class): Likewise.
11526
        * config/score/score.c (score_preferred_reload_class,
11527
        score_secondary_reload_class): Likewise.
11528
        * config/score/score3.c (score3_output_mi_thunk,
11529
        score3_preferred_reload_class, score3_secondary_reload_class,
11530
        score3_hard_regno_mode_ok): Likewise.
11531
        * config/score/score3.h (score3_preferred_reload_class,
11532
        score3_secondary_reload_class): Likewise.
11533
        * config/score/score7.c (score7_output_mi_thunk,
11534
        score7_preferred_reload_class, score7_secondary_reload_class,
11535
        score7_hard_regno_mode_ok): Likewise.
11536
        * config/score/score7.h (score7_preferred_reload_class,
11537
        score7_secondary_reload_class): Likewise.
11538
        * config/sh/sh.c (prepare_move_operands, output_far_jump,
11539
        output_branchy_insn, add_constant, gen_block_redirect,
11540
        sh_insn_length_adjustment, sh_cannot_change_mode_class,
11541
        sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
11542
        * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
11543
        * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
11544
        xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
11545
        xstormy16_preferred_reload_class): Likewise.
11546
        * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
11547
        xtensa_expand_atomic, override_options,
11548
        xtensa_preferred_reload_class, xtensa_secondary_reload_class):
11549
        Likewise.
11550
        * reorg.c (try_merge_delay_insns): Likewise.
11551
        * tree.c (merge_dllimport_decl_attributes): Likewise.
11552
 
11553
        * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
11554
 
11555
2008-08-06  Michael Matz  
11556
 
11557
        * Makefile.in (write_entries_to_file): Quote words.
11558
        * gengtype.c (read_input_line): Skip over leading white-space.
11559
 
11560
2008-08-06  Marc Gauthier  
11561
 
11562
        * config.gcc: Match more processor names for Xtensa.
11563
        * configure.ac: Likewise.
11564
        * doc/install.texi (Specific): Likewise.
11565
        * configure: Regenerate.
11566
 
11567
2008-08-06  Kaveh R. Ghazi  
11568
 
11569
        * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
11570
        * calls.c (avoid_likely_spilled_reg): Likewise.
11571
        * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
11572
        * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
11573
        * config/i386/i386.c (ix86_expand_special_args_builtin,
11574
        ix86_secondary_reload): Likewise.
11575
        * except.c (struct eh_region, gen_eh_region_catch,
11576
        remove_unreachable_regions, duplicate_eh_regions,
11577
        assign_filter_values, build_post_landing_pads,
11578
        sjlj_find_directly_reachable_regions, remove_eh_handler,
11579
        reachable_next_level, foreach_reachable_handler,
11580
        can_throw_internal_1, can_throw_external_1,
11581
        collect_one_action_chain): Likewise.
11582
        * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
11583
        * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
11584
        * function.c (update_temp_slot_address, instantiate_new_reg,
11585
        instantiate_virtual_regs_in_rtx,
11586
        instantiate_virtual_regs_in_insn): Likewise.
11587
        * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
11588
        * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
11589
        gimplify_cleanup_point_expr): Likewise.
11590
        * ipa-cp.c (ipcp_lattice_changed): Likewise.
11591
        * passes.c (next_pass_1): Likewise.
11592
        * print-tree.c (print_node_brief, print_node): Likewise.
11593
        * profile.c (branch_prob): Likewise.
11594
        * tree-dump.c (dump_register): Likewise.
11595
        * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
11596
        Likewise.
11597
        * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
11598
        copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
11599
        copy_edges_for_bb, copy_cfg_body, copy_tree_r,
11600
        copy_arguments_for_versioning, copy_static_chain): Likewise.
11601
        * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
11602
        add_new_name_mapping, register_new_name_mapping): Likewise.
11603
        * tree-mudflap.c (mf_xform_derefs): Likewise.
11604
        * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
11605
        get_init_expr, combine_chains): Likewise.
11606
        * tree-pretty-print.c (dump_generic_node): Likewise.
11607
        * tree-ssa-structalias.c (create_variable_info_for): Likewise.
11608
        * tree-vrp.c (simplify_cond_using_ranges): Likewise.
11609
        * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
11610
        * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
11611
 
11612
2008-08-06  H.J. Lu  
11613
 
11614
        PR middle-end/37010
11615
        * calls.c (expand_call): Use the biggest preferred stack
11616
        boundary.
11617
 
11618
2008-08-06  Michael Matz  
11619
 
11620
        PR target/36613
11621
        * reload.c (push_reload): Merge in,out,in_reg,out_reg members
11622
        for reused reload, instead of overwriting them.
11623
 
11624
2008-08-06  H.J. Lu  
11625
 
11626
        PR middle-end/37009
11627
        * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
11628
        for incoming stack boundary.
11629
 
11630
        * function.c (assign_parm_find_entry_rtl): Update
11631
        parm_stack_boundary.
11632
 
11633
        * function.h (rtl_data): Add parm_stack_boundary.
11634
 
11635
        * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
11636
        parm_stack_boundary for incoming stack boundary.
11637
 
11638
2008-08-06  Joseph Myers  
11639
 
11640
        * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
11641
        for unrepresentable subregs or treat them as equal to other regs
11642
        or subregs with the same register number.
11643
 
11644
2008-08-06  Aldy Hernandez  
11645
 
11646
        PR middle-end/35432
11647
        * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
11648
        if want_value.
11649
 
11650
2008-08-06  Jan Hubicka  
11651
 
11652
        * predict.c (maybe_hot_frequency_p): When profile is absent, all
11653
        frequencies might be hot.
11654
 
11655
2008-08-06  Andreas Krebbel  
11656
 
11657
        * reload.c (find_reloads): Force constants into literal pool
11658
        also if they are wrapped in a SUBREG.
11659
 
11660
2008-08-06  Maxim Kuvyrkov  
11661
 
11662
        PR target/35659
11663
        * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
11664
        * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
11665
        Don't allow predicated instructions for data speculation.
11666
        * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
11667
        declaration.
11668
 
11669
2008-08-06  Maxim Kuvyrkov  
11670
 
11671
        * haifa-sched.c (extend_global): Split to extend_global_data and
11672
        extend_region_data.  Update all uses.
11673
        (extend_all): Rename to extend_block_data.
11674
 
11675
2008-08-06  Maxim Kuvyrkov  
11676
 
11677
        * sched-rgn.c (new_ready): Check if instruction can be
11678
        speculatively scheduled before attempting speculation.
11679
        (debug_rgn_dependencies): Remove wrongful assert.
11680
 
11681
2008-08-05  Bob Wilson  
11682
 
11683
        * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
11684
 
11685
2008-08-05  Bob Wilson  
11686
 
11687
        * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
11688
        (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
11689
        va_size, and type_size.
11690
 
11691
2008-08-04  Jason Merrill  
11692
 
11693
        PR c++/37016
11694
        * tree-ssa.c (useless_type_conversion_p_1): Call langhook
11695
        if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
11696
 
11697
2008-08-05  Richard Henderson  
11698
 
11699
        * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
11700
        * configure: Rebuild.
11701
 
11702
2008-08-05  Andrew Pinski  
11703
 
11704
        PR tree-opt/37024
11705
        * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
11706
        instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
11707
        is a conversion.
11708
 
11709
2008-08-05  Richard Henderson  
11710
 
11711
        * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
11712
        * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
11713
        * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
11714
        * common.opt (fdwarf2-cfi-asm): New.
11715
        * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
11716
        * config.in, configure: Rebuild.
11717
        * dwarf2asm.c (dw2_asm_output_data_raw): New.
11718
        (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
11719
        New.
11720
        (dw2_force_const_mem): Externalize.
11721
        * dwarf2asm.h: Update.
11722
        * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
11723
        generate a real label.
11724
        (output_cfi_directive): New.
11725
        (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
11726
        (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
11727
        (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
11728
        and .cfi_lsda.
11729
        (dwarf2out_end_epilogue): Emit .cfi_endproc.
11730
        (output_loc_operands_raw, output_loc_sequence_raw): New.
11731
        (output_cfa_loc_raw): New.
11732
 
11733
2008-08-05  Paul Brook  
11734
 
11735
        * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
11736
        * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
11737
        (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
11738
        (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
11739
        * config/arm/arm.h (TARGET_VFPD32): Define.
11740
        (TARGET_VFP3): Use TARGET_VFPD32.
11741
        (fputype): Add FPUTYPE_VFP3D16.
11742
        (LAST_VFP_REGNUM): Use TARGET_VFPD32.
11743
        * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
11744
        * config/arm/arm-cores.def: Add cortex-r4f.
11745
        * config/arm/arm-tune.md: Regenerate.
11746
 
11747
2008-08-05  Ulrich Weigand  
11748
 
11749
        * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
11750
        Reword some comments throughout the file.
11751
 
11752
        (MFC_MIN_DMA_LIST_ELEMENTS): New define.
11753
        (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
11754
        (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
11755
        MFC_MIN_DMA_LIST_ELEMENTS.
11756
        (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
11757
        MFC_MAX_DMA_LIST_ELEMENTS.
11758
 
11759
        (MFC_START_ENABLE): Remove PPU-only define.
11760
        (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
11761
        (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
11762
 
11763
        (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
11764
        (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
11765
        (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
11766
        (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
11767
        (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
11768
        (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
11769
        (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
11770
 
11771
        (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
11772
        (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
11773
        (mfc_sdcrt, mfc_sdcrtst): Likewise.
11774
        (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
11775
 
11776
        (spu_read_machine_status): Fix typo.
11777
 
11778
2008-08-05  Ulrich Weigand  
11779
 
11780
        * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
11781
        SUBREG of multi-word hard register.
11782
        * config/spu/spu.c (valid_subreg): Likewise.
11783
        (adjust_operand): Handle SUBREGs of multi-word hard registers.
11784
 
11785
2008-08-04  Richard Guenther  
11786
 
11787
        * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
11788
        the candidate with the stripped base if that base is different
11789
        from the original base even for offset zero.
11790
 
11791
2008-08-04  Richard Guenther  
11792
 
11793
        PR middle-end/36691
11794
        * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
11795
        check for no_overflow.
11796
 
11797
2008-08-04  Richard Guenther  
11798
 
11799
        * tree-vect-transform.c (vectorizable_call): Fix tuplification.
11800
 
11801
2008-08-04  Paul Brook  
11802
 
11803
        * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
11804
        (arm_order_regs_for_local_alloc): New function.
11805
        * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
11806
        prototype.
11807
        * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
11808
 
11809
2008-08-04  H.J. Lu  
11810
 
11811
        PR target/37012
11812
        * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
11813
        instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
11814
        (ix86_expand_epilogue): Likewise.
11815
 
11816
2008-08-04  H.J. Lu  
11817
 
11818
        * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
11819
        in comments.
11820
 
11821
2008-08-03  Uros Bizjak  
11822
 
11823
        * config/i386/mmx.md (*mov_internal_rex64): Use Yi instead of x
11824
        to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
11825
        (*movv2sf_internal_rex64): Ditto.
11826
 
11827
2008-08-03  Jan Hubicka  
11828
 
11829
        * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
11830
        expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
11831
        * expmed.c (expand_smod_pow2): Likewise.
11832
 
11833
2008-08-03  Uros Bizjak  
11834
 
11835
        PR target/36992
11836
        * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
11837
        alternative 0 of operand 1.
11838
        (*vec_concatv2di_rex64_sse): Ditto.
11839
        (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
11840
        of operand 1.
11841
        (*sse2_storeq_rex64): Penalize allocation of "r" registers.
11842
        * config/i386/mmx.md (*mov_internal_rex64): Penalize allocation
11843
        of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
11844
        (*movv2sf_internal_rex64): Ditto.
11845
 
11846
2008-08-02  Richard Guenther  
11847
 
11848
        PR target/35252
11849
        * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
11850
        (ssedoublesizemode): New mode attribute.
11851
        (sse_shufps): Call gen_sse_shufps_v4sf.
11852
        (sse_shufps_1): Macroize.
11853
        (sse2_shufpd): Call gen_Sse_shufpd_v2df.
11854
        (sse2_shufpd_1): Macroize.
11855
        (vec_extract_odd, vec_extract_even): New expanders.
11856
        (vec_interleave_highv4sf, vec_interleave_lowv4sf,
11857
        vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
11858
        * i386.c (ix86_expand_vector_init_one_nonzero): Call
11859
        gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
11860
        (ix86_expand_vector_set): Likewise.
11861
        (ix86_expand_reduc_v4sf): Likewise.
11862
 
11863
2008-08-01  Doug Kwan  
11864
 
11865
        * matrix-reorg.c: Re-enable all code.
11866
        (struct malloc_call_data): Change CALL_STMT to gimple type.
11867
        (collect_data_for_malloc_call): Tuplify.
11868
        (struct access_site_info): Change STMT to gimple type.
11869
        (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
11870
        and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
11871
        (struct free_info): Change STMT to gimple type.
11872
        (struct matrix_access_phi_node):  Change PHI to gimple type.
11873
        (get_inner_of_cast_expr): Remove.
11874
        (may_flatten_matrices_1): Tuplify.
11875
        (may_flatten_matrices): Ditto.
11876
        (mark_min_matrix_escape_level): Ditto.
11877
        (ssa_accessed_in_tree): Refactor statement RHS related code into ...
11878
        (ssa_accessed_in_call_rhs): New
11879
        (ssa_accessed_in_assign_rhs): New
11880
        (record_access_alloc_site_info): Tuplify.
11881
        (add_allocation_site): Ditto.
11882
        (analyze_matrix_allocation_site): Ditto.
11883
        (analyze_transpose): Ditto.
11884
        (get_index_from_offset): Ditto.
11885
        (update_type_size): Ditto.
11886
        (analyze_accesses_for_call_expr): Tuplify and renamed into ...
11887
        (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
11888
        (analyze_accesses_for_phi_node): Tuplify.
11889
        (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
11890
        (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
11891
        (analyze_matrix_accesses): Tuplify.
11892
        (check_var_data): New call-back type for check_var_notmodified_p.
11893
        (check_var_notmodified_p): Tuplify and use call-back struct to
11894
        return statement found.
11895
        (can_calculate_expr_before_stmt): Factor out statement related code
11896
        into ...
11897
        (can_calculate_stmt_before_stmt): New.
11898
        (check_allocation_function): Tuplify.
11899
        (find_sites_in_func): Ditto.
11900
        (record_all_accesses_in_func): Ditto.
11901
        (transform_access_sites): Ditto.
11902
        (transform_allocation_sites): Ditto.
11903
        (matrix_reorg): Re-enable.
11904
        (gate_matrix_reorg): Re-enable.
11905
 
11906
2008-08-01  Jakub Jelinek  
11907
 
11908
        * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
11909
        for labels for which it hasn't been set yet.  If it has been set,
11910
        stop walking insns and continue with next worklist item.
11911
        (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
11912
        if the only BARRIER is at the very end of a function.
11913
 
11914
2008-08-01  H.J. Lu  
11915
 
11916
        * cfgexpand.c (expand_stack_alignment): Assert that
11917
        stack_realign_drap and drap_rtx must match.
11918
 
11919
        * function.c (instantiate_new_reg): If DRAP is used to realign
11920
        stack, replace virtual_incoming_args_rtx with internal arg
11921
        pointer.
11922
 
11923
2008-08-01  Richard Guenther  
11924
 
11925
        * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
11926
        loop information only if we initialized it.
11927
        (execute_pre): Call fini_pre with in_fre.
11928
        * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
11929
        if we do not unroll because we hit max-completely-peeled-insns.
11930
        Use our estimation for consistency, do allow shrinking.
11931
 
11932
2008-08-01  H.J. Lu  
11933
 
11934
        * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
11935
        with MIN_STACK_BOUNDARY.
11936
        (ix86_update_stack_boundary): Likewise.
11937
        (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
11938
        STACK_BOUNDARY.
11939
 
11940
        * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
11941
        (MIN_STACK_BOUNDARY): This.
11942
 
11943
2008-08-01  Richard Guenther  
11944
 
11945
        PR middle-end/36997
11946
        * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
11947
 
11948
2008-08-01  Richard Guenther  
11949
 
11950
        PR tree-optimization/36988
11951
        * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
11952
        do not matter if that doesn't change volatile qualification.
11953
 
11954
2008-08-01  Paolo Bonzini  
11955
 
11956
        * configure.ac: Do not generate libada-mk.  Do not subst
11957
        host_cc_for_libada.
11958
        * libada-mk.in: Remove.
11959
        * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
11960
        * configure: Regenerate.
11961
 
11962
2008-08-01  Basile Starynkevitch  
11963
 
11964
        * tree-pass.h: Added comment about not dumping passes with name
11965
        starting with star in struct opt_pass.
11966
        * passes.c (register_dump_files_1): Don't do dump for a pass with
11967
        name starting with star.
11968
        * doc/passes.texi (Pass manager): Mention pass names and special
11969
        meaning of star prefix to avoid dump.
11970
 
11971
2008-07-31  Adam Nemet  
11972
 
11973
        * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
11974
        to MIPS64r2.
11975
        * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
11976
        (ISA_MIPS64R2): New macro.
11977
        (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
11978
        (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
11979
        ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
11980
        ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
11981
        ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
11982
        ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
11983
        ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
11984
        (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
11985
        (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
11986
        Move up to keep list alphabetically sorted.
11987
        (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
11988
        * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
11989
        processor.
11990
        * doc/invoke.texi (MIPS Options): Add -mips64r2.
11991
        (-march=@var{arch}): Add mips64r2.
11992
 
11993
2008-07-31  H.J. Lu  
11994
 
11995
        * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
11996
 
11997
2008-07-31  Steve Ellcey  
11998
 
11999
        * expr.c (expand_assignment): Check for complete type.
12000
 
12001
2008-07-31  H.J. Lu  
12002
 
12003
        PR debug/36977
12004
        * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
12005
 
12006
        * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
12007
        for stack alignment.
12008
 
12009
        * function.h (rtl_data): Add stack_realign_tried.  Update comments.
12010
 
12011
2008-07-31  Kaz Kojima  
12012
 
12013
        * config/sh/sh.c (sh_canonical_va_list_type): Remove.
12014
        (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
12015
 
12016
2008-07-31  Jakub Jelinek  
12017
 
12018
        PR rtl-optimization/36419
12019
        * dwarf2out.c (barrier_args_size): New variable.
12020
        (compute_barrier_args_size, compute_barrier_args_size_1): New
12021
        functions.
12022
        (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
12023
        if not called yet in the current function, use barrier_args_size
12024
        array to find the new args_size value.
12025
        (dwarf2out_frame_debug): Free and clear barrier_args_size.
12026
 
12027
2008-07-31  H.J. Lu  
12028
 
12029
        PR debug/36980
12030
        * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
12031
        rule 19.
12032
 
12033
2008-07-31  H.J. Lu  
12034
 
12035
        PR debug/36976
12036
        * dwarf2out.c (dwarf2out_args_size_adjust): New.
12037
        (dwarf2out_stack_adjust): Use it.
12038
        (dwarf2out_frame_debug_expr): Likewise.
12039
 
12040
2008-07-31  Richard Guenther  
12041
 
12042
        PR tree-optimization/36978
12043
        * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
12044
        the generated condition.
12045
 
12046
2008-07-31  Richard Guenther  
12047
 
12048
        * passes.c (init_optimization_passes): Always call
12049
        pass_early_warn_uninitialized.
12050
        * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
12051
        * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
12052
        * doc/passes.texi (Warn for uninitialized variables): Adjust.
12053
 
12054
2008-07-31  Jakub Jelinek  
12055
 
12056
        PR c/36970
12057
        * builtins.c (maybe_emit_free_warning): New function.
12058
        (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
12059
        maybe_emit_free_warning for BUILT_IN_FREE.
12060
 
12061
        PR debug/36278
12062
        * dwarf2out.c (get_context_die): New function.
12063
        (force_decl_die, force_type_die): Use it.
12064
        (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
12065
        returns NULL, force generation of DW_TAG_typedef and put that into
12066
        DW_AT_import.
12067
 
12068
        PR preprocessor/36649
12069
        * c-pch.c (c_common_read_pch): Save and restore
12070
        line_table->trace_includes across PCH restore.
12071
 
12072
2008-07-30  Eric Botcazou  
12073
 
12074
        PR ada/36554
12075
        * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
12076
 
12077
2008-07-30  Rafael Ávila de Espíndola  
12078
 
12079
        PR 36974
12080
        * final.c (call_from_call_insn): Handle COND_EXEC.
12081
 
12082
2008-07-30  H.J. Lu  
12083
 
12084
        * builtins.c (std_gimplify_va_arg_expr): Replace
12085
        PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
12086
        * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
12087
 
12088
2008-07-30  Joey Ye  
12089
            H.J. Lu  
12090
 
12091
        * builtins.c (expand_builtin_setjmp_receiver): Replace
12092
        virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
12093
        (expand_builtin_apply_args_1): Likewise.
12094
        (expand_builtin_longjmp): Need DRAP for stack alignment.
12095
        (expand_builtin_apply): Likewise.
12096
 
12097
        * caller-save.c (setup_save_areas): Call assign_stack_local_1
12098
        instead of assign_stack_local to allow alignment reduction.
12099
 
12100
        * calls.c (emit_call_1): Need DRAP for stack alignment if
12101
        return pops.
12102
        (expand_call): Replace virtual_incoming_args_rtx with
12103
        crtl->args.internal_arg_pointer.
12104
        * stmt.c (expand_nl_goto_receiver): Likewise.
12105
 
12106
        * cfgexpand.c (get_decl_align_unit): Estimate stack variable
12107
        alignment and store to stack_alignment_estimated and
12108
        max_used_stack_slot_alignment.
12109
        (expand_one_var): Likewise.
12110
        (expand_stack_alignment): New function.
12111
        (tree_expand_cfg): Initialize max_used_stack_slot_alignment
12112
        and stack_alignment_estimated fields in rtl_data.  Call
12113
        expand_stack_alignment at end.
12114
 
12115
        * defaults.h (INCOMING_STACK_BOUNDARY): New.
12116
        (MAX_STACK_ALIGNMENT): Likewise.
12117
        (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
12118
        (SUPPORTS_STACK_ALIGNMENT): Likewise.
12119
 
12120
        * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
12121
        stack alignment when generating virtual registers.
12122
 
12123
        * function.c (assign_stack_local): Renamed to ...
12124
        (assign_stack_local_1): This.  Add a parameter to indicate
12125
        if it is OK to reduce alignment.
12126
        (assign_stack_local): Use it.
12127
        (instantiate_new_reg): Instantiate virtual incoming args rtx
12128
        to vDRAP if stack realignment and DRAP is needed.
12129
        (assign_parms): Collect parameter/return type alignment and
12130
        contribute to stack_alignment_estimated.
12131
        (locate_and_pad_parm): Likewise.
12132
        (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
12133
        with crtl->args.internal_arg_pointer.
12134
 
12135
        * function.h (rtl_data): Add new field drap_reg,
12136
        max_used_stack_slot_alignment, stack_alignment_estimated,
12137
        stack_realign_needed, need_drap, stack_realign_processed and
12138
        stack_realign_finalized.
12139
        (stack_realign_fp): New macro.
12140
        (stack_realign_drap): Likewise.
12141
 
12142
        * global.c (compute_regsets): Frame pointer is needed when
12143
        stack is realigned.  Can eliminate frame pointer when stack is
12144
        realigned and dynamic realigned argument pointer isn't used.
12145
 
12146
        * reload1.c (update_eliminables):  Frame pointer is needed
12147
        when stack is realigned.
12148
        (init_elim_table): Can eliminate frame pointer when stack is
12149
        realigned and dynamic realigned argument pointer isn't used.
12150
 
12151
        * rtl.h (assign_stack_local_1): Declare new funtion.
12152
 
12153
        * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
12154
        (TARGET_GET_DRAP_RTX): Likewise.
12155
        (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
12156
        TARGET_GET_DRAP_RTX.
12157
 
12158
        * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
12159
 
12160
        * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
12161
        STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
12162
 
12163
2008-07-30  Xuepeng Guo  
12164
            H.J. Lu  
12165
 
12166
        * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
12167
        vdrap_reg, stack_realign and drap_reg_saved.
12168
        (add_cfi): Don't allow redefining CFA when DRAP is used.
12169
        (reg_save): Handle stack alignment.
12170
        (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
12171
        alignment.  Don't generate DWARF information for (set fp sp)
12172
        when DRAP is used.
12173
        (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
12174
        to INVALID_REGNUM.
12175
        (int_loc_descriptor): Move prototype forward.  Also define if
12176
        DWARF2_UNWIND_INFO is true.
12177
        (output_cfa_loc): Handle DW_CFA_expression.
12178
        (build_cfa_aligned_loc): New.
12179
        (based_loc_descr): Update assert for stack realign.  For local
12180
        variables, use sp+offset when stack is aligned without drap and
12181
        fp+offset when stack is aligned with drap.  For arguments, use
12182
        cfa+offset when drap is used to align stack.
12183
 
12184
2008-07-30  Joey Ye  
12185
            H.J. Lu  
12186
 
12187
        * config/i386/i386.c (ix86_force_align_arg_pointer_string):
12188
        Break long line.
12189
        (ix86_gen_andsp): New.
12190
        (ix86_user_incoming_stack_boundary): Likewise.
12191
        (ix86_default_incoming_stack_boundary): Likewise.
12192
        (ix86_incoming_stack_boundary): Likewise.
12193
        (ix86_can_eliminate): Likewise.
12194
        (find_drap_reg): Likewise.
12195
        (ix86_update_stack_boundary): Likewise.
12196
        (ix86_get_drap_rtx): Likewise.
12197
        (ix86_finalize_stack_realign_flags): Likewise.
12198
        (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
12199
        (TARGET_GET_DRAP_RTX): Likewise.
12200
        (override_options): Overide option value for new options.
12201
        (ix86_function_ok_for_sibcall): Remove check for
12202
        force_align_arg_pointer.
12203
        (ix86_handle_cconv_attribute): Likewise.
12204
        (ix86_function_regparm): Likewise.
12205
        (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
12206
        (ix86_va_start): Replace virtual_incoming_args_rtx with
12207
        crtl->args.internal_arg_pointer.
12208
        (ix86_select_alt_pic_regnum): Check DRAP register.
12209
        (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
12210
        (ix86_compute_frame_layout): Compute frame layout wrt stack
12211
        realignment.
12212
        (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
12213
        (ix86_expand_prologue): Decide if stack realignment is needed
12214
        and generate prologue code accordingly.
12215
        (ix86_expand_epilogue): Generate epilogue code wrt stack
12216
        realignment is really needed or not.
12217
 
12218
        * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
12219
        (ABI_STACK_BOUNDARY): Likewise.
12220
        (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
12221
        (STACK_REALIGN_DEFAULT): Likewise.
12222
        (INCOMING_STACK_BOUNDARY): Likewise.
12223
        (MAX_STACK_ALIGNMENT): Likewise.
12224
        (ix86_incoming_stack_boundary): Likewise.
12225
        (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
12226
        (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
12227
        (CAN_ELIMINATE): Defined with ix86_can_eliminate.
12228
        (machine_function): Remove force_align_arg_pointer.
12229
 
12230
        * config/i386/i386.md (BX_REG): New.
12231
        (R13_REG): Likewise.
12232
 
12233
        * config/i386/i386.opt (mforce_drap): New.
12234
        (mincoming-stack-boundary): Likewise.
12235
        (mstackrealign): Add Init(-1).
12236
 
12237
        * config/i386/i386-protos.h (ix86_can_eliminate): New
12238
 
12239
2008-07-30  H.J. Lu  
12240
 
12241
        * doc/extend.texi: Update force_align_arg_pointer.
12242
 
12243
        * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
12244
        -mstackrealign.
12245
 
12246
        * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
12247
        (INCOMING_STACK_BOUNDARY): Likewise.
12248
        (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
12249
        (TARGET_GET_DRAP_RTX): Likewise.
12250
 
12251
2008-07-30  Andreas Schwab  
12252
 
12253
        PR rtl-optimization/36929
12254
        * dse.c (replace_inc_dec): Use emit_insn_before instead of
12255
        add_insn_before and fix argument order.
12256
        (replace_inc_dec_mem): Handle NULL rtx.
12257
 
12258
2008-07-30  Andrew Jenner  
12259
 
12260
        * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
12261
        function.
12262
        (arm_compute_initial_elimination_offset): Use it.
12263
        (arm_compute_save_reg_mask): Include static chain save slot when
12264
        calculating alignment.
12265
        (arm_get_frame_offsets): Ditto.
12266
        (thumb1_compute_save_reg_mask): Ensure we have a low register saved
12267
        that we can use to decrement the stack when the stack decrement
12268
        could be too big for an immediate value in a single insn.
12269
        (thumb1_expand_prologue): Avoid using r12 for stack decrement.
12270
 
12271
2008-07-30  Richard Guenther  
12272
 
12273
        PR tree-optimization/36967
12274
        * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
12275
        Release defs of statements we remove.
12276
 
12277
2008-07-30  Nathan Froyd  
12278
 
12279
        * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
12280
        instead of NULL_RTVEC.
12281
 
12282
2008-07-30  Nathan Froyd  
12283
 
12284
        PR target/35866
12285
 
12286
        * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
12287
        vector modes.
12288
 
12289
2008-07-30  Rafael Ávila de Espíndola  
12290
 
12291
        * final.c (call_from_call_insn): New.
12292
        (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
12293
 
12294
2008-07-30  Paolo Bonzini  
12295
 
12296
        * configure.ac: Substitute ADA_CFLAGS.
12297
        * configure: Regenerate.
12298
        * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
12299
        * Makefile.in: Remove mention of X_* variables.
12300
        * config/pa/x-ada-hpux10: Remove.
12301
        * config/pa/x-ada: Remove.
12302
 
12303
        * doc/fragments.texi: Update.
12304
 
12305
2008-07-30  Olivier Hainque  
12306
 
12307
        * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
12308
        * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
12309
        __dso_handle explicitly here.
12310
 
12311
2008-07-30  Manuel Lopez-Ibanez  
12312
 
12313
        PR 34389
12314
        * c-typeck.c (build_binary_op): Encapsulate code into...
12315
        * c-common.c (shorten_binary_op): ...this new function.
12316
        (conversion_warning): Use the new function. Handle non-negative
12317
        constant in bitwise-and.
12318
        * c-common.h (shorten_binary_op): Declare.
12319
 
12320
2008-07-30  Olivier Hainque  
12321
 
12322
        * scan.c (make_sstring_space): Add explicit conversions of
12323
        allocator's return value.
12324
        * fix-header.c (recognized_function): Likewise.
12325
 
12326
2008-07-30  Ralf Wildenhues  
12327
 
12328
        * doc/cpp.texi: Update to GFDL 1.2.
12329
        * doc/gcc.texi: Do not list GPL as Invariant Section.
12330
        * doc/gccint.texi: Likewise.  Update copyright years.
12331
        * doc/install.texi: Update copyright years.
12332
 
12333
2008-07-30  Alan Modra  
12334
 
12335
        PR target/36955
12336
        * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
12337
        a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
12338
 
12339
2008-07-29  Jan Hubicka  
12340
 
12341
        * c-decl.c (merge_decls): Do not handle DECL_INLINE.
12342
        (grokdeclarator): Likewise.
12343
        * langhooks.c (lhd_warn_unused_global_decl): Use
12344
        DECL_DECLARED_INLINE_P.
12345
        * print-tree.c (print_node): Remove DECL_INLINE check.
12346
 
12347
2008-07-29  Richard Guenther  
12348
 
12349
        PR tree-optimization/36945
12350
        * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
12351
        * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
12352
        Record invariant addresses un-decomposed.
12353
        (copy_reference_ops_from_call): Record reference call
12354
        arguments properly.  Simplify.
12355
        * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
12356
        helper split out from ...
12357
        (create_component_ref_by_pieces): ... here.  Simplify.
12358
        Prepare for recursive invocation for call arguments.
12359
        (create_expression_by_pieces): Adjust call to
12360
        create_component_ref_by_pieces.
12361
        (compute_avail): Process operand 2 of reference ops.
12362
 
12363
2008-07-29  Richard Guenther  
12364
 
12365
        * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
12366
 
12367
2008-07-29  Jakub Jelinek  
12368
 
12369
        * c-format.c (check_format_types): Revert unwanted checkin.
12370
 
12371
2008-07-29  Jan Hubicka  
12372
 
12373
        * flags.h (flag_really_no_inline): Remove.
12374
        * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
12375
        * toplev.c (flag_really_no_inline): Remove.
12376
        * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
12377
        * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
12378
        (cgraph_decide_inlining_incrementally): Likewise.
12379
        (compute_inline_parameters): Likewise.
12380
        * opts.c (decode_options): Simplify.
12381
        * c-opts.c (c_common_post_options): Do not set flag_no_inline.
12382
        * common.opt (finline): Initialize to 1.
12383
        * tree-inline.c (inlinable_function_p): Check flag_no_inline.
12384
 
12385
2008-07-29  Jan Hubicka  
12386
 
12387
        * predict.c (always_optimize_for_size_p): New function.
12388
        (optimize_bb_for_size_p, optimize_bb_for_speed_p,
12389
        optimize_edge_for_size_p, optimize_edge_for_speed_p,
12390
        optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
12391
        functions.
12392
        (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
12393
        * function.c (prepare_function_start): Set default profile.
12394
        * function.h (rtl_data): Add maybe_hot_insn_p.
12395
        * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
12396
        (construct_exit_block): Likewise.
12397
        (tree_expand_cfg): Likewise.
12398
        * basic-block.h
12399
        (optimize_bb_for_size_p, optimize_bb_for_speed_p,
12400
        optimize_edge_for_size_p, optimize_edge_for_speed_p,
12401
        optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
12402
        (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
12403
        Declare.
12404
 
12405
2008-07-29  Manuel Lopez-Ibanez  
12406
 
12407
        PR 34985
12408
        * c-decl.c (merge_decls): Merge USED flags.
12409
 
12410
2008-07-29  Kaz Kojima  
12411
 
12412
        * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
12413
        valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
12414
        next_stack, lab_false and lab_over trees.
12415
 
12416
2008-07-28  Richard Guenther  
12417
 
12418
        PR tree-optimization/36957
12419
        * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
12420
        (useless_type_conversion_p): Remove.
12421
        (types_compatible_p): Remove.
12422
        * gimple.h (tree_ssa_useless_type_conversion): Declare.
12423
        (useless_type_conversion_p): Declare.
12424
        (types_compatible_p): Declare.
12425
        (gimple_expr_type): Return the base type only if it is
12426
        trivially convertible to the subtype.
12427
 
12428
2008-07-28  Andreas Tobler  
12429
 
12430
        * configure.ac: Use the m4_do macro to concatenate the warnings into
12431
        one string in ACX_PROG_CC_WARNING_OPTS,
12432
        ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
12433
        ACX_PROG_CC_WARNINGS_ARE_ERRORS.
12434
        * configure: Regenerate.
12435
 
12436
2008-07-28  Richard Guenther  
12437
 
12438
        * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
12439
        (insert_fake_stores): Remove.
12440
        (realify_fake_stores): Likewise.
12441
        (execute_pre): Remove dead code.
12442
        * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
12443
        (find_func_aliases): Deal with it here instead.
12444
        Re-enable gcc_unreachable call.
12445
 
12446
2008-07-28  Richard Guenther  
12447
 
12448
        Merge from gimple-tuples-branch.
12449
 
12450
        * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
12451
        * gimple.def: New file.
12452
        * gsstruct.def: Likewise.
12453
        * gimple-iterator.c: Likewise.
12454
        * gimple-pretty-print.c: Likewise.
12455
        * tree-gimple.c: Removed.  Merged into ...
12456
        * gimple.c: ... here.  New file.
12457
        * tree-gimple.h: Removed.  Merged into ...
12458
        * gimple.h: ... here.  New file.
12459
 
12460
        * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
12461
        * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
12462
        --enable-checking=gimple flag.
12463
        * config.in: Likewise.
12464
        * configure: Regenerated.
12465
 
12466
        * tree-ssa-operands.h: Tuplified.
12467
        * tree-vrp.c: Likewise.
12468
        * tree-loop-linear.c: Likewise.
12469
        * tree-into-ssa.c: Likewise.
12470
        * tree-ssa-loop-im.c: Likewise.
12471
        * tree-dump.c: Likewise.
12472
        * tree-complex.c: Likewise.
12473
        * cgraphbuild.c: Likewise.
12474
        * tree-ssa-threadupdate.c: Likewise.
12475
        * tree-ssa-loop-niter.c: Likewise.
12476
        * tree-pretty-print.c: Likewise.
12477
        * tracer.c: Likewise.
12478
        * gengtype.c: Likewise.
12479
        * tree-loop-distribution.c: Likewise.
12480
        * tree-ssa-loop-unswitch.c: Likewise.
12481
        * cgraph.c: Likewise.
12482
        * cgraph.h: Likewise.
12483
        * tree-ssa-loop-manip.c: Likewise.
12484
        * value-prof.c: Likewise.
12485
        * tree-ssa-loop-ch.c: Likewise.
12486
        * tree-tailcall.c: Likewise.
12487
        * value-prof.h: Likewise.
12488
        * tree.c: Likewise.
12489
        * tree.h: Likewise.
12490
        * tree-pass.h: Likewise.
12491
        * ipa-cp.c: Likewise.
12492
        * tree-scalar-evolution.c: Likewise.
12493
        * tree-scalar-evolution.h: Likewise.
12494
        * target.h: Likewise.
12495
        * lambda-mat.c: Likewise.
12496
        * tree-phinodes.c: Likewise.
12497
        * diagnostic.h: Likewise.
12498
        * builtins.c: Likewise.
12499
        * tree-ssa-alias-warnings.c: Likewise.
12500
        * cfghooks.c: Likewise.
12501
        * fold-const.c: Likewise.
12502
        * cfghooks.h: Likewise.
12503
        * omp-low.c: Likewise.
12504
        * tree-ssa-dse.c: Likewise.
12505
        * ipa-reference.c: Likewise.
12506
        * tree-ssa-uncprop.c: Likewise.
12507
        * toplev.c: Likewise.
12508
        * tree-gimple.c: Likewise.
12509
        * tree-gimple.h: Likewise.
12510
        * tree-chrec.c: Likewise.
12511
        * tree-chrec.h: Likewise.
12512
        * tree-ssa-sccvn.c: Likewise.
12513
        * tree-ssa-sccvn.h: Likewise.
12514
        * cgraphunit.c: Likewise.
12515
        * tree-ssa-copyrename.c: Likewise.
12516
        * tree-ssa-ccp.c: Likewise.
12517
        * tree-ssa-loop-ivopts.c: Likewise.
12518
        * tree-nomudflap.c: Likewise.
12519
        * tree-call-cdce.c: Likewise.
12520
        * ipa-pure-const.c: Likewise.
12521
        * c-format.c: Likewise.
12522
        * tree-stdarg.c: Likewise.
12523
        * tree-ssa-math-opts.c: Likewise.
12524
        * tree-ssa-dom.c: Likewise.
12525
        * tree-nrv.c: Likewise.
12526
        * tree-ssa-propagate.c: Likewise.
12527
        * ipa-utils.c: Likewise.
12528
        * tree-ssa-propagate.h: Likewise.
12529
        * tree-ssa-alias.c: Likewise.
12530
        * gimple-low.c: Likewise.
12531
        * tree-ssa-sink.c: Likewise.
12532
        * ipa-inline.c: Likewise.
12533
        * c-semantics.c: Likewise.
12534
        * dwarf2out.c: Likewise.
12535
        * expr.c: Likewise.
12536
        * tree-ssa-loop-ivcanon.c: Likewise.
12537
        * predict.c: Likewise.
12538
        * tree-ssa-loop.c: Likewise.
12539
        * tree-parloops.c: Likewise.
12540
        * tree-ssa-address.c: Likewise.
12541
        * tree-ssa-ifcombine.c: Likewise.
12542
        * matrix-reorg.c: Likewise.
12543
        * c-decl.c: Likewise.
12544
        * tree-eh.c: Likewise.
12545
        * c-pretty-print.c: Likewise.
12546
        * lambda-trans.c: Likewise.
12547
        * function.c: Likewise.
12548
        * langhooks.c: Likewise.
12549
        * ebitmap.h: Likewise.
12550
        * tree-vectorizer.c: Likewise.
12551
        * function.h: Likewise.
12552
        * langhooks.h: Likewise.
12553
        * tree-vectorizer.h: Likewise.
12554
        * ipa-type-escape.c: Likewise.
12555
        * ipa-type-escape.h: Likewise.
12556
        * domwalk.c: Likewise.
12557
        * tree-if-conv.c: Likewise.
12558
        * profile.c: Likewise.
12559
        * domwalk.h: Likewise.
12560
        * tree-data-ref.c: Likewise.
12561
        * tree-data-ref.h: Likewise.
12562
        * tree-flow-inline.h: Likewise.
12563
        * tree-affine.c: Likewise.
12564
        * tree-vect-analyze.c: Likewise.
12565
        * c-typeck.c: Likewise.
12566
        * gimplify.c: Likewise.
12567
        * coretypes.h: Likewise.
12568
        * tree-ssa-phiopt.c: Likewise.
12569
        * calls.c: Likewise.
12570
        * tree-ssa-coalesce.c: Likewise.
12571
        * tree.def: Likewise.
12572
        * tree-dfa.c: Likewise.
12573
        * except.c: Likewise.
12574
        * except.h: Likewise.
12575
        * cfgexpand.c: Likewise.
12576
        * tree-cfgcleanup.c: Likewise.
12577
        * tree-ssa-pre.c: Likewise.
12578
        * tree-ssa-live.c: Likewise.
12579
        * tree-sra.c: Likewise.
12580
        * tree-ssa-live.h: Likewise.
12581
        * tree-predcom.c: Likewise.
12582
        * lambda.h: Likewise.
12583
        * tree-mudflap.c: Likewise.
12584
        * ipa-prop.c: Likewise.
12585
        * print-tree.c: Likewise.
12586
        * tree-ssa-copy.c: Likewise.
12587
        * ipa-prop.h: Likewise.
12588
        * tree-ssa-forwprop.c: Likewise.
12589
        * ggc-page.c: Likewise.
12590
        * c-omp.c: Likewise.
12591
        * tree-ssa-dce.c: Likewise.
12592
        * tree-vect-patterns.c: Likewise.
12593
        * tree-ssa-ter.c: Likewise.
12594
        * tree-nested.c: Likewise.
12595
        * tree-ssa.c: Likewise.
12596
        * lambda-code.c: Likewise.
12597
        * tree-ssa-loop-prefetch.c: Likewise.
12598
        * tree-inline.c: Likewise.
12599
        * tree-inline.h: Likewise.
12600
        * tree-iterator.c: Likewise.
12601
        * tree-optimize.c: Likewise.
12602
        * tree-ssa-phiprop.c: Likewise.
12603
        * tree-vect-transform.c: Likewise.
12604
        * tree-object-size.c: Likewise.
12605
        * tree-outof-ssa.c: Likewise.
12606
        * cfgloop.c: Likewise.
12607
        * system.h: Likewise.
12608
        * tree-profile.c: Likewise.
12609
        * cfgloop.h: Likewise.
12610
        * c-gimplify.c: Likewise.
12611
        * c-common.c: Likewise.
12612
        * tree-vect-generic.c: Likewise.
12613
        * tree-flow.h: Likewise.
12614
        * c-common.h: Likewise.
12615
        * basic-block.h: Likewise.
12616
        * tree-ssa-structalias.c: Likewise.
12617
        * tree-switch-conversion.c: Likewise.
12618
        * tree-ssa-structalias.h: Likewise.
12619
        * tree-cfg.c: Likewise.
12620
        * passes.c: Likewise.
12621
        * ipa-struct-reorg.c: Likewise.
12622
        * ipa-struct-reorg.h: Likewise.
12623
        * tree-ssa-reassoc.c: Likewise.
12624
        * cfgrtl.c: Likewise.
12625
        * varpool.c: Likewise.
12626
        * stmt.c: Likewise.
12627
        * tree-ssanames.c: Likewise.
12628
        * tree-ssa-threadedge.c: Likewise.
12629
        * langhooks-def.h: Likewise.
12630
        * tree-ssa-operands.c: Likewise.
12631
        * config/alpha/alpha.c: Likewise.
12632
        * config/frv/frv.c: Likewise.
12633
        * config/s390/s390.c: Likewise.
12634
        * config/m32c/m32c.c: Likewise.
12635
        * config/m32c/m32c-protos.h: Likewise.
12636
        * config/spu/spu.c: Likewise.
12637
        * config/sparc/sparc.c: Likewise.
12638
        * config/i386/i386.c: Likewise.
12639
        * config/sh/sh.c: Likewise.
12640
        * config/xtensa/xtensa.c: Likewise.
12641
        * config/stormy16/stormy16.c: Likewise.
12642
        * config/ia64/ia64.c: Likewise.
12643
        * config/rs6000/rs6000.c: Likewise.
12644
        * config/pa/pa.c: Likewise.
12645
        * config/mips/mips.c: Likewise.
12646
 
12647
2008-07-28  Simon Baldwin  
12648
 
12649
        * c-pragma.c (handle_pragma_message): New function.
12650
        (init_pragma): Register handle_pragma_message.
12651
        * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
12652
        documentation.
12653
 
12654
2008-07-27  Victor Kaplansky  
12655
 
12656
        PR tree-optimization/35252
12657
        * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
12658
        REALPART_EXPR to be considered as same load operation.
12659
 
12660
2008-07-27  Eric Botcazou  
12661
 
12662
        PR tree-optimization/36830
12663
        * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
12664
        (expressions_equal_p): Return false if only one operand is null.
12665
 
12666
2008-07-26  Gerald Pfeifer  
12667
 
12668
        * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
12669
        version requirements.
12670
 
12671
2008-07-26  Olivier Hainque  
12672
 
12673
        * collect2.c (symkind): New enum.  Symbol kinds we care about.
12674
        (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
12675
        code and head comment accordingly.
12676
        (scan_prog_file): Use symkind names instead of bare integers.
12677
 
12678
2008-07-25  Jan Hubicka  
12679
 
12680
        * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
12681
        DECL_INLINE.
12682
        * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
12683
        (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
12684
        * dojump.c (clear_pending_stack_adjust): Likewise.
12685
        * print-tree.c (print_node): Ignore DECL_INLINE.
12686
        * tree-inline.c (inlinable_function_p): Likewise.
12687
 
12688
2008-07-25  Michael Meissner  
12689
 
12690
        * doc/extend.texi (hot attribute): Document that the hot attribute
12691
        turns on -O3 for some ports.
12692
        (cold attribute): Document that the cold attribute turns on -Os
12693
        for some ports
12694
 
12695
        * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
12696
        reflect function specific option support.
12697
 
12698
        * target.h (struct target_option_hooks): Add fields to say whether
12699
        the cold attribute implies -Os and the hot attribute implies -O3.
12700
 
12701
        * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
12702
        By default, do not turn on -Os for cold functions.
12703
        (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
12704
        not turn on -O3 for hot functions.
12705
 
12706
        * c-common.c (handle_hot_attribute): Use target hook to determine
12707
        if hot functions should enable -O3.
12708
        (handle_cold_attribute): Use target hook to determine if cold
12709
        functions should enable -Os.
12710
 
12711
        * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
12712
        (override_options): Move disable scheduling to
12713
        optimization_options.
12714
        (optimization_options): Disable scheduling here, not
12715
        override_options.
12716
        (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12717
        (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12718
 
12719
        * config/ia64/ia64.c (ia64_override_options): Move setting
12720
        scheduling flags to ia64_optimization_options.
12721
        (ia64_optimization_options): Disable scheduling options here, and
12722
        not in ia64_override_options.
12723
        (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12724
        (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12725
 
12726
2008-07-25  H.J. Lu  
12727
 
12728
        PR target/36936
12729
        * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
12730
 
12731
2008-07-25  Martin Jambor  
12732
 
12733
        PR tree-optimization/36926
12734
        * ipa-prop.c (ipa_analyze_call_uses): Call
12735
        ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
12736
 
12737
2008-07-25  Joseph Myers  
12738
 
12739
        * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
12740
        movv2si_internal): Add mem = reg alternative.
12741
 
12742
2008-07-25  Andreas Tobler  
12743
 
12744
        PR bootstrap/36918
12745
        * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
12746
        DEFAULT_PCC_STRUCT_RETURN to 127.
12747
 
12748
2008-07-24  Jan Hubicka  
12749
 
12750
        * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
12751
        (build_cgraph_edges): Likewise.
12752
        * cgraph.c (cgraph_node): Do not update assembler hash.
12753
        (cgraph_remove_node): Drop non-unit-at-a-time code.
12754
        * tree-pass.h (pass_O0_always_inline): Remove.
12755
        * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
12756
        * toplev.c (process_options): Flag unit-at-a-time does not imply
12757
        no section anchors.
12758
        * cgraphunit.c: Update comments.
12759
        (decide_is_function_needed): Drop non-unit-at-a-time mode.
12760
        (cgraph_assemble_pending_functions): Remove.
12761
        (cgraph_reset_node): Drop non-unit-at-a-time code.
12762
        (cgraph_finalize_function): Likewise.
12763
        (cgraph_analyze_function): Likewise.
12764
        (cgraph_finalize_compilation_unit): Likewise.
12765
        (cgraph_expand_function): Likewise.
12766
        (cgraph_optimize): Likesise.
12767
        (save_inline_function_body): Likewise.
12768
        * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
12769
        * tree-ssa-alias.c (maybe_be_aliased): Likewise.
12770
        * ipa-inline.c: Update comments.
12771
        (enum inlining_mode): remove INLINE_SPEED.
12772
        (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
12773
        (cgraph_mark_inline_edge): Likewise.
12774
        (try_inline): Likewise.
12775
        (cgraph_decide_inlining_incrementally): Likewise.
12776
        (cgraph_gate_inlining): Remove.
12777
        (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
12778
        (cgraph_gate_early_inlining): Likewise.
12779
        (gate_inline_passes): Remove.
12780
        (pass_inline_parameters, pass_ipa_inline): Remove gates.
12781
        (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
12782
        pass_O0_always_inline): Remove.
12783
        * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
12784
        * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
12785
        * opts.c (no_unit_at_a_time_default): Remove.
12786
        (decode_options): Remove flag_unit_at_a_time reset and warning.
12787
        * opts.h (no_unit_at_a_time_default): Remove.
12788
        * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
12789
        early in GNU dialect.
12790
        (merge_decls): Update comment; drop unit-at-a-time check.
12791
        (finish_decl): Likewise.
12792
        (grok_declaration): Remove flag_inline_trees code.
12793
        (finish_functions): Return on function returning non-void on all
12794
        statics.
12795
        * ipa-tye-escape.c (gate_type_escape_vars): Remove.
12796
        * cfgexpand.c (expand_one_static_var): Remove.
12797
        (expand_one_var): Remove expand_one_static_var call.
12798
        (expand_used_vars_for_block): Remove flag_unit_a_time check.
12799
        * c-opts.c (c_common_post_options): Remove flag_inline_trees code
12800
        and flag_unit_at_a-time compatibility checks.
12801
        * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
12802
        * tree-inline.c (flag_inline_trees): Remove.
12803
        (inlinable_function_p): Don't check it.
12804
        (expand_call_inline): Remove non-unit-at-a-time code.
12805
        * tree-inline.h (flag_inline_trees): Remove.
12806
        * tree-optimize.c (execute_early_local_optimizations): Remove
12807
        unit-at-a-time checks.
12808
        (tree_rest_of_compilation): Likewise.
12809
        * combine.c (setup_incoming_promotions): Likewise.
12810
        * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
12811
        * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
12812
        * passes.c (pass_inline_parameters): Update comments; remove
12813
        O0_alwaysinline pass.
12814
        (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
12815
        (execute_one_pass): Likewise.
12816
        * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
12817
        (ix86_function_sseregparm): Likewise.
12818
        * arm.c (arm_function_in_section_p): Likewise.
12819
        * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
12820
        * varpool.c: Update comments.
12821
        (decide_is_variable_needed): Remove unit-at-a-time checks.
12822
        (varpool_finalize_decl): Likewise.
12823
 
12824
2008-07-24  Kaz Kojima  
12825
 
12826
        * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
12827
        to 2 instead of -1.
12828
        (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
12829
 
12830
2008-07-24  Kai Tietz  
12831
 
12832
        * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
12833
        imp symbol extension.
12834
 
12835
        2008-07-23  Ian Lance Taylor  
12836
 
12837
        * tree-vrp.c (infer_value_range): Ignore asm statements when
12838
        looking for memory accesses for -fdelete-null-pointer-checks.
12839
 
12840
2008-07-24  Ben Elliston  
12841
 
12842
        * config/spu/spu-c.c (__vector_keyword): New variable.
12843
        (vector_keyword): Likewise.
12844
        (spu_categorize_keyword): New function.
12845
        (spu_macro_to_expand): Likewise.
12846
        (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
12847
        compiling an ISO C dialect.
12848
 
12849
2008-07-24  Ben Elliston  
12850
 
12851
        * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
12852
        conventional usage.
12853
 
12854
2008-07-23  Aaron W. LaFramboise  
12855
 
12856
        * configure: Regenerate.
12857
        * configure.ac: Require texinfo 4.7.
12858
        * doc/install.texi: Document texinfo 4.7 requirement.
12859
 
12860
2008-07-23  Martin Jambor  
12861
 
12862
        * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
12863
        rather than for DECL_SAVED_TREE.
12864
        * ipa-prop.c: Include diagnostic.h.
12865
        (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
12866
        thoroughly.
12867
        (ipa_detect_param_modifications): Function rewritten from scratch.
12868
        (ipa_compute_jump_functions): Changed accesses to modification flags.
12869
        (ipa_free_node_params_substructures): Update flags destruction.
12870
        (ipa_node_duplication_hook): Update flags duplication.
12871
        (ipa_print_all_params_modified): Updated flag access.
12872
        * ipa-prop.h (struct ipa_param_flags): New structure.
12873
        (struct ipa_node_params): New field modification_analysis_done,
12874
        modified_flags changed into param_flags.
12875
        (ipa_is_ith_param_modified): Changed to use new flags.
12876
        * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
12877
 
12878
        * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
12879
        ipa-cp.c and split into two functions.
12880
        (ipa_print_node_jump_functions): New function.
12881
        (compute_scalar_jump_functions): New function.
12882
        (type_like_member_ptr_p): New function.
12883
        (compute_pass_through_member_ptrs): New function.
12884
        (fill_member_ptr_cst_jump_function): New function.
12885
        (determine_cst_member_ptr): New function.
12886
        (compute_cst_member_ptr_arguments): New function.
12887
        (ipa_compute_jump_functions): Complete rewrite.
12888
        * ipa-prop.h (enum jump_func_type): Make explicit that we depend
12889
        on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
12890
        (struct ipa_member_ptr_cst): New structure.
12891
        (union jump_func_value): New field member_cst.
12892
        * ipa-cp.c (ipcp_lat_is_insertable): New function.
12893
        (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
12894
        jump function types.
12895
        (ipcp_print_all_lattices): Slight fprintf rearrangement.
12896
        (ipcp_print_all_structures): Call ipa_print_all_jump_functions
12897
        instead of ipcp_print_all_jump_functions.
12898
        (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
12899
        only for replacable scalars.
12900
 
12901
        * doc/invoke.texi (Optimize options): Add description of
12902
        -findirect-inlining.
12903
        * common.opt (flag_indirect_inlining): New flag.
12904
        * opts.c (decode_options): Set flag_indirect_inlining when
12905
        optimize >= 3.
12906
 
12907
        * ipa-inline.c: Include ipa-prop.h.
12908
        (inline_indirect_intraprocedural_analysis): New function.
12909
        (inline_generate_summary): Allocate parameter and argument info
12910
        structures, call inline_indirect_intraprocedural_analysis on each
12911
        node when doing indirect inlining and deallocate indirect inlining
12912
        data structures in the end.
12913
        * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
12914
        (free_all_ipa_structures_after_iinln): New function.
12915
        (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
12916
        done.
12917
        * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
12918
 
12919
        * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
12920
        (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
12921
        of computing the frequency separately.
12922
        (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
12923
        of computing the frequency separately.
12924
        * ipa-cp.c (ipcp_print_all_structures): Replace a call to
12925
        ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
12926
        * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
12927
        (ipa_get_stmt_member_ptr_load_param): New function.
12928
        (ipa_is_ssa_with_stmt_def): New function.
12929
        (ipa_note_param_call): New function.
12930
        (ipa_analyze_call_uses): New function.
12931
        (ipa_analyze_stmt_uses): New function.
12932
        (ipa_analyze_params_uses): New function.
12933
        (ipa_free_node_params_substructures): Also free the param_calls linked
12934
        list.
12935
        (ipa_node_duplication_hook): Also duplicate the param_calls
12936
        linked list.
12937
        (ipa_print_node_param_flags): New function.
12938
        (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
12939
        (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
12940
        * ipa-prop.h (struct ipa_param_flags): New field called.
12941
        (struct ipa_param_call_note): New structure.
12942
        (struct ipa_node_params): New fields param_calls and
12943
        uses_analysis_done.
12944
        (ipa_is_ith_param_called): New function.
12945
        * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
12946
        ipa_analyze_params_uses and dump parameter flags.
12947
 
12948
        * ipa-inline.c (cgraph_decide_recursive_inlining): Call
12949
        ipa_propagate_indirect_call_infos if performing indirect inlining,
12950
        pass a new parameter new_edges to it.
12951
        (add_new_edges_to_heap): New fucntion.
12952
        (cgraph_decide_inlining_of_small_functions): New vector
12953
        new_indirect_edges for newly found indirect edges , call
12954
        ipa_propagate_indirect_call_infos after inlining.
12955
        (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
12956
        inlining if performing indirect inlining.  Call
12957
        free_all_ipa_structures_after_iinln when doing so too.
12958
        (inline_generate_summary): Do not call
12959
        free_all_ipa_structures_after_iinln here.
12960
        * ipa-prop.c (update_jump_functions_after_inlining): New function.
12961
        (print_edge_addition_message): New function.
12962
        (update_call_notes_after_inlining): New function.
12963
        (propagate_info_to_inlined_callees): New function.
12964
        (ipa_propagate_indirect_call_infos): New function.
12965
        * ipa-prop.h: Include cgraph.h
12966
        (struct ipa_param_call_note): Fields reordered, new field processed.
12967
        * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
12968
        flag indirect_call.
12969
        * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
12970
        rediscovered call statements.
12971
        * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
12972
        (dump_cgraph_node): Dump also the indirect_call flag.
12973
        (cgraph_clone_edge): Copy also the indirect_call flag.
12974
        * tree-inline.c (copy_bb): Do not check for fndecls from call
12975
        expressions, check for edge availability when moving clones.
12976
        (get_indirect_callee_fndecl): New function.
12977
        (expand_call_inline): If callee declaration is not apprent from
12978
        the statement, try calling get_indirect_callee_fndecl.  Do not
12979
        issue warnings or call sorry when not inlinings an indirect edge.
12980
        * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
12981
 
12982
        * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
12983
        bit more frandly to matching.
12984
        * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
12985
        * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
12986
        * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
12987
 
12988
2008-07-23  Michael Meissner  
12989
 
12990
        PR 36907
12991
        * opth-gen.awk: Suppress function specific features when building
12992
        target libraries.
12993
        * optc-gen.awk: Ditto.
12994
 
12995
2008-07-23  Manuel Lopez-Ibanez  
12996
 
12997
        PR 35058
12998
        * diagnostic.c (pedwarn): Add opt parameter.
12999
        (pedwarn0): New.
13000
        * c-tree.h (pedwarn_init): Add opt parameter.
13001
        (pedwarn_c90): Likewise.
13002
        (pedwarn_c99): Likewise.
13003
        * c-errors.c (pedwarn_c99): Likewise.
13004
        (pedwarn_c90): Likewise.
13005
        * toplev.h (pedwarn): Update declaration.
13006
        (pedwarn0): Declare.
13007
        * c-lex.c: All calls to pedwarn changed.
13008
        * builtins.c: All calls to pedwarn changed.
13009
        * toplev.c: All calls to pedwarn changed.
13010
        * c-decl.c: All calls to pedwarn changed.
13011
        * c-typeck.c: All calls to pedwarn changed.
13012
        * c-common.c: All calls to pedwarn changed.
13013
        * c-parser.c: All calls to pedwarn changed.
13014
 
13015
2008-07-23  Michael Meissner  
13016
            Karthik Kumar  
13017
 
13018
        * attribs.c (file scope): Include c-common.h.
13019
        (decl_attributes): Add support for #pragma GCC optimize and
13020
        #pragma GCC option.
13021
 
13022
        * targhooks.c (default_can_inline_p): New function that is the
13023
        default for the TARGET_CAN_INLINE_P target hook.
13024
 
13025
        * targhooks.h (default_can_inline_p): Add declaration.
13026
 
13027
        * tree.c (cl_optimization_node): New static tree for building
13028
        OPTIMIZATION_NODE tree.
13029
        (cl_target_option_node): New static tree for building
13030
        TARGET_OPTION_NODE tree.
13031
        (cl_option_hash_table): New hash table for hashing
13032
        OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
13033
        (cl_option_hash_hash): New function to provide the hash value for
13034
        OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
13035
        (cl_option_hash_eq): New function to provide an equality test for
13036
        OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
13037
        (tree_code_size): Add support for OPTIMIZATION_NODE and
13038
        TARGET_OPTION_NODE trees.
13039
        (tree_code_structure): Add support for OPTIMIZATION_NODE and
13040
        TARGET_OPTION_NODE trees.
13041
        (build_optimization_node): Build a tree that has all of the
13042
        current optimization options.
13043
        (build_target_option_node): Build a tree that has the target
13044
        options that might be changed on a per function basis.
13045
 
13046
        * tree.h (file scope): Include options.h.
13047
        (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
13048
        (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
13049
        (TREE_OPTIMIZATION): Ditto.
13050
        (TREE_TARGET_SPECIFIC): Ditto.
13051
        (struct tree_function_decl): Add fields for remembering the
13052
        current optimization options and target specific options.
13053
        (struct tree_optimization_option): New tree variant that remembers
13054
        the optimization options.
13055
        (struct tree_target_option): New tree variant that remembers the
13056
        target specific flags that might change for compiling a particular
13057
        function.
13058
        (union tree_node): Include tree_optimization_option and
13059
        tree_target_option fields.
13060
        (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
13061
        TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
13062
        TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
13063
        TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
13064
        TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
13065
        optimization and target options.
13066
        (optimization_default_node): New macro to refer to global_trees
13067
        field.
13068
        (optimization_current_node): Ditto.
13069
        (optimization_cold_node): Ditto.
13070
        (optimization_hot_node): Ditto.
13071
        (target_option_default_node): Ditto.
13072
        (target_option_current_node): Ditto.
13073
        (current_option_pragma): Ditto.
13074
        (current_optimize_pragma): Ditto.
13075
 
13076
        * target.h (struct gcc_target): Add valid_option_attribute_p,
13077
        target_option_save, target_option_restore, target_option_print,
13078
        target_option_pragma_parse, and can_inline_p hooks.
13079
 
13080
        * toplev.h (parse_optimize_options): Add declaration.
13081
        (fast_math_flags_struct_set_p): Ditto.
13082
 
13083
        * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
13084
        adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
13085
        optimize is used.
13086
 
13087
        * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
13088
        tree_can_inline_p hook to see if one function can inline another.
13089
        (cgraph_decide_inlining): Ditto.
13090
        (cgraph_decide_inlining_incrementally): Ditto.
13091
 
13092
        * opts.c (decode_options): Add support for running multiple times
13093
        to allow functions with different target or optimization options
13094
        than was specified on the command line.
13095
        (fast_math_flags_struct_set_p): New function that is similar to
13096
        fast_math_flags_set_p, except it uses the values in the
13097
        cl_optimization structure instead of global variables.
13098
 
13099
        * optc-gen.awk: Add support for TargetSave to allow a back end to
13100
        declare new fields that need to be saved when using function
13101
        specific options.  Include flags.h and target.h in the options.c
13102
        source.  Add support for Save to indicate which options can be set
13103
        for individual functions.  Generate cl_optimize_save,
13104
        cl_optimize_restore, cl_optimize_print, cl_target_option_save,
13105
        cl_target_option_restore, cl_target_option_print functions to
13106
        allow functions to use different optimization or target options.
13107
 
13108
        * opt-functions.awk (var_type_struct): Return the type used for
13109
        storing the field in a structure.
13110
 
13111
        * opth-gen.awk: Add support for TargetSave to allow a back end to
13112
        declare new fields that need to be saved when using function
13113
        specific options.  Add support for Save to indicate which options
13114
        can be set for individual functions.  Only generate one extern for
13115
        Mask fields.  Generate cl_optimization and cl_target_option
13116
        structures to remember optimization and target options.
13117
 
13118
        * treestruct.def (TS_OPTIMIZATION): Add support for garbage
13119
        collecting new tree nodes.
13120
        (TS_TARGET_OPTION): Ditto.
13121
 
13122
        * c-decl.c (merge_decls): Merge function specific target and
13123
        optimization options.
13124
 
13125
        * function.c (invoke_set_current_function_hook): If the function
13126
        uses different optimization options, change the global variables
13127
        to reflect this.
13128
 
13129
        * coretypes.h (struct cl_optimization): Add forward reference.
13130
        (struct cl_target_option): Ditto.
13131
 
13132
        * c-pragma.c (option_stack): New static vector to remember the
13133
        current #pragma GCC option stack.
13134
        (handle_pragma_option): New function to support #pragma GCC option
13135
        to change target options.
13136
        (optimize_stack): New static vector to remember the current
13137
        #pragma GCC optimize stack.
13138
        (handle_pragma_optimize): New function to support #pragma GCC
13139
        optimize to change optimization options.
13140
        (init_pragma): Add support for #pragma GCC optimize and #pragma
13141
        GCC option.
13142
 
13143
        * tree.def (OPTIMIZATION_NODE): New tree code for remembering
13144
        optimization options.
13145
        (TARGET_OPTION_NODE): New tree code for remembering certain target
13146
        options.
13147
 
13148
        * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
13149
        TARGET_OPTION_NODE trees.
13150
 
13151
        * common.opt (-O): Add Optimization flag.
13152
        (-Os): Ditto.
13153
        (-fmath-errno): Ditto.
13154
        (-falign-functions): Add UInteger flag to make sure flag gets full
13155
        int in cl_optimization structure.
13156
        (-falign-jumps): Ditto.
13157
        (-falign-labels): Ditto.
13158
        (-falign-loops): Ditto.
13159
        (-fsched-stalled-insns): Ditto.
13160
        (-fsched-stalled-insns-dep): Ditto.
13161
 
13162
        * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
13163
        definition.
13164
        (TARGET_OPTION_SAVE): Ditto.
13165
        (TARGET_OPTION_RESTORE): Ditto.
13166
        (TARGET_OPTION_PRINT): Ditto.
13167
        (TARGET_OPTION_PRAGMA_PARSE): Ditto.
13168
        (TARGET_CAN_INLINE_P): Ditto.
13169
        (TARGET_INITIALIZER): Add new hooks.
13170
 
13171
        * tree-inline.c (tree_can_inline_p): New function to determine
13172
        whether one function can inline another.  Check if the functions
13173
        use compatible optimization options, and also call the backend
13174
        can_inline_p hook.
13175
 
13176
        * tree-inline.h (tree_can_inline_p): Add declaration.
13177
 
13178
        * c-common.c (c_common_attribute): Add support for option and
13179
        optimize attributes.
13180
        (handle_option_attribute): Add support for the option attribute to
13181
        allow the user to specify different target options for compiling a
13182
        specific function.
13183
        (handle_optimize_attribute): Add support for the optimize
13184
        attribute to allow the user to specify different optimization
13185
        options for compiling a specific function.
13186
        (handle_hot_attribute): Turn on -O3 optimization for this one
13187
        function if it isn't the default optimization level.
13188
        (handle_cold_attribute): Turn on -Os optimization for this one
13189
        function if it insn't the default optimization.
13190
        (const_char_p): New const char * typedef.
13191
        (optimize_args): New static vector to remember the optimization
13192
        arguments.
13193
        (parse_optimize_options): New function to set up the optimization
13194
        arguments from either the optimize attribute or #pragma GCC optimize.
13195
 
13196
        * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
13197
        (builtin_define_std): Ditto.
13198
 
13199
        * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
13200
        Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
13201
        (x86_64-*-*): Ditto.
13202
 
13203
        * Makefile.in (TREE_H): Add options.h.
13204
        (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
13205
 
13206
        * doc/extend.texi (option attribute): Document new attribute.
13207
        (optimize attribute): Ditto.
13208
        (hot attribute): Document hot attribute sets -O3.
13209
        (cold attribute): Document cold attribute sets -Os.
13210
        (#pragma GCC option): Document new pragma.
13211
        (#pragma GCC optimize): Ditto.
13212
 
13213
        * doc/options.texi (TargetSave): Document TargetSave syntax.
13214
        (UInteger): Document UInteger must be used for certain flags.
13215
        (Save): Document Save option to create target specific options
13216
        that can be saved/restored on a function specific context.
13217
 
13218
        * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
13219
        (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
13220
 
13221
        * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
13222
        (TARGET_OPTION_SAVE): Ditto.
13223
        (TARGET_OPTION_RESTORE): Ditto.
13224
        (TARGET_OPTION_PRINT): Ditto.
13225
        (TARGET_OPTION_PRAGMA_PARSE): Ditto.
13226
        (TARGET_CAN_INLINE_P): Ditto.
13227
 
13228
        * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
13229
        -mfpmath=sse,387.
13230
        (-mfpmath=both): Ditto.
13231
 
13232
2008-07-23  Michael Meissner  
13233
            Karthik Kumar  
13234
 
13235
        * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
13236
        (TARGET_POPCNT): Ditto.
13237
        (TARGET_SAHF): Ditto.
13238
        (TARGET_AES): Ditto.
13239
        (TARGET_PCLMUL): Ditto.
13240
        (TARGET_CMPXCHG16B): Ditto.
13241
        (TARGET_RECIP): Move switch into target_flags.
13242
        (TARGET_FUSED_MADD): Ditto.
13243
        (ix86_arch_features): Make an unsigned char type.
13244
        (ix86_tune_features): Ditto.
13245
        (OVERRIDE_OPTIONS): Add bool argument to override_options call.
13246
        (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
13247
        (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
13248
 
13249
        * config/i386/i386.opt (arch): New TargetSave field to define
13250
        fields that need to be saved for function specific option support.
13251
        (tune): Ditto.
13252
        (fpmath): Ditto.
13253
        (branch_cost): Ditto.
13254
        (ix86_isa_flags_explicit): Ditto.
13255
        (tune_defaulted): Ditto.
13256
        (arch_specified): Ditto.
13257
        (-m128-long-double): Add Save flag to save option for target
13258
        specific option support.
13259
        (-m80387): Ditto.
13260
        (-maccumulate-outgoing-args): Ditto.
13261
        (-malign-double): Ditto.
13262
        (-malign-stringops): Ditto.
13263
        (-mfancy-math-387): Ditto.
13264
        (-mhard-float): Ditto.
13265
        (-mieee-fp): Ditto.
13266
        (-minline-all-stringops): Ditto.
13267
        (-minline-stringops-dynamically): Ditto.
13268
        (-mms-bitfields): Ditto.
13269
        (-mno-align-stringops): Ditto.
13270
        (-mno-fancy-math-387): Ditto.
13271
        (-mno-push-args): Ditto.
13272
        (-mno-red-zone): Ditto.
13273
        (-mpush-args): Ditto.
13274
        (-mred-zone): Ditto.
13275
        (-mrtd): Ditto.
13276
        (-msseregparm): Ditto.
13277
        (-mstack-arg-probe): Ditto.
13278
        (-m32): Ditto.
13279
        (-m64): Ditto.
13280
        (-mmmx): Ditto.
13281
        (-m3dnow): Ditto.
13282
        (-m3dnowa): Ditto.
13283
        (-msse): Ditto.
13284
        (-msse2): Ditto.
13285
        (-msse3): Ditto.
13286
        (-msse4.1): Ditto.
13287
        (-msse4.2): Ditto.
13288
        (-msse4): Ditto.
13289
        (-mno-sse4): Ditto.
13290
        (-msse4a): Ditto.
13291
        (-msse5): Ditto.
13292
        (-mrecip): Move flag into target_flags.
13293
        (-mcld): Ditto.
13294
        (-mno-fused-madd): Ditto.
13295
        (-mfused-madd): Ditto.
13296
        (-mabm): Move flag into ix86_isa_flags.
13297
        (-mcx16): Ditto.
13298
        (-mpopcnt): Ditto.
13299
        (-msahf): Ditto.
13300
        (-maes): Ditto.
13301
        (-mpclmul): Ditto.
13302
 
13303
        * config/i386/i386-c.c: New file for #pragma support.
13304
        (ix86_target_macros_internal): New function to #define or #undef
13305
        target macros based when the user uses the #pragma GCC option to
13306
        change target options.
13307
        (ix86_pragma_option_parse): New function to add #pragma GCC option
13308
        support.
13309
        (ix86_target_macros): Move defining the target macros here from
13310
        TARGET_CPU_CPP_BUILTINS in i386.h.
13311
        (ix86_register_pragmas): Register the #pragma GCC option hook.  If
13312
        defined, initialize any subtarget #pragmas.
13313
 
13314
        * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
13315
        REGISTER_TARGET_PRAGMAS.
13316
 
13317
        * config/i386/t-i386: New file for x86 dependencies.
13318
        (i386.o): Make dependencies mirror the include files used.
13319
        (i386-c.o): New file, add dependencies.
13320
 
13321
        * config/i386/i386-protos.h (override_options): Add bool argument.
13322
        (ix86_valid_option_attribute_tree): Add declaration.
13323
        (ix86_target_macros): Ditto.
13324
        (ix86_register_macros): Ditto.
13325
 
13326
        * config/i386/i386.c (ix86_tune_features): Move initialization of
13327
        the target masks to initial_ix86_tune_features to allow functions
13328
        to have different target options.  Make type unsigned char,
13329
        instead of unsigned int.
13330
        (initial_ix86_tune_features): New static vector to hold processor
13331
        masks for the tune variables.
13332
        (ix86_arch_features): Move initialization of the target masks to
13333
        initial_ix86_arch_features to allow functions to have different
13334
        target options.  Make type unsigned char, instead of unsigned int.
13335
        (initial_ix86_arch_features): New static vector to hold processor
13336
        masks for the arch variables.
13337
        (enum ix86_function_specific_strings): New enum to describe the
13338
        string options used for attribute((option(...))).
13339
        (ix86_target_string): New function to return a string that
13340
        describes the target options.
13341
        (ix86_debug_options): New function to print the current options in
13342
        the debugger.
13343
        (ix86_function_specific_save): New function hook to save the
13344
        function specific global variables in the cl_target_option structure.
13345
        (ix86_function_specific_restore): New function hook to restore the
13346
        function specific variables from the cl_target_option structure to
13347
        the global variables.
13348
        (ix86_function_specific_print): New function hook to print the
13349
        target specific options in the cl_target_option structure.
13350
        (ix86_valid_option_attribute_p): New function hook to validate
13351
        attribute((option(...))) arguments.
13352
        (ix86_valid_option_attribute_tree): New function that is common
13353
        code between attribute((option(...))) and #pragma GCC option
13354
        support that parses the options and returns a tree holding the options.
13355
        (ix86_valid_option_attribute_inner_p): New helper function for
13356
        ix86_valid_option_attribute_tree.
13357
        (ix86_can_inline_p): New function hook to decide if one function
13358
        can inline another on a target specific basis.
13359
        (ix86_set_current_function); New function hook to switch target
13360
        options if the user used attribute((option(...))) or #pragma GCC
13361
        option.
13362
        (ix86_tune_defaulted): Move to static file scope from
13363
        override_options.
13364
        (ix86_arch_specified): Ditto.
13365
        (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
13366
        ix86_isa_flags.
13367
        (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
13368
        (OPTION_MASK_ISA_ABM_SET): Ditto.
13369
        (OPTION_MASK_ISA_POPCNT_SET): Ditto.
13370
        (OPTION_MASK_ISA_CX16_SET): Ditto.
13371
        (OPTION_MASK_ISA_SAHF_SET): Ditto.
13372
        (OPTION_MASK_ISA_AES_UNSET): Ditto.
13373
        (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
13374
        (OPTION_MASK_ISA_ABM_UNSET): Ditto.
13375
        (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
13376
        (OPTION_MASK_ISA_CX16_UNSET): Ditto.
13377
        (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
13378
        (struct ptt): Move to static file scope from override_options.
13379
        (processor_target_table): Ditto.
13380
        (cpu_names): Ditto.
13381
        (ix86_handle_option): Add support for options that are now isa options.
13382
        (override_options): Add support for declaring functions that
13383
        support different target options than were specified on the
13384
        command line.  Move struct ptt, processor_target_table, cpu_names,
13385
        ix86_tune_defaulted, ix86_arch_specified to static file scope.
13386
        Add bool argument.  Fix up error messages so the appropriate error
13387
        is given for either command line or attribute.
13388
        (ix86_previous_fndecl): New static to remember previous function
13389
        declaration to see if we need to change target options.
13390
        (ix86_builtins_isa): New array to record the ISA of each builtin
13391
        function.
13392
        (def_builtin): Always create the builtin function, even if the
13393
        current ISA doesn't support it.
13394
        (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
13395
        tests for those builtins.
13396
        (ix86_init_builtins): Remove TARGET_MMX test for calling
13397
        ix86_init_mmx_sse_builtins.
13398
        (ix86_expand_builtin): If the current ISA doesn't support a given
13399
        builtin, signal an error.
13400
        (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
13401
        (TARGET_SET_CURRENT_FUNCTION): Ditto.
13402
        (TARGET_OPTION_SAVE): Ditto.
13403
        (TARGET_OPTION_RESTORE): Ditto.
13404
        (TARGET_OPTION_PRINT): Ditto.
13405
        (TARGET_CAN_INLINE_P): Ditto.
13406
 
13407
2008-07-22  Rafael Ávila de Espíndola  
13408
 
13409
        * c-typeck.c (build_external_ref): Don't call assemble_external.
13410
        * final.c (output_operand): Call assemble_external.
13411
 
13412
2008-07-21  DJ Delorie  
13413
 
13414
        * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
13415
        (TARGET_HARD_REGNO_SCRATCH_OK): Define.
13416
 
13417
2008-07-21  Ulrich Weigand  
13418
 
13419
        * config/spu/spu.md ("div3"): Convert into expander, move
13420
        original insn and splitter contents into ...
13421
        ("*div3_fast"): ... this new pattern.  Enable only if
13422
        flag_unsafe_math_optimizations.  Add dummy scratch register.
13423
        ("*div3_adjusted"): New insn and splitter.  Enable only if
13424
        !flag_unsafe_math_optimizations.  Returns number with next
13425
        highest magnitude if this is still less or equal to the true
13426
        quotient in magnitude.
13427
 
13428
2008-07-21  Rafael Ávila de Espíndola  
13429
 
13430
        * Makefile.in: Replace toplev.h with TOPLEV_H.
13431
        * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
13432
        * c-lex.c (fe_file_change): Don't set in_system_header.
13433
        * c-parser.c (c_token): Remove in_system_header.
13434
        (c_lex_one_token): Don't set in_system_header.
13435
        (c_parser_set_source_position_from_token): Don't set in_system_header.
13436
        * diagnostic.c (diagnostic_report_diagnostic): Use location from
13437
        diagnostic_info.
13438
        (warning_at): New.
13439
        * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
13440
        * flags.h (in_system_header): Remove.
13441
        * function.c (saved_in_system_header): Remove.
13442
        (push_cfun): Don't set in_system_header.
13443
        (pop_cfun): Don't set in_system_header.
13444
        (push_struct_function): Don't set in_system_header.
13445
        * input.h (expanded_location): Add sysp.
13446
        (in_system_header_at): New.
13447
        (in_system_header): New.
13448
        * toplev.c (in_system_header): Remove.
13449
        * toplev.h: Include input.h
13450
        (warning_at): New.
13451
        * tree-cfg.c (execute_warn_function_return): Call warning_at.
13452
        * tree-ssa.c (warn_uninit): Call warning_at.
13453
        (warn_uninitialized_var): Update calls to warn_uninit.
13454
        (warn_uninitialized_phi): Update calls to warn_uninit.
13455
        * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
13456
        (expand_location): Initialize xloc.sysp.
13457
        * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
13458
        (tree_decl_with_vis): Remove in_system_header_flag.
13459
 
13460
2008-07-21  Andreas Krebbel  
13461
 
13462
        PR target/36822
13463
        * recog.c (asm_operand_ok): Change the order of the extra
13464
        memory constraint checks.
13465
 
13466
2008-07-20  Andrew Pinski  
13467
 
13468
        PR tree-opt/36879
13469
        * tree-switch-conversion.c (build_one_array): Call
13470
        varpool_mark_needed_node and varpool_finalize_decl
13471
        instead of assemble_variable.
13472
 
13473
2008-07-19  Jan Hubicka  
13474
 
13475
        * cgraph.c (cgraph_add_new_function): Do early local passes.
13476
        * tree-nrv.c (gate_pass_return_slot): New gate.
13477
        (pass_nrv): Add the gate.
13478
        * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
13479
        functions.
13480
        (coalesce_ssa_name): Coalesce SSA names.
13481
        * tree-ssa-live.c (remove_unused_locals): Be more conservative when
13482
        not optimizing so unused user vars remains visible.
13483
        * common.opt (flag_tree_ter): Always enable by default.
13484
        * tree-ssa-ter.c: Include flags.h
13485
        (is_replaceable_p): Check that locations match; when aliasing
13486
        is missing be conservative about loads.
13487
        * tree-optimize.c (gate_init_datastructures): Remove.
13488
        (pass_init_datastructures): New.
13489
        * passes.c: Reorder passes so we always go into SSA.
13490
 
13491
2008-07-19  Jan Hubicka  
13492
 
13493
        * doc/extend.texi (flatten attribute): Remove note about
13494
        unit-at-a-time.
13495
        * doc/invoke.texi (--combine): Likewise.
13496
        (-finline-functions-called-once): Update levels when enabled.
13497
        (-funit-at-a-time): Document new behaviour.
13498
        (-ftoplevel-reorder): Document that it is enabled -O0 and imply
13499
        -fno-section-anchors when disabled explicitly.
13500
        (inline params): They are not ignored now.
13501
        (precompiled headers): Remove unit-at-a-time as being incompatible.
13502
        * opts.c (decode_options): Handle unit-at-a-time as alias;
13503
        imply -fno-section-anchors when toplevel reorder is disabled
13504
        explicitly.
13505
        * common.opt (ftoplevel-reorder): Set default value to 2.
13506
        (funit-at-a-time): Set default value to 1.
13507
        * config/rs6000/rs6000.c (optimization_options): Set section anchors
13508
        to 2.
13509
 
13510
2008-07-19  Jan Hubicka  
13511
 
13512
        * builtins.c (expand_builtin_int_roundingfn,
13513
        expand_builtin_int_roundingfn_2): Do not take subtarget argument;
13514
        it is not useful.
13515
 
13516
2008-07-19  Richard Guenther  
13517
 
13518
        PR bootstrap/36864
13519
        * tree-ssa-sccvn.h (get_constant_value_id): Declare.
13520
        * tree-ssa-sccvn.c (get_constant_value_id): New function.
13521
        * tree-ssa-pre.c (get_expr_value_id): For newly created
13522
        constant value-ids make sure to add the expression to its
13523
        expression-set.
13524
 
13525
2008-07-19  Jakub Jelinek  
13526
 
13527
        PR middle-end/36877
13528
        * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
13529
        return value of the builtin is ignored.
13530
 
13531
2008-07-19  Olivier Hainque  
13532
 
13533
        * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
13534
        bits, a C conformant malloc implementation has to provide.
13535
        * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
13536
 
13537
2008-07-19  Joseph Myers  
13538
 
13539
        PR target/36780
13540
        PR target/36827
13541
        * reload.c (find_reloads_subreg_address): Only reload address if
13542
        reloaded == 0, not for reloaded != 1.
13543
 
13544
        Revert:
13545
        2008-07-16  Joseph Myers  
13546
        * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
13547
        (m32c_legitimate_address_p): Handle "++rii" addresses created by
13548
        m32c_legitimize_reload_address.
13549
 
13550
        2008-07-15  Kaz Kojima  
13551
        * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
13552
        (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
13553
 
13554
2008-07-19  Olivier Hainque  
13555
 
13556
        * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
13557
        argument, saying whether nested array are to be collapsed
13558
        into a single array type DIE with multiple subscripts.
13559
        (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
13560
        issues, centralize the nested array types collapsing control and
13561
        disable the transformation for Ada.
13562
 
13563
2008-07-18  Uros Bizjak  
13564
 
13565
        PR target/36786
13566
        * config/i386/i386.md (x86_64_shift_adj_1): Rename from
13567
        x86_64_shift_adj.
13568
        (x86_64_shift_adj_2): New expander.
13569
        (x86_64_shift_adj_3): Ditto.
13570
        * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
13571
        to split TImode operands.
13572
        (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
13573
        (ix86_split_lshr): Ditto.
13574
 
13575
2008-07-18  Kris Van Hees  
13576
 
13577
        * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
13578
        and __CHAR32_TYPE__.
13579
        * c-typeck.c (digest_init): Support char16_t and char32_t.
13580
        (set_nonincremental_init_from_string): Idem.
13581
 
13582
2008-07-18  H.J. Lu  
13583
 
13584
        PR middle-end/36859
13585
        * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
13586
        PREFERRED_STACK_BOUNDARY.
13587
        * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
13588
 
13589
2008-07-18  H.J. Lu  
13590
 
13591
        PR middle-end/36858
13592
        * function.c (locate_and_pad_parm): Cap boundary earlier.
13593
 
13594
2008-07-17  Julian Brown  
13595
 
13596
        * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
13597
        no-op for targets which don't use DLLs.
13598
 
13599
2008-07-17  Martin Jambor  
13600
 
13601
        * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
13602
        that nodes are relevant by examining the node->analyzed flag.
13603
        (ipcp_init_stage): Check which nodes are relevant, assert that the
13604
        relevant ones are also required.
13605
        (ipcp_propagate_stage): Check on the side arrays are properly
13606
        allocated.
13607
        (ipcp_print_all_jump_functions): Make sure not to touch any node
13608
        that is not analyzed or an edge that does not have a corresponding
13609
        entry in the on-the-side vectors.
13610
        (ipcp_function_scale_print): Likewise.
13611
        (ipcp_update_callgraph): Check that the node is relevant.
13612
        (ipcp_insert_stage): Check that the node is relevant.  Check there is
13613
        an info for every node and edge.
13614
        * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
13615
        (ipa_print_all_tree_maps): Likewise and a new variable info.
13616
        (ipa_print_all_params_modified): Likewise.
13617
        * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
13618
 
13619
2008-07-17  Roman Zippel  
13620
 
13621
        PR target/25343
13622
        * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
13623
 
13624
2008-07-17  Paolo Bonzini  
13625
 
13626
        PR rtl-optimization/36753
13627
        * fwprop.c (use_killed_between): Don't shortcut
13628
        single-definition global registers.
13629
 
13630
2008-07-16  Jan Hubicka  
13631
 
13632
        * cgraph.h (varpool_empty_needed_queue): Declare.
13633
        * cgraphunit.c (output_in_order): Mark all variables as needed;
13634
        empty the queue.
13635
        * varpool.c (varpool_assemble_node): Update debug queue.
13636
        (varpool_assemble_pending_decls): Don't do it here.
13637
        (varpool_empty_needed_queue):  New function.
13638
 
13639
2008-07-16  Kaveh R. Ghazi  
13640
 
13641
        * recog.c (peephole2_optimize): Fix formatting.
13642
 
13643
2008-07-16  Kaveh R. Ghazi  
13644
 
13645
        * c-pch.c (get_ident): Avoid C++ keywords.
13646
        * combine-stack-adj.c (single_set_for_csa): Likewise.
13647
        * final.c (asm_insn_count, final_scan_insn, alter_subreg,
13648
        output_asm_insn): Likewise.
13649
        * reload.c (push_secondary_reload, find_reusable_reload,
13650
        push_reload, combine_reloads, find_reloads,
13651
        debug_reload_to_stream): Likewise.
13652
        * reload.h (struct reload): Likewise.
13653
        * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
13654
        allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
13655
        emit_output_reload_insns): Likewise.
13656
        * targhooks.c (default_secondary_reload): Likewise.
13657
        * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
13658
 
13659
2008-07-16  Kaveh R. Ghazi  
13660
 
13661
        * recog.c (validate_change_1, validate_change,
13662
        validate_unshare_change, validate_replace_rtx_1, struct
13663
        funny_match, constrain_operands, peephole2_optimize): Avoid C++
13664
        keywords.
13665
        * reload.c (push_secondary_reload, secondary_reload_class,
13666
        scratch_reload_class, find_valid_class, find_reusable_reload,
13667
        push_reload, find_dummy_reload, find_reloads_address_1,
13668
        find_reloads_address_part, find_equiv_reg): Likewise.
13669
        * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
13670
        choose_reload_regs): Likewise.
13671
        * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
13672
        Likewise.
13673
        * rtlhooks.c (gen_lowpart_if_possible): Likewise.
13674
        * sched-ebb.c (add_deps_for_risky_insns): Likewise.
13675
        * sched-rgn.c (concat_INSN_LIST): Likewise.
13676
        * stor-layout.c (mode_for_size, mode_for_size_tree,
13677
        smallest_mode_for_size): Likewise.
13678
 
13679
2008-07-16  Kaveh R. Ghazi  
13680
 
13681
        * cfg.c (dump_reg_info): Avoid C++ keywords.
13682
        * dwarf2asm.c (dw2_force_const_mem,
13683
        dw2_asm_output_encoded_addr_rtx): Likewise.
13684
        * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
13685
        * expmed.c (expand_shift): Likewise.
13686
        * global.c (find_reg): Likewise.
13687
        * graph.c (draw_edge): Likewise.
13688
        * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
13689
        * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
13690
        widen_clz, widen_bswap, expand_parity, expand_unop,
13691
        emit_cmp_and_jump_insn_1): Likewise.
13692
        * postreload.c (reload_cse_simplify_operands): Likewise.
13693
        * ra.h (add_neighbor): Likewise.
13694
        * reg-stack.c (remove_regno_note, change_stack): Likewise.
13695
        * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
13696
        record_reg_classes, copy_cost, record_address_regs,
13697
        invalid_mode_change_p): Likewise.
13698
        * regrename.c (regrename_optimize, scan_rtx_reg,
13699
        dump_def_use_chain, find_oldest_value_reg,
13700
        replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
13701
 
13702
2008-07-16  David Edelsohn  
13703
 
13704
        * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
13705
        MASK_POWERPC64 for power4 in previous commit.
13706
 
13707
2008-07-16  Olivier Hainque  
13708
 
13709
        * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
13710
        instead of bare conversion to cast const-ness away.
13711
 
13712
2008-07-16  Anatoly Sokolov  
13713
 
13714
        * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
13715
        XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
13716
        * config/xtensa/xtensa.c (xtensa_function_value): New function.
13717
        (TARGET_FUNCTION_VALUE): Define.
13718
 
13719
2008-07-16  David Edelsohn  
13720
 
13721
        * config/rs6000/rs6000.c (processor_target_table): Add
13722
        MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
13723
 
13724
2008-07-16  Joseph Myers  
13725
 
13726
        PR target/36827
13727
        * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
13728
        (m32c_legitimate_address_p): Handle "++rii" addresses created by
13729
        m32c_legitimize_reload_address.
13730
 
13731
2008-07-16  Rafael Ávila de Espíndola  
13732
 
13733
        * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
13734
        DECL_IN_SYSTEM_HEADER in sync.
13735
 
13736
2008-07-15  Daniel Berlin  
13737
 
13738
        * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
13739
        * tree-ssa-pre.c (pre_expr_eq): Ditto
13740
        (get_constant_for_value_id): Take a type as an argument.
13741
        (fully_constant_expression): Pass in type.
13742
        (find_or_generate_expression): Short circuit constant case.
13743
        (create_expression_by_pieces): Remove special casing of
13744
        pointer_plus.
13745
        (do_regular_insertion): Short circuit constant case.
13746
        (do_partial_partial_insertion): Ditto.
13747
 
13748
2008-07-15  Kaz Kojima  
13749
 
13750
        PR target/36782
13751
        * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
13752
 
13753
2008-07-15  Bob Wilson  
13754
 
13755
        * config/xtensa/libgcc-xtensa.ver: New file.
13756
        * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
13757
 
13758
2008-07-15  Kaveh R. Ghazi  
13759
 
13760
        * df-problems.c (df_set_note): Avoid C++ keywords.
13761
        * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
13762
        * dse.c (record_store, remove_useless_values): Likewise.
13763
        * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
13764
        gen_reg_rtx_offset, operand_subword, change_address_1,
13765
        change_address, adjust_address_1, offset_address,
13766
        widen_memory_access, emit_copy_of_insn_after): Likewise.
13767
        * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
13768
        * fwprop.c (should_replace_address, propagate_rtx_1,
13769
        propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
13770
        Likewise.
13771
        * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
13772
        gcse_emit_move_after, update_ld_motion_stores): Likewise.
13773
        * lcm.c (compute_insert_delete, pre_edge_lcm,
13774
        compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
13775
        * lower-subreg.c (resolve_reg_notes): Likewise.
13776
        * mode-switching.c (optimize_mode_switching): Likewise.
13777
 
13778
2008-07-15  Kaveh R. Ghazi  
13779
 
13780
        * bt-load.c (add_btr_def, migrate_btr_def,
13781
        branch_target_load_optimize): Avoid C++ keywords.
13782
        * caller-save.c (insert_restore, insert_save, insert_one_insn):
13783
        Likewise.
13784
        * combine.c (subst, simplify_set, make_extraction,
13785
        make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
13786
        * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
13787
        fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
13788
 
13789
2008-07-15  Richard Guenther  
13790
 
13791
        PR middle-end/36369
13792
        * c-common.c (strict_aliasing_warning): Do not warn for
13793
        TYPE_REF_CAN_ALIAS_ALL pointers.
13794
        (c_common_get_alias_set): may_alias types are not special.
13795
        * tree.c (build_pointer_type_for_mode): Look up the may_alias
13796
        attribute and set can_ref_all accordingly.
13797
        (build_reference_type_for_mode): Likewise.
13798
        * doc/extend.texi (may_alias): Clarify.
13799
 
13800
2008-07-15  Kaz Kojima  
13801
 
13802
        PR target/36780
13803
        * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
13804
        (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
13805
 
13806
2008-07-15  Andrew Pinski  
13807
 
13808
        PR target/31568
13809
        * config/rs6000/rs6000.c (print_operand ): Don't use
13810
        gcc_assert, instead call output_operand_lossage.
13811
 
13812
2008-07-15  Kai Tietz  
13813
 
13814
        * builtins.c (std_canonical_va_list): Treat structure based
13815
        va_list types.
13816
 
13817
2008-07-15  Ben Elliston  
13818
 
13819
        * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
13820
 
13821
2008-07-14  Rafael Ávila de Espíndola  
13822
 
13823
        * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
13824
        is set.
13825
 
13826
2008-07-14  Jan Hubicka  
13827
 
13828
        * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
13829
        * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
13830
        fix predicates and constraints.
13831
        * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
13832
        * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
13833
 
13834
2008-07-14  Doug Kwan  
13835
 
13836
        * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
13837
        additional option file arm/eabi.opt.
13838
        * config/arm/eabi.h (File): New configuration file for EABI targets.
13839
        * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
13840
        SUBSUBTARGET_EXTRA_SPECS.
13841
        (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
13842
        * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
13843
        from STARTFILE_SPEC so that it can be referenced in an override.
13844
        (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
13845
        (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
13846
        can be referenced in an override.
13847
        (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
13848
        * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
13849
        so that it can be referenced in an override.
13850
        (LINK_SPEC): Use BPABI_LINK_SPEC.
13851
        * config/arm/eabi.opt (File): New.
13852
 
13853
2008-07-14  Ralf Wildenhues  
13854
 
13855
        * Makefile.in (TARGET_DEF_H): Add targhooks.h.
13856
        (FIXED_VALUE_H): New variable.
13857
        (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
13858
        input.h, fixed-value.h.
13859
        (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
13860
        (BASIC_BLOCK_H): Use $(BITMAP_H).
13861
        (FUNCTION_H): Add varray.h.
13862
        (IPA_REFERENCE_H): Use $(BITMAP_H).
13863
        (CGRAPH_H): Add $(BASIC_BLOCK_H).
13864
        (DF_H): Use $(BITMAP_H).
13865
        (GGC_H): Add statistics.h.
13866
        (INSN_ADDR_H): New.
13867
        (INSN_ATTR_H): Use it.
13868
        (SYSTEM_H): Add safe-ctype.h, filenames.h.
13869
        (INPUT_H): New.
13870
        (SYMTAB_H): Add $(OBSTACK_H).
13871
        (CPP_INTERNAL_H): New.
13872
        (TREE_DUMP_H): Add tree-pass.h.
13873
        (TREE_FLOW_H): Use $(BITMAP_H)
13874
        (PRETTY_PRINT_H): Use $(INPUT_H).
13875
        (EBITMAP_H): Rename from typo-ed EBIMAP_H.
13876
        (GSTAB_H): New.
13877
        (BITMAP_H): New.
13878
        (many object files): Fix lots of header dependencies throughout.
13879
 
13880
2008-07-14  Ralf Wildenhues  
13881
 
13882
        * Makefile.in (write_entries_to_file, write_entries_to_file_split):
13883
        New macros.
13884
        (s-gtyp-input): Use them to write tmp-gi.list.
13885
        (echo_to_gi.list): Remove.
13886
 
13887
2008-07-14  Richard Guenther  
13888
 
13889
        * tree-ssa-sccvn.c (pre_info): Remove.
13890
        (switch_to_PRE_table): Likewise.
13891
        (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
13892
        (set_hashtable_value_ids): Do not create value-ids for the
13893
        optimistic tables.
13894
        (run_scc_vn): Remove double test.  Remove bogus special-case
13895
        in value-number printing.
13896
        * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
13897
        * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
13898
        SSA_NAME_VALUE.
13899
        * tree-flow-inline.h (get_value_handle): Remove.
13900
        * tree-flow.h (get_value_handle): Remove.
13901
 
13902
2008-07-14  Martin Jambor  
13903
 
13904
        * tree-switch-conversion.c (gen_inbound_check): Make sure the type
13905
        in which we generate arithmetics is not a subrange.
13906
 
13907
2008-07-14  Martin Jambor  
13908
 
13909
        * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
13910
 
13911
2008-07-14  Richard Guenther  
13912
 
13913
        * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
13914
 
13915
2008-07-14  Andreas Krebbel  
13916
 
13917
        PR target/36745
13918
        * config/s390/s390.c (s390_secondary_reload): Add a secondary
13919
        reload for symbol refs moved to r0 with -fPIC.
13920
        (legitimize_pic_address): Use the target register as temporary
13921
        reg if possible.
13922
        (emit_symbolic_move): Adjust comment.
13923
        * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
13924
        New expanders.
13925
 
13926
2008-07-14  Ben Elliston  
13927
 
13928
        * c-common.h (C_CPP_HASHNODE): New macro.
13929
        * coretypes.h (struct cpp_token): Forward declare.
13930
        * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
13931
        the context-sensitive keyword method.
13932
        * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
13933
        __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
13934
        expand_bool_pixel): New.
13935
        (altivec_categorize_keyword): New function.
13936
        (init_vector_keywords): New function.
13937
        (rs6000_macro_to_expand): Likewise.
13938
        (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
13939
        compiling an ISO C dialect.
13940
 
13941
2008-07-13  Daniel Berlin  
13942
 
13943
        * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
13944
        (create_expression_by_pieces): Fix typo.
13945
        (do_regular_insertion): Use debug counter here too.
13946
 
13947
2008-07-14  Hans-Peter Nilsson  
13948
 
13949
        PR target/35492.
13950
        * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
13951
        CONST_OK_FOR_LETTER_P.  All port-local users changed.
13952
        (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
13953
        implement Kp matching power-of-two.
13954
        (CONSTRAINT_LEN): Define to match.
13955
        * config/cris/cris.md: Replace all use of constraint K with Kc.
13956
        ("*btst*): Use Kp for operand 0 of last alternative.
13957
 
13958
2008-07-13  John David Anglin  
13959
 
13960
        PR testsuite/36440
13961
        * tree-call-cdce.c (check_target_format): Accept MIPS single, double
13962
        and quad formats.
13963
 
13964
2008-07-13  Jan Hubicka  
13965
 
13966
        * tree.c (decl_assembler_name_equal): Expect assembler name of decl
13967
        to be mangled too.
13968
 
13969
2008-07-13  Richard Guenther  
13970
 
13971
        PR middle-end/36811
13972
        * langhooks.c (lhd_print_error_function): Deal with recursive
13973
        BLOCK trees.
13974
 
13975
2008-07-12  Jan Hubicka  
13976
 
13977
        * cgraph.c (assembler_name_hash): New static var.
13978
        (hash_node_by_assembler_name, eq_assembler_name): New.
13979
        (cgraph_node_for_asm): Use hashtable.
13980
        (cgraph_remove_node): Maintain hashtable.
13981
        (change_decl_assembler_name): Sanity check that names are not changing
13982
        after aliasing was processed.
13983
        * cgraph.h (varpoon_node): Add next GGC marker.
13984
        * tree.c (decl_assembler_name_equal): Constify.
13985
        (decl_assembler_name_hash): New.
13986
        * tree.h (decl_assembler_name_equal): Constify.
13987
        (decl_assembler_name_hash): Update.
13988
 
13989
2008-07-12  David Daney  
13990
 
13991
        * config/mips/driver-native.c (host_detect_local_cpu): Handle
13992
        sb1 and r5000 cpus.
13993
 
13994
2008-07-12  Richard Sandiford  
13995
 
13996
        * doc/md.texi: Document the MIPS "v" constraint.
13997
        * config/mips/mips.h (reg_class): Revert last change.
13998
        (REG_CLASS_NAMES): Likewise.
13999
        (REG_CLASS_CONTENTS): Likewise.
14000
        * config/mips/mips.c (mips_regno_to_class): Likewise.
14001
        * config/mips/constraints.md (v): Likewise, but add documentation.
14002
        Add a comment to say that this constraint should not be used in
14003
        gcc code.
14004
 
14005
2008-07-11  DJ Delorie  
14006
 
14007
        * config/h8300/h8300.md (length): Fix branch offset limit.
14008
 
14009
2008-07-11  Anatoly Sokolov  
14010
 
14011
        * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
14012
        * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
14013
        (avr_hard_regno_scratch_ok): New function.
14014
        (TARGET_HARD_REGNO_SCRATCH_OK): Define.
14015
        * config/avr/avr.md (all peepholes that request a scratch register):
14016
        Remove avr_peep2_scratch_safe use.
14017
 
14018
2008-07-11  Tom Tromey  
14019
            Ian Lance Taylor  
14020
 
14021
        * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
14022
        (struct c_common_resword): Define.
14023
        (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
14024
        (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
14025
        (c_common_reswords, num_c_common_reswords): Declare.
14026
        * c-common.c (c_common_reswords): New global const array.
14027
        (num_c_common_reswords): New const int.
14028
        * c-parser.c (struct resword, reswords): Don't define.
14029
        (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
14030
        (c_parse_init): Clarify mask code.  Use c_common_reswords rather
14031
        than reswords.  If warning about C++ keywords, give them a special
14032
        RID code.
14033
        (c_lex_one_token): Warn about C++ keywords.  Call
14034
        objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
14035
        (c_parser_external_declaration): Look for RID_xxx rather than
14036
        RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
14037
        (c_parser_statement_after_labels): Likewise.
14038
        (c_parser_objc_class_instance_variables): Likewise.
14039
        (c_parser_objc_class_declaration): Likewise.
14040
        (c_parser_objc_try_catch_statement): Likewise.
14041
        * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
14042
        (declspecs_add_type): Likewise.
14043
 
14044
2008-07-11  Angelo Graziosi  
14045
 
14046
        * ggc-page.c (alloc_page):
14047
        Substituting xmalloc, xcalloc with
14048
        XNEWVEC and XCNEWVAR macros which add the
14049
        needed casts.
14050
 
14051
2008-07-11  Richard Guenther  
14052
 
14053
        PR tree-optimization/36765
14054
        * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
14055
        aliases from HEAP vars to SMTs.
14056
 
14057
2008-07-10  Kaveh R. Ghazi  
14058
 
14059
        * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
14060
        * configure.ac (loose_warn): Move -Wc++-compat from here...
14061
        (strict_warn): ...to here.
14062
        * configure: Regenerate.
14063
 
14064
2008-07-10  Joseph Myers  
14065
 
14066
        * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
14067
        i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
14068
        m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
14069
        rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
14070
        excluding more specific h8300-*-* and sh-*-* targets.
14071
 
14072
2008-07-10  Daniel Berlin  
14073
 
14074
        * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
14075
        (eliminate): Ditto.
14076
        (execute_pre): Call loop_optimizer_finalize in early exit.
14077
 
14078
2008-07-10  Jakub Jelinek  
14079
 
14080
        PR middle-end/36790
14081
        * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
14082
        uids in the bitmap, not just VAR_DECL uids.
14083
 
14084
        PR rtl-optimization/36419
14085
        * combine-stack-adj.c (adjust_frame_related_expr): New function.
14086
        (combine_stack_adjustments_for_block): Call it if needed.  Delete
14087
        correct insn.
14088
        * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
14089
        DW_CFA_GNU_args_size if CSA pass merged some adjustments into
14090
        prologue sp adjustment.
14091
 
14092
2008-07-10  Peter Maydell  
14093
 
14094
        PR other/28322
14095
        * opts.c (print_ignored_options): Report postponed diagnostics for
14096
        unknown -Wno-* options as warnings, not errors.
14097
        (postpone_unknown_option_error): Renamed to...
14098
        (postpone_unknown_option_warning): ... this.
14099
 
14100
2008-07-09  Doug Kwan  
14101
 
14102
        Revert:
14103
        2008-07-08  Doug Kwan  
14104
 
14105
        * config/arm/arm.opt (mandroid): New option.
14106
        * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
14107
        (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
14108
        (CC1_SPEC): Same.
14109
        (CC1PLUS_SPEC): Same.
14110
        (LIB_SPEC): Same.
14111
        (STARTFILE_SPEC): Same.
14112
        (ENDFILE_SPEC): Same.
14113
        (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
14114
        used.
14115
 
14116
2008-07-09  Richard Sandiford  
14117
 
14118
        PR target/35802
14119
        * config/mips/mips.h (reg_class): Remove V1_REG.
14120
        (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
14121
        * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
14122
        instead of V1_REGS.
14123
        (mips_get_tp): New function.
14124
        (mips_legitimize_tls_address): Use it.
14125
        * config/mips/constraints.md (v): Delete.
14126
        * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
14127
        (tls_get_tp_): Allow any GPR destination and clobber $3.
14128
        After reload, split into a move and ...
14129
        (*tls_get_tp__split): ...this new instruction.
14130
 
14131
2008-07-09  David Daney  
14132
 
14133
        * config/mips/driver-native.c: Include coretypes.h and tm.h.
14134
 
14135
2008-07-09  Jakub Jelinek  
14136
 
14137
        * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
14138
        (push_gimplify_context): Don't allocate temp_htab nor c itself here.
14139
        Add c argument.
14140
        (pop_gimplify_context): Check c->temp_htab instead of optimize whether
14141
        htab_delete should be called.  Don't free c.
14142
        (lookup_tmp_var): Create temp_htab lazily.
14143
        (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
14144
        gimplify_body, force_gimple_operand): Adjust push_gimplify_context
14145
        callers.
14146
        * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
14147
        lower_omp_ordered, lower_omp_critical, lower_omp_for,
14148
        create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
14149
        * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
14150
        * tree-sra.c (generate_element_init): Likewise.
14151
        * tree-mudflap.c (execute_mudflap_function_ops,
14152
        execute_mudflap_function_decls): Likewise.
14153
        * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
14154
        * tree-gimple.h (struct gimplify_ctx): New type.
14155
        (push_gimplify_context): Adjust prototype.
14156
 
14157
2008-07-09  Daniel Berlin  
14158
 
14159
        * tree-ssa-pre.c (phi_translate_1): Update placement of
14160
        add_to_value calls.
14161
 
14162
2008-07-09  Anatoly Sokolov  
14163
 
14164
        * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
14165
        * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
14166
        (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
14167
        * targhooks.c (default_hard_regno_scratch_ok): New function.
14168
        * targhooks.h (default_hard_regno_scratch_ok): Declare function.
14169
        * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
14170
        * recog.c:  Include "target.h".
14171
        (peep2_find_free_register): Add check for global regs. Add target
14172
        specific check.
14173
        * Makefile.in (recog.o): Depend on target.h.
14174
 
14175
2008-07-09  Kaz Kojima  
14176
 
14177
        * config/sh/sh.c (sh_canonical_va_list_type): New.
14178
        (TARGET_CANONICAL_VA_LIST_TYPE): Define.
14179
 
14180
2008-07-09  Raksit Ashok  
14181
 
14182
        * doc/invoke.texi (Option Summary): Mention new option
14183
        -Wdisallowed-function-list=...
14184
        (Warning Options): Document -Wdisallowed-function-list=...
14185
        * common.opt (Wdisallowed-function-list=): New flag.
14186
        * flags.h (warn_disallowed_functions): External definition of new
14187
        boolean warning flag.
14188
        (warn_if_disallowed_function_p): Declare new function.
14189
        * opts.c (warning_disallowed_functions): New static variable.
14190
        (warn_disallowed_functions): New boolean warning flag.
14191
        (warn_if_disallowed_function_p): New function.
14192
        (add_comma_separated_to_vector): Rename
14193
        add_instrument_functions_exclude_list to this.
14194
        (common_handle_option): Handle new option. Rename calls to
14195
        add_instrument_functions_exclude_list into calls to
14196
        add_comma_separated_to_vector.
14197
        * c-parser.c (c_parser_postfix_expression_after_primary): New warning
14198
        based on flag warn_disallowed_functions.
14199
 
14200
2008-07-09  Christian Bruel  
14201
 
14202
        * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
14203
         instead of get_attr_length.
14204
 
14205
2008-07-09  Kaveh R. Ghazi  
14206
 
14207
        * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
14208
        keywords.
14209
        * genemit.c (gen_insn): Likewise.
14210
        * gengtype.c (note_def_vec): Likewise.
14211
        * gengtype.h (note_def_vec): Likewise.
14212
        * genoutput.c (struct data, output_insn_data, process_template,
14213
        gen_expand, gen_split, note_constraint): Likewise.
14214
        * genrecog.c (new_decision, add_to_sequence, factor_tests,
14215
        make_insn_sequence): Likewise.
14216
        * gensupport.c (record_insn_name): Likewise.
14217
 
14218
2008-07-08  Doug Kwan  
14219
 
14220
        * config/arm/arm.opt (mandroid): New option.
14221
        * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
14222
        (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
14223
        (CC1_SPEC): Same.
14224
        (CC1PLUS_SPEC): Same.
14225
        (LIB_SPEC): Same.
14226
        (STARTFILE_SPEC): Same.
14227
        (ENDFILE_SPEC): Same.
14228
        (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
14229
        used.
14230
 
14231
2008-07-08  Raksit Ashok  
14232
 
14233
        * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
14234
        (set_storage_via_setmem): Fix expected_align parameter.
14235
        * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
14236
        missing from the list.
14237
        * doc/md.texi (movmem): Explicitly state that expected alignment is
14238
        to be expressed in bytes.
14239
        (setmem): Explicitly state that expected alignment is to be expressed
14240
        in bytes.
14241
 
14242
2008-07-08  Joseph Myers  
14243
 
14244
        * reload.c (find_reloads_subreg_address): Do not require validity
14245
        of address in original mode before reloading address.
14246
 
14247
2008-07-07  Tianwei Sheng  
14248
 
14249
        * df-core.c (df_remove_problem): Adjust the access to avoid out of
14250
        bounds array access.
14251
 
14252
2008-07-08  Jakub Jelinek  
14253
 
14254
        * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
14255
 
14256
2008-07-05  Daniel Berlin  
14257
 
14258
        Fix PR tree-optimization/23455
14259
        Fix PR tree-optimization/35286
14260
        Fix PR tree-optimization/35287
14261
        * Makefile.in (OBJS-common): Remove tree-vn.o.
14262
        (tree-vn.o): Remove.
14263
        * dbgcnt.def: Add treepre_insert debug counter.
14264
        * gcc/tree-flow.h (add_to_value): Updated for other changes.
14265
        (debug_value_expressions): Ditto.
14266
        (print_value_expressions): Ditto.
14267
        * tree-pretty-print.c (dump_generic_node): Updated for
14268
        VALUE_HANDLE removal.
14269
        * tree-ssa-dom.c (record_equality): Ditto.
14270
        (cprop_operand): Ditto.
14271
        (lookup_avail_expr): Ditto.
14272
        * tree-ssa-threadedge.c
14273
        (record_temporary_equivalences_from_stmts_at_dest): Ditto.
14274
        (simplify_control_stmt_condition): Ditto.
14275
        * tree.c (tree_code_size): Ditto.
14276
        (tree_node_structure): Ditto.
14277
        (iterative_hash_expr): Ditto.
14278
        * tree.def: Ditto.
14279
        * tree.h (VALUE_HANDLE_ID): Ditto.
14280
        (VALUE_HANDLE_EXPR_SET): Ditto.
14281
        (struct tree_value_handle): Ditto.
14282
        (union tree_node): Ditto.
14283
        * treestruct.def: Ditto.
14284
        * tree-vn.c: Removed.
14285
        * tree-ssa-pre.c: Rewritten entirely.
14286
        * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
14287
        (constant_value_ids): Ditto.
14288
        (vn_nary_op_t): Moved to header.
14289
        (vn_phi_t): Ditto.
14290
        (vn_reference_op_t): Ditto
14291
        (vn_reference_t): Ditto.
14292
        (next_value_id): New variable.
14293
        (VN_INFO): Add an assert.
14294
        (vn_constant_eq): New function.
14295
        (vn_constant_hash): Ditto.
14296
        (get_or_alloc_constant_value_id): Ditto.
14297
        (value_id_constant_p): Ditto.
14298
        (vn_reference_compute_hash): De-staticify.
14299
        (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
14300
        Disable some code with a FIXME.  Remove VALUE_HANDLE use.
14301
        (valueize_refs): Update opcode if it changes from ssa name to constant.
14302
        (vn_reference_lookup_1): Add new argument.
14303
        (vn_reference_lookup):  Ditto.
14304
        (vn_reference_lookup_pieces): New function.
14305
        (vn_reference_insert): Add return type. Modify to deal with value ids.
14306
        (vn_reference_insert_pieces):  New function.
14307
        (vn_nary_op_compute_hash): De-staticify.
14308
        (vn_nary_op_eq): Ditto.
14309
        (vn_nary_op_lookup_pieces): New function.
14310
        (vn_nary_op_lookup): Add new argument.
14311
        (vn_nary_op_insert_pieces): New function.
14312
        (vn_nary_op_insert): Add return type. Modify to deal with value ids.
14313
        (vn_phi_insert): Ditto.
14314
        (visit_unary_op): Update for callee changes.
14315
        (visit_binary_op): Ditto.
14316
        (visit_reference_op_load): Ditto.
14317
        (visit_reference_op_store): Ditto.
14318
        (init_scc_vn): Init next_value_id, constant_to_value_id and
14319
        constant_value_ids.
14320
        (free_scc_vn): Free them.
14321
        (set_hashtable_value_ids): New function.
14322
        (run_scc_vn): Use it.
14323
        (get_max_value_id): New function.
14324
        (get_next_value_id): Ditto.
14325
        (expressions_equal_p): Moved from tree-vn.c
14326
        (sort_vuses): Ditto.
14327
        (sort_vuses_heap): Ditto.
14328
        * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
14329
        above).
14330
        * tree.c (iterative_hash_hashval_t): Made non-static
14331
        * tree.h (iterative_hash_hashval_t): Declare it.
14332
 
14333
2008-07-08  Martin Jambor  
14334
 
14335
        * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
14336
        instead of ipa_create_node_params.
14337
        (ipcp_driver): Allocate infos with ipa_check_create_node_params and
14338
        ipa_check_create_edge_args, free them with
14339
        free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
14340
 
14341
        * ipa-prop.c: Include flags.h and tree-inline.h.
14342
        (ipa_node_params_vector): New variable.
14343
        (ipa_edge_args_vector): New variable.
14344
        (edge_removal_hook_holder): New variable.
14345
        (node_removal_hook_holder): New variable.
14346
        (edge_duplication_hook_holder): New variable.
14347
        (node_duplication_hook_holder): New variable.
14348
        (ipa_detect_param_modifications): Check for presence of modified flags.
14349
        (ipa_compute_jump_functions): Check for presence of jump functions.
14350
        (ipa_free_edge_args_substructures): New function.
14351
        (ipa_create_node_params): Removed.
14352
        (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
14353
        (ipa_free_node_params_substructures): New function.
14354
        (ipa_free_all_node_params): Changed to deallocate the on-the-side
14355
        vector.
14356
        (ipa_edge_removal_hook): New function.
14357
        (ipa_node_removal_hook): New function.
14358
        (duplicate_array): New function.
14359
        (ipa_edge_duplication_hook): New function.
14360
        (ipa_node_duplication_hook): New function.
14361
        (ipa_register_cgraph_hooks): New function.
14362
        (ipa_unregister_cgraph_hooks): New function.
14363
        (free_all_ipa_structures_after_ipa_cp): New function.
14364
 
14365
        * ipa-prop.h: Include vec.h.
14366
        (ipa_node_params_t): New typedef with vector types for it.
14367
        (ipa_edge_args_t):  New typedef with vector types for it.
14368
        (IPA_NODE_REF): Changed to access an on-the-side vector.
14369
        (IPA_EDGE_REF): Changed to access an on-the-side vector.
14370
        (ipa_check_create_node_params): New function.
14371
        (ipa_check_create_edge_args): New function.
14372
 
14373
        * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
14374
        all users.
14375
 
14376
2008-07-07  Tom Tromey  
14377
 
14378
        * configure, config.in: Rebuilt.
14379
        * configure.ac: Don't check for scandir or alphasort.
14380
 
14381
2008-07-07  Joseph Myers  
14382
 
14383
        * config/arm/arm.c (arm_init_neon_builtins): Register built-in
14384
        types immediately after creating them.
14385
 
14386
2008-07-07  Joseph Myers  
14387
 
14388
        * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
14389
 
14390
2008-07-07  Fernando Pereira  
14391
 
14392
        * tree-ssa-structalias.c (compute_points_to_sets): Add call to
14393
        dump_constraint_graph.
14394
        (dump_constraint_edge): New function.
14395
        (dump_constraint_graph): New function.
14396
        (debug_constraint_graph): New function.
14397
        (dump_constraint): Removed useless comparison.
14398
        * tree-ssa-structalias.h (dump_constraint_edge): Declare.
14399
        (dump_constraint_graph): Declare.
14400
        (debug_constraint_graph): Declare.
14401
        * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
14402
 
14403
2008-07-07  Kai Tietz  
14404
 
14405
        * config/i386/i386.c (is_va_list_char_pointer): New.
14406
        (ix86_va_start): Replace compare with ms_va_list_type_node
14407
        by is_va_list_char_pointer.
14408
        (ix86_gimplify_va_arg): Likewise.
14409
 
14410
2008-07-07  Martin Jambor  
14411
 
14412
        * cgraph.c (cgraph_edge_max_uid): New variable.
14413
        (struct cgraph_edge_hook_list): New type.
14414
        (struct cgraph_node_hook_list): New type.
14415
        (struct cgraph_2edge_hook_list): New type.
14416
        (struct cgraph_2node_hook_list): New type.
14417
        (first_cgraph_edge_removal_hook): New variable.
14418
        (first_cgraph_node_removal_hook): New variable.
14419
        (first_cgraph_edge_duplicated_hook): New variable.
14420
        (first_cgraph_node_duplicated_hook): New variable.
14421
        (cgraph_add_edge_removal_hook): New function.
14422
        (cgraph_remove_edge_removal_hook): New function.
14423
        (cgraph_call_edge_removal_hooks):  New function.
14424
        (cgraph_add_node_removal_hook):  New function.
14425
        (cgraph_remove_node_removal_hook):  New function.
14426
        (cgraph_call_node_removal_hooks):  New function.
14427
        (cgraph_add_edge_duplication_hook):  New function.
14428
        (cgraph_remove_edge_duplication_hook):  New function.
14429
        (cgraph_call_edge_duplication_hooks):  New function.
14430
        (cgraph_add_node_duplication_hook):  New function.
14431
        (cgraph_remove_node_duplication_hook):  New function.
14432
        (cgraph_call_node_duplication_hooks):  New function.
14433
        (cgraph_create_edge): Assign to edge uid.
14434
        (cgraph_remove_edge): Call edge removal hooks.
14435
        (cgraph_node_remove_callees): Call edge removal hooks.
14436
        (cgraph_node_remove_callers): Call edge removal hooks.
14437
        (cgraph_remove_node): Call node removal hooks.
14438
        (cgraph_clone_edge): Call edge duplication hooks.
14439
        (cgraph_clone_node): Call node duplication hooks.
14440
 
14441
        * cgraph.h (cgraph_edge): New field uid.
14442
        (cgraph_edge_hook): New type.
14443
        (cgraph_node_hook): New type.
14444
        (cgraph_2edge_hook): New type.
14445
        (cgraph_2node_hook): New type.
14446
 
14447
2008-07-07  Andreas Tobler  
14448
 
14449
        * config.in: Regenerate.
14450
 
14451
2008-07-07  Vladimir Prus  
14452
 
14453
        * gcc.c (print_sysroot): New.
14454
        (option_map, display_help, process_command): Handle the
14455
        -print-sysroot option.
14456
        (main): Print the sysroot if requested.
14457
        * doc/invoke.texi (Debugging Options): Document -print-sysroot.
14458
 
14459
2008-07-07  Ralf Wildenhues  
14460
 
14461
        PR target/34780
14462
        * unwind-pe.h (size_of_encoded_value): add attribute unused.
14463
 
14464
2008-07-07  Daniel Jacobowitz  
14465
 
14466
        * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
14467
        (assign_parm_setup_block_p): Also check mode of entry_parm.
14468
 
14469
2008-07-07  Richard Guenther  
14470
 
14471
        * tree-ssa-structalias.h (set_used_smts): Remove.
14472
        * tree-ssa-structalias.c (used_smts): Likewise.
14473
        (set_used_smts): Likewise.
14474
        * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
14475
        call to set_used_smts.
14476
 
14477
2008-07-07  Richard Guenther  
14478
 
14479
        * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
14480
        (new_var_info): Set it to false.
14481
        (solution_set_add): Correctly handle pointers outside a var and
14482
        inside a field.
14483
        (type_safe): Treat variables with is_full_var properly.
14484
        (do_sd_constraint): Likewise.
14485
        (do_ds_constraint): Likewise.
14486
        (process_constraint): Remove zeroing offset for !use_field_sensitive.
14487
        (get_constraint_for_ptr_offset): New function.
14488
        (get_constraint_for_component_ref): For addresses at least include
14489
        the last field of the variable.  Handle is_full_vars properly.
14490
        (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
14491
        (handle_ptr_arith): Remove.
14492
        (find_func_aliases): Simplify assignment handling.
14493
        (create_function_info_for): For parameter and result varinfos set
14494
        is_full_var flag.
14495
        (create_variable_info_for): Set is_full_var flag whenever we
14496
        just created a single varinfo for a decl.
14497
        (init_alias_vars): Initialize use_field_sensitive from
14498
        max-fields-for-field-sensitive parameter.
14499
 
14500
2008-07-07  Richard Guenther  
14501
 
14502
        PR tree-optimization/36713
14503
        * tree-flow-inline.h (is_call_used): New function.
14504
        * tree-nrv.c (dest_safe_for_nrv_p): Use it.
14505
        * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
14506
        * tree-outof-ssa.c (create_temp): Set call-used flag if required.
14507
 
14508
2008-07-07  Maxim Kuvyrkov  
14509
 
14510
        * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
14511
 
14512
2008-07-07  Mark Shinwell  
14513
 
14514
        * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
14515
 
14516
2008-07-07  Maxim Kuvyrkov  
14517
            Nathan Sidwell  
14518
 
14519
        * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
14520
        to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
14521
        tmake_file.
14522
        * config/m68k/t-linux: New.
14523
        * doc/install.texi: Document m68k-*-linux is now multilibbed by
14524
        default.
14525
 
14526
2008-07-07  Nathan Sidwell  
14527
 
14528
        * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
14529
        * config/m68k/m68k-devices.def: Remove multilibs that only differ
14530
        by MAC/EMAC.
14531
 
14532
2008-07-06  Kaveh R. Ghazi  
14533
 
14534
        * gcc.c (execute): Fix -Wc++-compat warning.
14535
 
14536
2008-07-06  H.J. Lu  
14537
 
14538
        PR target/36720
14539
        * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
14540
        constant for little endian.
14541
 
14542
2008-07-06  Richard Sandiford  
14543
 
14544
        * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
14545
        mips_base_mips16 instead of TARGET_MIPS16.
14546
        (mips_base_mips16): Declare.
14547
        * config/mips/mips.c (mips_base_mips16): Make global.
14548
        (was_mips16_p): Remove GTY marker.
14549
        (was_mips16_pch_p): New variable.
14550
        (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
14551
        (mips_override_options): Force to non-MIPS16 mode initially.
14552
        Do not complain about MIPS16 PIC incompatibilities here.
14553
        Only allow -mgpopt if -mexplicit-relocs is in force for
14554
        non-MIPS16 code.
14555
 
14556
2008-07-06  Andreas Tobler  
14557
 
14558
        * configure.ac: Check for caddr_t, define to char * if not defined.
14559
        * configure: Regenerate.
14560
        * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
14561
        (mmap_gt_pch_use_address): Likewise.
14562
        * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
14563
 
14564
2008-07-06  Richard Guenther  
14565
 
14566
        * tree-ssa-structalias.c (struct variable_info): Remove has_union.
14567
        (new_var_info): Deal with it.
14568
        (solution_set_add): Likewise.
14569
        (bitpos_of_field): Make signed, fix.
14570
        (struct fieldoff): Remove type and decl fields.  Make size field
14571
        unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
14572
        flags.
14573
        (fieldoff_compare): Deal with it.
14574
        (push_fields_onto_fieldstack): Remove has_union argument, glob
14575
        adjacent non-pointer fields together.
14576
        (create_function_info_for): Do not set has_union.
14577
        (create_variable_info_for): Simplify.
14578
 
14579
2008-07-06  Kai Tietz  
14580
 
14581
        * config.gcc (extra_headers): Add cross-stdarg.h for target
14582
        x86_64-*-* and i?86-*-*.
14583
        * config/i386/cross-stdarg.h: New.
14584
        * builtins.c (std_fn_abi_va_list): New.
14585
        (std_canonical_va_list_type): New.
14586
        (stabilize_va_list): Replace va_list_type_node use by
14587
        mtarget.canonical_va_list_type.
14588
        (gimplify_va_arg_expr): Likewise.
14589
        (expand_builtin_va_copy): Replace va_list_type_node use by
14590
        mtarget.fn_abi_va_list.
14591
        * tree-sra.c (is_va_list_type): New helper.
14592
        (decl_can_be_decomposed_p): Replace
14593
        va_list_type_node use by is_va_list_type.
14594
        * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
14595
        * tree-stdarg.c (execute_optimize_stdarg): Likewise.
14596
        * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
14597
        * config/i386/i386-protos.h (ix86_get_valist_type): New.
14598
        (ix86_enum_va_list): New.
14599
        * config/i386/i386.c (sysv_va_list_type_node): New.
14600
        (ms_va_list_type_node): New.
14601
        (ix86_function_type_abi): Remove sorry.
14602
        (ix86_build_builtin_va_list_abi): New.
14603
        (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
14604
        for 64-bit targets.
14605
        (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
14606
        (ix86_init_builtins_va_builtins_abi): New.
14607
        (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
14608
        for 64-bit targets.
14609
        (ix86_handle_abi_attribute): New.
14610
        (attribute_spec): Add sysv_abi and ms_abi.
14611
        (ix86_fn_abi_va_list): New.
14612
        (ix86_canonical_va_list_type): New.
14613
        (ix86_enum_va_list): New.
14614
        (TARGET_FN_ABI_VA_LIST): New.
14615
        (TARGET_CANONICAL_VA_LIST_TYPE): New.
14616
        * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
14617
        * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
14618
        (TARGET_CANONICAL_VA_LIST_TYPE): New.
14619
        (TARGET_ENUM_VA_LIST): New.
14620
        * expr.h (std_fn_abi_va_list): New.
14621
        (std_canonical_va_list_type): New.
14622
        * target-def.h (TARGET_FN_ABI_VA_LIST): New.
14623
        (TARGET_CANONICAL_VA_LIST_TYPE): New.
14624
        (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
14625
        TARGET_CANONICAL_VA_LIST_TYPE.
14626
        * target.h (struct gcc_target): Add fn_abi_va_list hook
14627
        and canonical_va_list_type hook.
14628
 
14629
2008-07-05  Andrew Pinski  
14630
 
14631
        * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
14632
        integral and pointer types.
14633
 
14634
2008-07-04  Roger Sayle  
14635
 
14636
        * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
14637
        the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
14638
 
14639
2008-07-04  Kaz Kojima  
14640
 
14641
        PR target/36684
14642
        * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
14643
 
14644
2008-07-04  Jakub Jelinek  
14645
 
14646
        * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
14647
        build_gimple_modify_stmt.
14648
        (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
14649
        gimple operand.  Use fold_build* instead of build*.
14650
 
14651
2008-07-04  Richard Guenther  
14652
 
14653
        * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
14654
        (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
14655
        properly to compute the reachability set if we do field-sensitive PTA.
14656
        * invoke.texi (max-fields-for-field-sensitive): Document default.
14657
        * opts.c (decode_options): Set max-fields-for-field-sensitive to
14658
        100 for optimize >= 2.
14659
 
14660
2008-07-04  Kaveh R. Ghazi  
14661
 
14662
        * ggc-zone.c (lookup_page_table_if_allocated,
14663
        set_page_table_entry, zone_find_object_size, alloc_small_page,
14664
        alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
14665
        new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
14666
        -Wc++-compat and/or -Wcast-qual warnings.
14667
 
14668
2008-07-04  Alan Modra  
14669
 
14670
        PR target/36634
14671
        * config/rs6000/rs6000.md (call, call_value): Don't arrange for
14672
        pic_offset_table_rtx to be marked as used here.
14673
        (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
14674
        TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
14675
        (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
14676
        (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
14677
        !TARGET_SECURE_PLT.
14678
 
14679
2008-07-03  Kaveh R. Ghazi  
14680
 
14681
        * alloc-pool.c (hash_descriptor, eq_descriptor,
14682
        alloc_pool_descriptor): Fix -Wc++-compat warnings.
14683
        * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
14684
        Likewise.
14685
        * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
14686
        loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
14687
        final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
14688
        * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
14689
        Likewise.
14690
 
14691
2008-07-03  Eric Botcazou  
14692
 
14693
        * tree-flow.h (loop_only_exit_p): Declare.
14694
        * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
14695
        * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
14696
        the number of iterations if it is constant.  Otherwise, if this is the
14697
        only possible exit of the loop, use the conservative estimate on the
14698
        number of iterations of the entire loop if available.
14699
 
14700
2008-07-03  Richard Sandiford  
14701
 
14702
        * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
14703
        * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
14704
        Add synchronization functions.
14705
        * config/sync.c: New file.
14706
        * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
14707
        (LIBGCC_SYNC_CFLAGS): Likewise.
14708
 
14709
2008-07-03  Uros Bizjak  
14710
 
14711
        PR target/36710
14712
        * config/i386/i386.md (mode): Add TF to "mode" attribute.
14713
        (*pushtf_sse): New insn pattern.
14714
        (pushtf splitters): New splitters.
14715
 
14716
2008-07-03  Michael Meissner  
14717
 
14718
        PR middle-end/35736
14719
        * predict.c (build_predict_expr): Use void_type_node for the tree
14720
        type, instead of NULL_TREE.
14721
 
14722
2008-07-03  H.J. Lu  
14723
 
14724
        * config/i386/i386.c (contains_aligned_value_p): Return true
14725
        for TCmode.
14726
        (ix86_data_alignment): Align TCmode to 128bits.
14727
        (ix86_local_alignment): Likewise.
14728
 
14729
2008-07-03  Andrew Haley  
14730
 
14731
        PR bootstrap/33304
14732
        * vec.h (VEC_TA): New.
14733
        (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
14734
        DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
14735
        * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
14736
        (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
14737
        (C_COMMON_FIXED_TYPES): Remove first arg.
14738
        (C_COMMON_FIXED_MODE_TYPES): Likewise.
14739
        * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
14740
        MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
14741
        not to use empty macro arguments.
14742
 
14743
2008-07-02  Joseph Myers  
14744
 
14745
        * config/alpha/vms_tramp.asm, config/arm/crti.asm,
14746
        config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
14747
        config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
14748
        config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
14749
        config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
14750
        config/i386/sol2-gc1.asm, config/ia64/crti.asm,
14751
        config/ia64/crtn.asm, config/m68hc11/larith.asm,
14752
        config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
14753
        config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
14754
        config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
14755
        config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
14756
        config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
14757
        config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
14758
        config/rs6000/e500crtres64gpr.asm,
14759
        config/rs6000/e500crtres64gprctr.asm,
14760
        config/rs6000/e500crtrest32gpr.asm,
14761
        config/rs6000/e500crtrest64gpr.asm,
14762
        config/rs6000/e500crtresx32gpr.asm,
14763
        config/rs6000/e500crtresx64gpr.asm,
14764
        config/rs6000/e500crtsav32gpr.asm,
14765
        config/rs6000/e500crtsav64gpr.asm,
14766
        config/rs6000/e500crtsav64gprctr.asm,
14767
        config/rs6000/e500crtsavg32gpr.asm,
14768
        config/rs6000/e500crtsavg64gpr.asm,
14769
        config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
14770
        config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
14771
        config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
14772
        config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
14773
        config/sparc/sol2-cn.asm: Remove .file directives.
14774
 
14775
2008-07-02  Richard Sandiford  
14776
 
14777
        * resource.c (mark_referenced_resources): Look inside
14778
        UNSPEC_VOLATILEs and ASM_INPUTs.
14779
 
14780
2008-07-02  Ian Lance Taylor  
14781
 
14782
        * rtlanal.c (add_reg_note): New function.
14783
        * rtl.h (add_reg_note): Declare.
14784
        * auto-inc-dec.c (attempt_change): Use add_reg_note.
14785
        * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
14786
        * builtins.c (expand_builtin_longjmp): Likewise.
14787
        (expand_builtin_nonlocal_goto): Likewise.
14788
        * calls.c (emit_call_1, expand_call): Likewise.
14789
        * cfgexpand.c (add_reg_br_prob_note): Likewise.
14790
        * cfglayout.c (fixup_reorder_chain): Likewise.
14791
        * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
14792
        (commit_one_edge_insertion): Likewise.
14793
        * combine.c (move_deaths, distribute_notes): Likewise.
14794
        * df-problems.c (df_set_note): Likewise.
14795
        * emit-rtl.c (link_cc0_insns, try_split): Likewise.
14796
        (set_unique_reg_note): Likewise.
14797
        (emit_copy_of_insn_after): Likewise.
14798
        * expr.c (expand_expr_real): Likewise.
14799
        * gcse.c (add_label_notes): Likewise.
14800
        * haifa-sched.c (create_check_block_twin): Likewise.
14801
        * jump.c (mark_jump_label_1): Likewise.
14802
        * loop-doloop.c (add_test, doloop_modify): Likewise.
14803
        * loop-unswitch.c (compare_and_jump_seq): Likewise.
14804
        * lower-subreg.c (move_eh_region_note): Likewise.
14805
        * optabs.c (emit_libcall_block): Likewise.
14806
        * predict.c (predict_insn): Likewise.
14807
        (combine_predictions_for_insn): Likewise.
14808
        * recog.c (peephole2_optimize): Likewise.
14809
        * regmove.c (try_auto_increment): Likewise.
14810
        * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
14811
        * reload.c (find_reloads): Likewise.
14812
        * reload1.c (fixup_eh_region_note): Likewise.
14813
        (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
14814
        * reorg.c (delete_prior_computation): Likewise.
14815
        (delete_computation, dbr_schedule): Likewise.
14816
        * config/pa/pa.c (legitimize_pic_address): Likewise.
14817
        * config/sh/sh.c (sh_reorg): Likewise.
14818
 
14819
2008-07-02  H.J. Lu  
14820
 
14821
        PR target/36669
14822
        * config/libgcc-glibc.ver: Add %exclude.
14823
        * config/m32r/libgcc-glibc.ver: Likwise.
14824
        * config/s390/libgcc-glibc.ver: Likwise.
14825
        * config/sh/libgcc-glibc.ver: Likwise.
14826
        * config/sparc/libgcc-sparc-glibc.ver: Likwise.
14827
 
14828
        * config/i386/libgcc-glibc.ver: New.
14829
 
14830
        * config/i386/libgcc-x86_64-glibc.ver: Removed.
14831
 
14832
2008-07-02  H.J. Lu  
14833
 
14834
        * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
14835
        from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
14836
        i[34567]86-*-linux*, x86_64-*-linux*.  Add
14837
        i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
14838
        i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
14839
        x86_64-*-linux*.  Add i386/t-linux to tmake_file for
14840
        i[34567]86-*-linux*, x86_64-*-linux*.
14841
 
14842
        * libgcc-std.ver: Add empty GCC_4.4.0.
14843
 
14844
        * mkmap-symver.awk: Support multiple versions per symbol.
14845
 
14846
        * config/i386/i386.c (ix86_init_builtins): Always define
14847
        __builtin_fabsq and __builtin_copysignq with fallbacks.
14848
        (ix86_expand_builtin): Emit normal call for __builtin_fabsq
14849
        and __builtin_copysignq if SSE2 isn't available.
14850
 
14851
        * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
14852
        (LIBGCC2_TF_CEXT): Likwise.
14853
        (TF_SIZE): Likwise.
14854
 
14855
        * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
14856
 
14857
        * config/i386/sfp-machine.h: Moved to libgcc.
14858
 
14859
        * config/i386/sfp-machine.h: New.
14860
        * config/i386/t-linux: Likwise.
14861
 
14862
        * config/i386/t-darwin: Remove softfp_wrap_start and
14863
        softfp_wrap_end.
14864
        * config/i386/t-darwin64: Likewise.
14865
 
14866
        * config/i386/t-fprules-softfp64: Renamed to ...
14867
        * config/i386/t-fprules-softfp: This.
14868
 
14869
        * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
14870
        and softfp_wrap_end.
14871
 
14872
2008-07-02  Jason Merrill  
14873
 
14874
        * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
14875
 
14876
        * tree.c (ctor_to_list): New fn.
14877
        * tree.h: Declare it.
14878
        (CONSTRUCTOR_ELT): New macro.
14879
        (CONSTRUCTOR_NELTS): New macro.
14880
 
14881
2008-07-02  Richard Guenther  
14882
 
14883
        * tree-ssa-structalias.c (struct variable_info): Reorder
14884
        to fill padding on 64bit hosts.  Make collapsed_to an int.
14885
        (get_varinfo_fc): Deal with that.
14886
        (new_var_info): Likewise.
14887
        (collapse_rest_of_var): Likewise.
14888
 
14889
2008-07-02  Joshua Sumali  
14890
 
14891
        * doc/install.texi (--enable-java-home): Document.
14892
        (--enable-aot-compile-rpm): Likewise.
14893
        (--with-arch-directory): Likewise.
14894
        (--with-os-directory): Likewise.
14895
        (--with-origin-name): Likewise.
14896
        (--with-arch-suffix): Likewise.
14897
        (--with-jvm-root-dir): Likewise.
14898
        (--with-jvm-jar-dir): Likewise.
14899
        (--with-python-dir): Likewise.
14900
 
14901
2008-07-02  Richard Guenther  
14902
 
14903
        * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
14904
        from decls explicitly.  Merge operand checking from tuples.
14905
 
14906
2008-07-02  Martin Jambor  
14907
 
14908
        * tree-switch-conversion.c: Included timevar.h which I forgot before.
14909
 
14910
2008-07-02  Martin Jambor  
14911
 
14912
        * tree-switch-conversion.c: Included timevar.h
14913
        (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
14914
 
14915
        * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
14916
 
14917
2008-07-02  Martin Jambor  
14918
 
14919
        * tree-switch-conversion.c: Corrected various comments and
14920
        whitespace issues
14921
        (build_constructors): Fixed minor formatting mistakes.
14922
 
14923
        * invoke.texi (Optimize Options): Corrected the
14924
        switch-conversion-max-branch-ratio parameter.
14925
 
14926
2008-07-02  Mark Shinwell  
14927
 
14928
        * final.c (asm_insn_count): Return zero for an empty asm body.
14929
 
14930
2008-07-02  Richard Guenther  
14931
 
14932
        * bitmap.h (bitmap_set_bit): Return bool.
14933
        (bitmap_clear_bit): Likewise.
14934
        * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
14935
        write to the bitmap if it would.
14936
        (bitmap_clear_bit): Likewise.
14937
        * tree-ssa-structalias.c (add_implicit_graph_edge): Use
14938
        bitmap_set_bit return value.
14939
        (add_pred_graph_edge): Likewise.
14940
        (add_graph_edge): Likewise.
14941
        (do_sd_constraint): Likewise.
14942
        (do_ds_constraint): Likewise.
14943
 
14944
2008-07-02  Kaveh R. Ghazi  
14945
 
14946
        * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
14947
        Fix -Wc++-compat and/or -Wcast-qual warnings.
14948
        * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
14949
        gen_regparm_prefix): Likewise.
14950
        * vmsdbgout.c (write_modbeg, lookup_filename,
14951
        vmsdbgout_source_line, vmsdbgout_init): Likewise.
14952
 
14953
2008-07-02  Danny Smith  
14954
 
14955
        * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
14956
        defaults.h definition apply.
14957
 
14958
2008-07-01  Daniel Jacobowitz  
14959
 
14960
        * function.c (assign_parm_remove_parallels): New.
14961
        (assign_parm_setup_block_p): Do not return true for non-BLKmode
14962
        PARALLELs.
14963
        (assign_parm_setup_block): Do not handle them.
14964
        (assign_parm_setup_reg, assign_parm_setup_stack): Call
14965
        assign_parm_remove_parallels.
14966
 
14967
2008-07-01  Daniel Jacobowitz  
14968
 
14969
        * c-typeck.c (convert_for_assignment): Use
14970
        vector_targets_convertible_p.
14971
        * c-common.c (vector_targets_convertible_p): New.
14972
        * c-common.h (vector_targets_convertible_p): New prototype.
14973
        * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
14974
        opaque_p_V2SI_type_node.
14975
 
14976
2008-07-01  Steve Ellcey  
14977
 
14978
        * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
14979
        RFmode constants.
14980
 
14981
2008-07-01  Uros Bizjak  
14982
 
14983
        * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
14984
        TFmode constants via two element DImode vector for hosts with
14985
        HOST_BITS_PER_WIDE_INT < 64.
14986
        (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
14987
        also for HOST_BITS_PER_WIDE_INT < 64.
14988
 
14989
2008-07-01  Richard Guenther  
14990
 
14991
        PR tree-optimization/36666
14992
        * tree-ssa-structalias.c (get_constraint_for_1): Declare.
14993
        (get_constraint_exp_from_ssa_var): Split into ...
14994
        (get_constraint_exp_for_temp): ... this ...
14995
        (get_constraint_for_ssa_var): ... and that.
14996
        Return constraint expressions for all touched sub-fields
14997
        if the results address is not taken.
14998
        (process_constraint): Remove assertion that aggregate
14999
        assignments do not happen at this place.
15000
        (get_constraint_for_component_ref): Add address_p argument.
15001
        Return constraint expressions for all touched sub-fields
15002
        if the results address is not taken.
15003
        (do_deref): Use get_constraint_exp_for_temp.
15004
        (get_constraint_for_1): Rename from ...
15005
        (get_constraint_for): ... this.  Add the old function as wrapper.
15006
        (do_structure_copy): Use get_constraint_for_1.
15007
 
15008
2008-07-01  Martin Jambor  
15009
 
15010
        * Makefile.in (tree-switch-conversion.o): Add.
15011
        (OBJS-common): Add tree-swtch-conversion.o.
15012
        * passes.c (init_optimization_passes): Add pass_convert_switch.
15013
        * tree-pass.h (pass_convert_switch): Add.
15014
        * tree-switch-conversion.c: New file.
15015
        * gcc.dg/tree-ssa/cswtch.c: New testcase.
15016
        * common.opt (ftree-cswtch): New option.
15017
        * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
15018
        * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
15019
        * opts.c (decode_options): Set flag_tree_switch_conversion when
15020
        optimization level is >= 2.
15021
        * doc/invoke.texi (Optimize Options): Added description of
15022
        -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
15023
 
15024
2008-06-30  Kaveh R. Ghazi  
15025
 
15026
        * config/darwin-driver.c (darwin_default_min_version): Fix
15027
        -Wc++-compat warnings.
15028
 
15029
2008-06-30  Uros Bizjak  
15030
 
15031
        * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
15032
        of operand 0.
15033
 
15034
2008-06-30  Kenneth Zadeck  
15035
 
15036
        * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
15037
 
15038
2008-06-30  Kenneth Zadeck  
15039
 
15040
        PR rtl-optimization/34744
15041
        * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
15042
        (df_scan_free_internal): Free data structures not
15043
        allocated in storage pools.
15044
        (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
15045
        (df_refs_add_to_chains): Use df_scan_free_ref_vec and
15046
        df_scan_free_mws_vec.
15047
        * dse.c (dse_step6): Free offset_map_p and offset_map_n
15048
        unconditionally.
15049
 
15050
2008-06-30  H.J. Lu  
15051
 
15052
        * config/i386/i386.c (contains_aligned_value_p): Return true
15053
        for __float128.
15054
        (ix86_function_arg_boundary): Return its natural boundary
15055
        for __float128.
15056
        (return_in_memory_32): Don't check TDmode.
15057
        (ix86_split_to_parts): Support splitting into 4 parts and
15058
        support TFmode for 32bit target.
15059
        (ix86_split_long_move): Support splitting into 4 parts.
15060
        (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
15061
        for SSE2.
15062
        (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
15063
        (ix86_init_builtins): Here.
15064
        (ix86_scalar_mode_supported_p): Always return true for TFmode.
15065
        (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
15066
        'q' and 'w', respectively.
15067
 
15068
        * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
15069
        TARGET_64BIT.
15070
        (movtf_internal): Likewise.
15071
        (tf2): Likewise.
15072
        (*absnegtf2_sse): Likewise.
15073
        (copysign3): Likewise.
15074
        (copysign3_const): Likewise.
15075
        (copysign3_var): Likewise.
15076
        (define_split UNSPEC_COPYSIGN): Likewise.
15077
        * config/i386/sse.md (*nandtf3): Likewise.
15078
        (tf3): Likewise.
15079
        (*tf3): Likewise.
15080
 
15081
2008-06-30  Joey Ye  
15082
            H.J. Lu  
15083
 
15084
        * global.c (compute_regsets): Set frame_pointer_needed here.
15085
        * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
15086
 
15087
2008-06-30  Aaron W. LaFramboise  
15088
 
15089
        * doc/install.texi (specific): Expand Windows build notes.
15090
 
15091
2008-06-30  Ira Rosen  
15092
 
15093
        PR tree-optimization/36648
15094
        * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
15095
        number of prolog iterations by step. Fix the comment.
15096
 
15097
2008-06-30  Richard Guenther  
15098
 
15099
        PR middle-end/36671
15100
        * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
15101
        handle calls from ECF_MALLOC functions.
15102
        (handle_pure_call): ECF_MALLOC functions do not return
15103
        call-used memory.
15104
        (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
15105
 
15106
2008-06-29  Andreas Schwab  
15107
 
15108
        * config/m68k/m68k.c (print_operand): Always print a float
15109
        constant in hex.
15110
        * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
15111
        (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
15112
        Remove macros.
15113
 
15114
        * config/rs6000/x-linux64: Remove never used file.
15115
 
15116
2008-06-29  Richard Guenther  
15117
 
15118
        * tree-ssa-structalias.h (compute_points_to_sets): Adjust
15119
        prototype.
15120
        (struct alias_info): Move ...
15121
        * tree-ssa-alias.c: ... here.
15122
        (update_alias_info): Declare.
15123
        (compute_may_aliases): Call it.
15124
        (update_alias_info): New function.
15125
        * tree-ssa-structalias.c (update_alias_info): Move ...
15126
        * tree-ssa-alias.c (update_alias_info_1): ... here.
15127
        * tree-ssa-structalias.c (process_constraint_1): Remove
15128
        unused from_call argument.  Rename to ...
15129
        (process_constraint): ... this.  Delete old wrapper.
15130
        (make_constraint_to): Adjust callers.
15131
        (handle_const_call): Likewise.
15132
        (handle_pure_call): Likewise.
15133
        (init_base_vars): Likewise.
15134
        (handle_lhs_call): Likewise.  Remove unnecessary constraint.
15135
        (find_func_aliases): We don't need structure copies for
15136
        complex types.
15137
        (make_constraint_from_anything): Remove.
15138
        (create_variable_info_for): For globals make constraints
15139
        from escaped, not from anything.
15140
        (compute_points_to_sets): Do not call update_alias_info.
15141
        (ipa_pta_execute): Use make_constraint_from.
15142
 
15143
2008-06-29  Kaveh R. Ghazi  
15144
 
15145
        * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
15146
        (bitmap.o-warn, dominance.o-warn): New.
15147
        * configure.ac (cxx_compat_warn): Delete.
15148
        (loose_warn): Add -Wcast-qual and -Wc++-compat.
15149
        * system.h: Remove #pragma diagnostic for -Wcast-qual and
15150
        -Wc++-compat.
15151
        * configure: Regenerate.
15152
 
15153
        * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
15154
        warnings.
15155
 
15156
2008-06-29  Kaveh R. Ghazi  
15157
 
15158
        * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
15159
        * df-scan.c (df_notes_rescan): Likewise.
15160
        * ggc-page.c (set_page_table_entry): Likewise.
15161
        * intl.c (gcc_gettext_width): Likewise.
15162
        * varasm.c (get_unnamed_section, get_noswitch_section,
15163
        get_section): Likewise.
15164
 
15165
2008-06-28  Andrew Jenner  
15166
 
15167
        * regrename.c (build_def_use): Don't copy RTX.
15168
 
15169
2008-06-28  Sandra Loosemore  
15170
 
15171
        * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
15172
        (Type Attributes): Fix nesting of @table and @subsection.  Adjust
15173
        punctuation.  Use @ref instead of @xref.
15174
        (Function Names): Remove stray @display/@end display.
15175
        (C++ Attributes): Use @ref instead of @xref.
15176
        (Deprecated Features): Fix punctuation around @xref.
15177
        (Backwards Compatibility): Likewise.
15178
        * doc/rtl.texi (Incdec): Remove stray @table/@end table.
15179
 
15180
2008-06-28  Joseph Myers  
15181
 
15182
        * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
15183
        constants for E500 double.
15184
 
15185
2008-06-28  Ulrich Weigand  
15186
 
15187
        * doc/rtl.texi (const_vector): Document const_fixed as legitimate
15188
        element type of const_vector.
15189
 
15190
2008-06-28  Uros Bizjak  
15191
 
15192
        * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
15193
        Remove FLAGS_REG clobber from expander pattern.
15194
        (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
15195
        (anddi3, andsi3, andhi3, andqi3): Ditto.
15196
        (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
15197
        (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
15198
        (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
15199
        (ashlsi3, ashlhi3, ashlqi3): Ditto.
15200
        (ashrsi3, ashrhi3, ashrqi3): Ditto.
15201
        (lshrsi3, lshrhi3, lshrqi3): Ditto.
15202
        (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
15203
        (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
15204
 
15205
2008-06-28  Richard Guenther  
15206
 
15207
        * tree-ssa-structalias.c (callused_id, var_callused,
15208
        callused_tree): Add.
15209
        (handle_pure_call): New function.
15210
        (find_func_aliases): Call it.
15211
        (find_what_p_points_to): Handle the call-used set.
15212
        (clobber_what_escaped): Likewise.
15213
        (compute_call_used_vars): New function.
15214
        (init_base_vars): Init the call-used variable.
15215
        (do_sd_constraint): Do not propagate the solution from CALLUSED
15216
        but use CALLUSED as a placeholder.
15217
        (solve_graph): Likewise.
15218
        * tree-flow-inline.h (gimple_call_used_vars): New function.
15219
        * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
15220
        (compute_call_used_vars): Declare.
15221
        * tree-ssa-alias.c (set_initial_properties): Call
15222
        compute_call_used_vars.
15223
        (reset_alias_info): Clear call-used variables.
15224
        (add_call_clobber_ops): Assert we are not called for const/pure
15225
        functions.  Remove handling of them.
15226
        (add_call_read_ops): Handle pure functions by adding the
15227
        call-used set of variables as VUSEs.
15228
        * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
15229
        (delete_tree_ssa): Free it.
15230
        * tree-dfa.c (remove_referenced_var): Clear the var from the
15231
        call-used bitmap.
15232
 
15233
2008-06-28  Kai Tietz  
15234
 
15235
        * tree.c (build_varargs_function_type_list): New.
15236
        (build_function_type_list_1): New.
15237
        (build_function_type_list): Use build_function_type_list_1.
15238
        * tree.h (build_varargs_function_type_list): New.
15239
 
15240
2008-06-28  Ulrich Weigand  
15241
 
15242
        PR target/34856
15243
        * config/spu/spu.c (spu_builtin_splats): Do not generate
15244
        invalid CONST_VECTOR expressions.
15245
        (spu_expand_vector_init): Likewise.
15246
 
15247
2008-06-28  Richard Sandiford  
15248
 
15249
        * optabs.c (libfunc_decls): New variable.
15250
        (libfunc_decl_hash, libfunc_decl_eq): New functions.
15251
        (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
15252
        for the same function twice.
15253
 
15254
2008-06-27  Uros Bizjak  
15255
 
15256
        * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
15257
        ix86_expand_binary_operator directly.
15258
        (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
15259
        for operand 2.
15260
        (*ashrti3_1): Ditto.
15261
        (*lshrti3_1): Ditto.
15262
        (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
15263
        (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
15264
        using only one splitter.  Conditionaly execute splitter before or
15265
        after peephole2 pass.
15266
        (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
15267
        (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
15268
        Use only one alternative in asm template.
15269
        (x86_64_shld): Compress operand 2 constraints. Use only one alternative
15270
        in asm template.
15271
        (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
15272
        "J" operand constraint for operand 2.
15273
        (*ashldi3_cconly_rex64): Ditto.
15274
        (*ashrdi3_cmp_rex64): Ditto.
15275
        (*ashrdi3_cconly_rex64): Ditto.
15276
        (*lshrdi3_cmp_rex64): Ditto.
15277
        (*lshrdi3_cconly_rex64): Ditto.
15278
        * config/i386/predicates.md (const_1_to_63_operand): New predicate.
15279
        * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
15280
        (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
15281
        gen_x86_shrd_1.
15282
 
15283
2008-06-27  Jakub Jelinek  
15284
 
15285
        * gimplify.c (omp_is_private): Don't return true if decl is not
15286
        already private on #pragma omp for or #pragma omp parallel for.
15287
 
15288
        PR debug/36617
15289
        * tree-cfg.c (struct move_stmt_d): Replace block field with
15290
        orig_block and new_block fields.
15291
        (move_stmt_r): Only set TREE_BLOCK to p->new_block if
15292
        if it used to be NULL, p->orig_block or if p->orig_block is NULL.
15293
        (move_block_to_fn): Replace vars_map and new_label_map arguments
15294
        with struct move_stmt_d pointer.
15295
        (replace_block_vars_by_duplicates): New function.
15296
        (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
15297
        move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
15298
        all subblocks of ORIG_BLOCK to the new function.  Call
15299
        replace_block_vars_by_duplicates.
15300
        * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
15301
        * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
15302
        BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
15303
        Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
15304
        (expand_omp): Temporarily set input_location to the location of
15305
        region's controlling stmt.
15306
        (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
15307
        BIND_EXPR, push ctx->block_vars and gimplification vars into
15308
        the BIND_EXPR and its block's BLOCK_VARS instead of directly
15309
        into dest function.
15310
        (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
15311
        there are any BLOCK_VARS.
15312
        (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
15313
        OMP_PARALLEL or OMP_TASK stmt.
15314
        (lower_omp): Save and restore input_location around the lower_omp_1
15315
        call.
15316
 
15317
2008-06-27  Richard Guenther  
15318
 
15319
        PR tree-optimization/36400
15320
        PR tree-optimization/36373
15321
        PR tree-optimization/36344
15322
        * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
15323
        var_nonlocal, nonlocal_tree, nonlocal_id): New globals
15324
        (update_alias_info): Remove call clobbering code.
15325
        (make_constraint_to): New helper function.
15326
        (make_escape_constraint): Likewise.
15327
        (handle_rhs_call): Use it on all pointer containing arguments.
15328
        Also mark the static chain escaped.
15329
        (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
15330
        instead of ANYTHING.
15331
        (make_constraint_from): New helper split out from ...
15332
        (make_constraint_from_anything): ... here.
15333
        (find_func_aliases): Add constraints for escape sites.
15334
        (intra_create_variable_infos): Make constraints from NONLOCAL
15335
        for parameters.
15336
        (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
15337
        as ANYTHING.
15338
        (clobber_what_p_points_to): Remove.
15339
        (clobber_what_escaped): New function.
15340
        (init_base_vars): Init NONLOCAL and ESCAPED.
15341
        (do_sd_constraint): Do not propagate the solution from ESCAPED
15342
        but use ESCAPED as a placeholder.
15343
        (solve_graph): Likewise.
15344
        * tree-flow.h (clobber_what_p_points_to): Remove.
15345
        (clobber_what_escaped): Declare.
15346
        * tree-ssa-alias.c (set_initial_properties): Call it.
15347
        Remove code clobbering escaped pointers.
15348
 
15349
2008-06-27  Richard Sandiford  
15350
 
15351
        * function.c (allocate_struct_function): Only allocate a unique
15352
        funcdef_no if the decl is nonzero.
15353
 
15354
2008-06-27  Richard Sandiford  
15355
 
15356
        * config/mips/mips-protos.h (mips_split_const_insns): Declare.
15357
        * config/mips/mips.c (mips_split_const_insns): New function.
15358
        * config/mips/mips.md (move_type): New attribute.
15359
        (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
15360
        (dword_mode): New attribute.
15361
        (type): Avoid long line.  Map "move_type"s to "type"s,
15362
        choosing "multi" for doubleword moves if appropriate.
15363
        Swap MTC/MFC comments to match their declaration order.
15364
        (extended_mips16): Default to "yes" if "move_type" is "sll0",
15365
        "type" is "branch" or "jal" is "direct".
15366
        (length): Handle "extended_mips16" first.  Make the default
15367
        "0" for "ghost" instructions.  Set the length from "move_type".
15368
        (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
15369
        of "type", with "sll0" for the register alternative.  Remove the
15370
        "extended_mips16" attribute.
15371
        (zero_extendsidi2, *clear_upper32): Use "move_type" instead
15372
        of "type", with "shift_shift" for the register alternative.
15373
        Remove the "length" attribute.
15374
        (*extend2, *extendqihi2): Likewise.
15375
        (*zero_extend2): Use "move_type" instead
15376
        of "type", with "andi" for the register alternative.
15377
        (*zero_extendqihi2): Likewise.
15378
        (*zero_extend2_mips16e): Use a "move_type"
15379
        of "andi" instead of a "type" of "arith".
15380
        (*zero_extend2_mips16): Use "move_type"
15381
        instead of "type".
15382
        (*zero_extendqihi2_mips16, mov_l, mov_r, mov_l)
15383
        (mov_r, *mov_ra): Likewise.
15384
        (extendsidi2): Use "move_type" instead of "type", with "move"
15385
        for the register alternative.
15386
        (*extend2_mips16e): Use "move_type" instead
15387
        of "type", with "signext" for the register alternative.
15388
        (*extend2_se): Likewise.
15389
        (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
15390
        (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
15391
        (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
15392
        (floatdisf2, *branch_equality_mips16): Likewise.
15393
        (unnamed branch insn): Likewise.
15394
        (*movdi_gp32_fp64): Fold into...
15395
        (*movdi_32bit): ...here.
15396
        (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
15397
        (*movdf_hardfloat): ...this new pattern.
15398
        (*movdf_softfloat): Remove redundant FPR alternatives.
15399
        (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
15400
        (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
15401
        (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
15402
        the "move" attribute.
15403
        (*movdi_32bit): Use "move_type" instead of "type" and remove the
15404
        "length" attribute.  Use "fpload" and "fpstore" instead of "load"
15405
        and "store" for COP loads and stores.
15406
        (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
15407
        (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
15408
        (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
15409
        (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
15410
        (*movtf_mips16, *movv2sf): Likewise.
15411
        (mfhi_, mflo_)
15412
        (load_low, load_high, store_word, mthc1)
15413
        (mfhc1): Use "move_type" instead of "move".
15414
        (*low_mips16): Use "extended_mips16" instead of "length".
15415
        (loadgp_blockage): Remove the "length" attribute.
15416
        (blockage, set_got_version, update_got_version): Likewise.
15417
        (call_internal): Remove the "extended_mips16" attribute.
15418
        (call_value_internal, call_value_multiple_internal): Likewise.
15419
        * config/mips/loongson.md (mov_internal): Use "move_type"
15420
        instead of "move".
15421
        * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
15422
        the "length" attribute.
15423
 
15424
2008-06-27  Kaveh R. Ghazi  
15425
 
15426
        * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
15427
        -Wcast-qual warnings.
15428
        * c-pragma.c (dpm_eq, handle_pragma_push_macro,
15429
        handle_pragma_pop_macro): Likewise.
15430
        * collect2.c (resolve_lib_name): Likewise.
15431
        * config/arc/arc.c (arc_init): Likewise.
15432
        * config/arm/arm.c (neon_builtin_compare,
15433
        locate_neon_builtin_icode): Likewise.
15434
        * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
15435
        * config/bfin/bfin.c (bfin_init_machine_status,
15436
        bfin_optimize_loop): Likewise.
15437
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
15438
        * config/cris/cris.c (cris_init_expanders): Likewise.
15439
        * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
15440
        * config/darwin.c (machopic_indirection_eq,
15441
        machopic_indirection_name, machopic_output_indirection): Likewise.
15442
        * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
15443
        frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
15444
        frv_optimize_membar): Likewise.
15445
        * config/i386/cygwin.h (mingw_scan,
15446
        GCC_DRIVER_HOST_INITIALIZATION): Likewise.
15447
        * config/i386/cygwin1.c (mingw_scan): Likewise.
15448
        * config/i386/i386.c (machopic_output_stub): Likewise.
15449
        * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
15450
        i386_pe_unique_section): Likewise.
15451
        * config/ia64/ia64.c (ia64_init_machine_status,
15452
        ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
15453
        Likewise.
15454
        * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
15455
        * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
15456
        * config/m68k/m68k.c (m68k_handle_option,
15457
        m68k_sched_md_init_global): Likewise.
15458
        * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
15459
        mcore_unique_section): Likewise.
15460
        * config/mips/mips.c (mips_block_move_straight,
15461
        mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
15462
        Likewise.
15463
        * config/mmix/mmix.c (mmix_init_machine_status,
15464
        mmix_encode_section_info): Likewise.
15465
        * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
15466
        * config/rs6000/rs6000.c (rs6000_init_machine_status,
15467
        print_operand_address, output_toc, redefine_groups,
15468
        rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
15469
        * config/s390/s390.c (s390_init_machine_status): Likewise.
15470
        * config/score/score.c (score_block_move_straight,
15471
        score_block_move_loop_body): Likewise.
15472
        * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
15473
        * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
15474
        * emit-rtl.c (find_auto_inc): Likewise.
15475
        * gcc.c (translate_options, process_command): Likewise.
15476
        * reorg.c (dbr_schedule): Likewise.
15477
        * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
15478
        * xcoffout.c (xcoffout_declare_function): Likewise.
15479
 
15480
2008-06-27  Daniel Berlin  
15481
 
15482
        * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
15483
        ipa-pta working again.
15484
 
15485
2008-06-27  David Edelsohn  
15486
 
15487
        * config/rs6000/t-aix52: Append large data option to LDFLAGS for
15488
        genautomata.
15489
 
15490
2008-06-27  Edmar Wienskoski  
15491
 
15492
        * config.gcc (powerpc*-*-*): Add new core e500mc.
15493
        * config/rs6000/e500mc.md: New file.
15494
        * config/rs6000/rs6000.c (processor_costs): Add new costs for
15495
        e500mc.
15496
        (rs6000_override_options): Add e500mc case to
15497
        processor_target_table. Altivec and Spe options not allowed
15498
        with e500mc. Add isel instruction to e500mc by
15499
        default. Initialize rs6000_cost for e500mc.
15500
        (rs6000_issue_rate): Set issue rate for e500mc.
15501
        * config/rs6000/rs6000.h (processor_type): Add
15502
        PROCESSOR_PPCE500MC.
15503
        (ASM_CPU_SPEC): Add e500mc.
15504
        Set TARGET_ISEL to rs6000_isel.
15505
        * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
15506
        (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
15507
        * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
15508
        Include e500mc.md.
15509
        * doc/invoke.texi: Add e500mc to list of cpus.
15510
 
15511
2008-06-27  Laurynas Biveinis  
15512
 
15513
        PR c/34867
15514
        * c-lex.c (lex_charconst): Initialize unsignedp.
15515
 
15516
2008-06-27  Olivier Hainque  
15517
 
15518
        * gimplify.c (gimplify_modify_expr_to_memset): Assert our
15519
        documented assumptions.
15520
 
15521
2008-06-26  H.J. Lu  
15522
 
15523
        * dwarf2out.c: Remove trailing white spaces.  Break long line
15524
        in comments.
15525
 
15526
2008-06-26  Richard Sandiford  
15527
 
15528
        * libfuncs.h (LTI_synchronize): New libfunc_index.
15529
        (synchronize_libfunc): Declare.
15530
        * builtins.c (expand_builtin_synchronize): Consider using
15531
        synchronize_libfunc before falling back on an asm blockage.
15532
        * config/mips/mips.c: Include libfuncs.h
15533
        (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
15534
 
15535
2008-06-26  Nathan Froyd  
15536
 
15537
        * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
15538
        parameter.  Copy stack_reg to r11 where appropriate.
15539
        (no_global_regs_above): Add gpr parameter.
15540
        (rs6000_stack_info): Only add padding for SPE save area if we
15541
        are saving SPE GPRs and CR.
15542
        (saveres_routine_syms): New variable.
15543
        (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
15544
        Define.
15545
        (rs6000_savres_routine_sym): New function.
15546
        (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
15547
        split out of...
15548
        (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
15549
        rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
15550
        Tweak FPR out-of-line saving.
15551
        (rs6000_make_savres_rtx): New function.
15552
        (rs6000_use_multiple_p): New function.
15553
        (rs6000_savres_strategy): New function.
15554
        (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
15555
        out-of-line if appropriate.
15556
        * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
15557
        if we are optimizing for size.
15558
        (GP_SAVE_INLINE): Define.
15559
        (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
15560
        * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
15561
        * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
15562
        * config/rs6000/rs6000.md (*save_gpregs_): New insn.
15563
        (*save_fpregs_): Add use of r11.
15564
        (*restore_gpregs_): New insn.
15565
        (*return_and_restore_gpregs_): New insn.
15566
        (*return_and_restore_fpregs_): Adjust to clobber LR and
15567
        use r11.
15568
        * config/rs6000/spe.md (*save_gpregs_spe): New insn.
15569
        (*restore_gpregs_spe): New insn.
15570
        (*return_and_restore_gpregs_spe): New insn.
15571
        * config/rs6000/predicates.md (save_world_operation): Fix check.
15572
 
15573
2008-06-26  Steven Bosscher  
15574
 
15575
        * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
15576
        this point, so assert that.
15577
 
15578
2008-06-26  Steven Bosscher  
15579
 
15580
        * cfganal.c: Include vec.h and vecprim.h.
15581
        (compute_idf): Import from...
15582
        * tree-into-ssa (compute_idf): ...here.
15583
        * basic-block.h (compute_idf): Export.
15584
 
15585
2008-06-26  Joseph Myers  
15586
 
15587
        * c-decl.c (merge_decls): Use !current_function_decl to check for
15588
        extern declaration of C99 inline function being at file scope.
15589
 
15590
2008-06-25  John David Anglin  
15591
 
15592
        * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
15593
 
15594
2008-06-25  Kaveh R. Ghazi  
15595
 
15596
        * alias.c (record_alias_subset, init_alias_analysis): Fix
15597
        -Wc++-compat and/or -Wcast-qual warnings.
15598
        * attribs.c (lookup_attribute_spec): Likewise.
15599
        * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
15600
        copy_bb, connect_traces,
15601
        find_rarely_executed_basic_blocks_and_cr): Likewise.
15602
        * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
15603
        note_btr_set, migrate_btr_defs): Likewise.
15604
        * builtins.c (result_vector, expand_builtin_memcpy,
15605
        expand_builtin_mempcpy_args, expand_builtin_strncpy,
15606
        builtin_memset_read_str, expand_builtin_printf,
15607
        fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
15608
        Likewise.
15609
        * caller-save.c (mark_set_regs): Likewise.
15610
        * calls.c (expand_call, emit_library_call_value_1): Likewise.
15611
        * cgraph.c (cgraph_edge): Likewise.
15612
        * combine.c (likely_spilled_retval_1): Likewise.
15613
        * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
15614
        htab_counts_entry_del, get_coverage_counts): Likewise.
15615
        * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
15616
        new_cselib_val): Likewise.
15617
        * dbgcnt.c (dbg_cnt_process_opt): Likewise.
15618
        * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
15619
        Likewise.
15620
        * df-core.c (df_compact_blocks): Likewise.
15621
        * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
15622
        * df-scan.c (df_grow_reg_info, df_ref_create,
15623
        df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
15624
        df_ref_compare, df_ref_create_structure, df_bb_refs_record,
15625
        df_record_entry_block_defs, df_record_exit_block_uses,
15626
        df_bb_verify): Likewise.
15627
        * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
15628
        DF_REF_EXTRACT_MODE_CONST): New.
15629
        * dominance.c (get_immediate_dominator, get_dominated_by,
15630
        nearest_common_dominator, root_of_dom_tree,
15631
        iterate_fix_dominators, first_dom_son, next_dom_son): Fix
15632
        -Wc++-compat and/or -Wcast-qual warnings.
15633
        * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
15634
        record_store, replace_read, check_mem_read_rtx, scan_insn,
15635
        dse_step1, dse_record_singleton_alias_set): Likewise.
15636
        * dwarf2asm.c (dw2_force_const_mem): Likewise.
15637
 
15638
2008-06-25  Kaveh R. Ghazi  
15639
 
15640
        * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
15641
        dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
15642
        lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
15643
        assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
15644
        build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
15645
        add_ranges_num, add_ranges_by_labels, file_info_cmp,
15646
        file_name_acquire, output_file_names, add_const_value_attribute,
15647
        premark_used_types_helper, file_table_eq, file_table_hash,
15648
        lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
15649
        dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
15650
        -Wcast-qual warnings.
15651
        * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
15652
        ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
15653
        * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
15654
        gen_reg_rtx, start_sequence, init_emit): Likewise.
15655
        * et-forest.c (et_new_occ, et_new_tree): Likewise.
15656
        * except.c (init_eh_for_function, gen_eh_region,
15657
        remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
15658
        arh_to_landing_pad, arh_to_label, add_action_record,
15659
        add_call_site, switch_to_exception_section): Likewise.
15660
        * expmed.c (synth_mult): Likewise.
15661
        * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
15662
        store_expr): Likewise.
15663
        * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
15664
        Likewise.
15665
        * function.c (assign_stack_temp_for_type,
15666
        allocate_struct_function, match_asm_constraints_1): Likewise.
15667
        * gcov-io.c (gcov_allocate): Likewise.
15668
        * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
15669
        GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
15670
        (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
15671
        record_one_set, insert_expr_in_table, insert_set_in_table,
15672
        dump_hash_table, compute_hash_table_work, alloc_hash_table,
15673
        pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
15674
        reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
15675
        -Wcast-qual warnings.
15676
 
15677
2008-06-25  Kaveh R. Ghazi  
15678
 
15679
        * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
15680
        -Wcast-qual warnings.
15681
        * gcc.c (process_command): Likewise.
15682
        * genattrtab.c (oballoc): Use XOBNEW.
15683
        (oballocvec): Define.
15684
        (attr_hash_add_rtx, attr_hash_add_string, attr_string,
15685
        get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
15686
        gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
15687
        -Wc++-compat and/or -Wcast-qual warnings.
15688
        * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
15689
        XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
15690
        (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
15691
        gen_presence_absence_set, gen_automaton, gen_regexp_el,
15692
        gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
15693
        gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
15694
        add_excls, process_presence_absence_names,
15695
        process_presence_absence_patterns, add_presence_absence,
15696
        process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
15697
        get_free_state, add_arc, get_free_automata_list_el,
15698
        form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
15699
        transform_3, cache_presence, create_ainsns, create_automata,
15700
        create_state_ainsn_table, dfa_insn_code_enlarge,
15701
        output_trans_func, output_min_issue_delay_func,
15702
        output_dead_lock_func, output_reset_func,
15703
        output_get_cpu_unit_code_func, output_dfa_start_func,
15704
        expand_automata): Likewise.
15705
        * genextract.c (gen_insn): Likewise.
15706
        * gengtype-lex.l: Likewise.
15707
        * gengtype.c (read_input_list, adjust_field_type,
15708
        process_gc_options): Likewise.
15709
        * genoutput.c (note_constraint): Likewise.
15710
        * genpreds.c (mangle, add_constraint): Likewise.
15711
        * genrecog.c (process_define_predicate, new_decision,
15712
        add_to_sequence): Likewise.
15713
        * gensupport.c (record_insn_name): Likewise.
15714
 
15715
2008-06-25  Kaveh R. Ghazi  
15716
 
15717
        * config/i386/driver-i386.c (detect_caches_amd,
15718
        detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
15719
        and/or -Wcast-qual warnings.
15720
        *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
15721
        gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
15722
        gt_pch_save): Likewise.
15723
        * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
15724
        gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
15725
        * global.c (compute_regsets): Likewise.
15726
        * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
15727
        finish_graph_dump_file): Likewise.
15728
        * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
15729
        unlink_bb_notes): Likewise.
15730
        * integrate.c (get_hard_reg_initial_val): Likewise.
15731
        * ipa-prop.c (ipa_push_func_to_list): Likewise.
15732
        * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
15733
        * local-alloc.c (update_equiv_regs): Likewise.
15734
        * loop-invariant.c (check_invariant_table_size,
15735
        hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
15736
        Likewise.
15737
        * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
15738
        altered_reg_used, mark_altered): Likewise.
15739
        * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
15740
        insert_var_expansion_initialization,
15741
        combine_var_copies_in_loop_exit, apply_opt_in_copies,
15742
        release_var_copies): Likewise.
15743
        * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
15744
        analyze_matrix_decl, add_allocation_site, analyze_transpose,
15745
        analyze_accesses_for_phi_node, check_var_notmodified_p,
15746
        check_allocation_function, find_sites_in_func,
15747
        record_all_accesses_in_func, transform_access_sites,
15748
        transform_allocation_sites): Likewise.
15749
        * omp-low.c (new_omp_region, create_omp_child_function_name,
15750
        check_omp_nesting_restrictions, check_combined_parallel,
15751
        lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
15752
        * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
15753
        gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
15754
        gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
15755
        Likewise.
15756
        * opts-common.c (prune_options): Likewise.
15757
        * opts.c (add_input_filename, print_filtered_help,
15758
        get_option_state): Likewise.
15759
        * params.c (add_params): Likewise.
15760
        * passes.c (set_pass_for_id, next_pass_1,
15761
        do_per_function_toporder, pass_fini_dump_file): Likewise.
15762
        * postreload.c (reload_cse_simplify_operands): Likewise.
15763
        * predict.c (tree_predicted_by_p, tree_predict_edge,
15764
        clear_bb_predictions, combine_predictions_for_bb): Likewise.
15765
 
15766
2008-06-25  Kaveh R. Ghazi  
15767
 
15768
        * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
15769
        warnings.
15770
        * recog.c (check_asm_operands, validate_change_1): Likewise.
15771
        * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
15772
        subst_asm_stack_regs): Likewise.
15773
        * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
15774
        cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
15775
        * regmove.c (reg_is_remote_constant_p): Likewise.
15776
        * regrename.c (regrename_optimize, scan_rtx_reg,
15777
        kill_clobbered_value, kill_set_value, kill_autoinc_value):
15778
        Likewise.
15779
        * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
15780
        regstat_compute_calls_crossed): Likewise.
15781
        * reload1.c (init_reload, new_insn_chain,
15782
        has_nonexceptional_receiver, reload, copy_reloads,
15783
        calculate_needs_all_insns, init_elim_table): Likewise.
15784
        * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
15785
        * rtl.c (shallow_copy_rtx_stat): Likewise.
15786
        * rtlanal.c (parms_set): Likewise.
15787
        * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
15788
        sbitmap_resize, sbitmap_vector_alloc): Likewise.
15789
        * sched-ebb.c (earliest_block_with_similiar_load,
15790
        add_deps_for_risky_insns): Likewise.
15791
        * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
15792
        schedule_region): Likewise.
15793
        * see.c (eq_descriptor_pre_extension,
15794
        hash_descriptor_pre_extension, hash_del_pre_extension,
15795
        eq_descriptor_properties, hash_descriptor_properties,
15796
        hash_del_properties, see_seek_pre_extension_expr,
15797
        see_initialize_data_structures, see_print_register_properties,
15798
        see_print_pre_extension_expr, see_delete_merged_def_extension,
15799
        see_delete_unmerged_def_extension, see_emit_use_extension,
15800
        see_pre_delete_extension, see_map_extension, see_commit_changes,
15801
        see_analyze_merged_def_local_prop,
15802
        see_analyze_merged_def_local_prop,
15803
        see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
15804
        see_set_prop_merged_def, see_set_prop_unmerged_def,
15805
        see_set_prop_unmerged_use, see_print_one_extension,
15806
        see_merge_one_use_extension, see_merge_one_def_extension,
15807
        see_store_reference_and_extension, see_update_uses_relevancy,
15808
        see_update_defs_relevancy): Likewise.
15809
        * statistics.c (hash_statistics_hash, hash_statistics_eq,
15810
        hash_statistics_free, curr_statistics_hash): Likewise.
15811
        * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
15812
        expand_asm_operands, expand_return, case_bit_test_cmp,
15813
        expand_case): Likewise.
15814
        * stor-layout.c (start_record_layout): Likewise.
15815
        * stringpool.c (ggc_alloc_string, gt_pch_n_S,
15816
        gt_pch_save_stringpool): Likewise.
15817
        * tree-data-ref.c (hash_stmt_vertex_info,
15818
        have_similar_memory_accesses_1, ref_base_address_1): Likewise.
15819
        * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
15820
 
15821
2008-06-25  Uros Bizjak  
15822
 
15823
        PR target/36627
15824
        * config/i386/i386.md: Change constraints of HImode and QImode
15825
        immediate operands from "i" to "n".  Change SImode "ni" constraint to
15826
        "i" and SImode "rmi" constraint to "g".  Remove all constraints
15827
        from const0_operand and const1_operand predicated operands.
15828
        (i): Change QImode and HImode attribute from "i" to "n".
15829
        (*subqi_2): Change HImode operands to QImode.
15830
        (*subqi_3): Ditto.
15831
 
15832
2008-06-25  Olivier Hainque  
15833
 
15834
        * Makefile.in (GTFILES_H): Use | instead of ; as separator in
15835
        sed substitutions.
15836
 
15837
2008-06-25  Richard Guenther  
15838
 
15839
        * tree-ssa-structalias.c (fieldoff_compare): Make sure to
15840
        not overflow the result type.
15841
 
15842
2008-06-25  Richard Guenther  
15843
 
15844
        * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
15845
        (vn_lookup): Likewise.
15846
 
15847
2008-06-25  Richard Guenther  
15848
 
15849
        PR tree-optimization/35518
15850
        * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
15851
        * tree-sra.c (instantiate_element): Use fold_build3 to build
15852
        BIT_FIELD_REFs.
15853
        (try_instantiate_multiple_fields): Likewise.
15854
 
15855
2008-06-24  Andrew Pinski  
15856
 
15857
        * config/rs6000/rs6000.md: Change all string instruction's clobber to
15858
        be early clobbers.
15859
 
15860
2008-06-24  Andrew Pinski  
15861
 
15862
        * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
15863
        use_backchain_to_restore_sp to true
15864
        if the offset of the link register save area would go over the 32k - 1
15865
        offset limit of the load
15866
        instructions.
15867
 
15868
2008-06-25  Hans-Peter Nilsson  
15869
 
15870
        * doc/invoke.texi (Optimize Options) : Add
15871
        anchor for the type-punning blurb.  Cross-reference "Structures
15872
        unions enumerations and bit-fields implementation".  Provide a
15873
        cast-through-pointer example.  Make final sentence self-contained.
15874
        * doc/implement-c.texi (Structures unions enumerations and
15875
        bit-fields implementation): Cross-reference the type-punning blurb
15876
        in the -fstrict-aliasing documentation.
15877
 
15878
2008-06-24  Andrew Pinski  
15879
 
15880
        PR middle-end/36594
15881
        * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
15882
        the memory instead of the memory itself for the save area.
15883
 
15884
2008-06-24  Olivier Hainque  
15885
            Nicolas Roche  
15886
 
15887
        * gengtype.c (srcdir_len): size_t instead of int.
15888
        (get_file_realbasename): New function.  For F a filename, the real
15889
        basename of F, with all the path components stripped.
15890
        (get_file_srcdir_relative_path): New function.  For F a filename, the
15891
        relative path to F from $(srcdir).
15892
        (get_file_basename): Rewrite using get_file_srcdir_relative_path and
15893
        get_file_realbasename.  Adjust the head comment.
15894
        (get_prefix_langdir_index): New function. For F a filename, return the
15895
        lang_dir_names[] relative index of the language directory that is
15896
        a prefix in F.
15897
        (get_file_langdir): For F a filename, return the name of the language
15898
        directory where F is located.
15899
        (get_file_gtfilename): New function. The gt- output file name for an
15900
        input filename F.
15901
        (get_output_file_with_visibility): Replace in-line computations with
15902
        uses of get_file_gtfilename and get_prefix_langdir_index.
15903
        * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
15904
 
15905
2008-06-24  Jakub Jelinek  
15906
 
15907
        PR tree-optimization/36504
15908
        * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
15909
        references without base address.
15910
 
15911
2008-06-23  Uros Bizjak  
15912
 
15913
        PR middle-end/36584
15914
        * calls.c (expand_call): Increase alignment for recursive functions.
15915
 
15916
2008-06-23  Anatoly Sokolov  
15917
 
15918
        * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
15919
        (TARGET_FUNCTION_VALUE): New define.
15920
        * config/avr/avr-protos.h (avr_function_value): Remove declaration.
15921
        * config/avr/avr.h (FUNCTION_VALUE): Remove.
15922
 
15923
2008-06-23  Uros Bizjak  
15924
 
15925
        * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
15926
        (fmod3): Ditto.
15927
        (remainderxf3): Ditto.
15928
        (remainder3): Ditto.
15929
 
15930
2008-06-23  Jakub Jelinek  
15931
 
15932
        PR target/36533
15933
        * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
15934
        REG is a hard register.
15935
 
15936
        PR tree-optimization/36508
15937
        * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
15938
        499, don't check it at all in release compilers.
15939
 
15940
2008-06-23  Uros Bizjak  
15941
 
15942
        * config/i386/i386.md (*fop__1_i387): Use SSE_FLOAT_MODE_P
15943
        together with SSE_TARGET_MATH to disable insn pattern.
15944
        (*fop__2_i387): Ditto.
15945
        (*fop__3_i387): Ditto.
15946
 
15947
2008-06-22  Andy Hutchinson  
15948
 
15949
        * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
15950
 
15951
2008-06-22  Laurynas Biveinis  
15952
 
15953
        PR middle-end/34906
15954
        * gimplify.c (gimplify_asm_expr): Check the return code of
15955
        parse_output_constraint call, set function return and is_inout
15956
        value if it failed.
15957
 
15958
2008-06-22  Ian Lance Taylor  
15959
 
15960
        * c-lex.c (narrowest_unsigned_type): Change itk to int.
15961
        (narrowest_signed_type): Likewise.
15962
        * c-typeck.c (c_common_type): Change local variable mclass to enum
15963
        mode_class, twice.
15964
        (parser_build_binary_op): Compare the TREE_CODE_CLASS with
15965
        tcc_comparison, not the tree code itself.
15966
        * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
15967
        (c_expand_expr): Cast modifier to enum expand_modifier.
15968
        * c-common.h (C_RID_CODE): Add casts.
15969
        (C_SET_RID_CODE): Define.
15970
        * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
15971
        (c_lex_one_token): Add cast to avoid warning.
15972
        (c_parser_objc_type_name): Rename local typename to type_name.
15973
        (check_no_duplicate_clause): Change code parameter to enum
15974
        omp_clause_code.
15975
        (c_parser_omp_var_list_parens): Change kind parameter to enum
15976
        omp_clause_code.
15977
        (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
15978
        c_parser_omp_list_var_parens.
15979
        (c_parser_omp_threadprivate): Likewise.
15980
        * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
15981
        * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
15982
        * c-format.c (NO_FMT): Define.
15983
        (printf_length_specs): Use NO_FMT.
15984
        (asm_fprintf_length_specs): Likewise.
15985
        (gcc_diag_length_specs): Likewise.
15986
        (scanf_length_specs): Likewise.
15987
        (strfmon_length_specs): Likewise.
15988
        (gcc_gfc_length_specs): Likewise.
15989
        (printf_flag_specs): Change 0 to STD_C89.
15990
        (asm_fprintf_flag_specs): Likewise.
15991
        (gcc_diag_flag_specs): Likewise.
15992
        (gcc_cxxdiag_flag_specs): Likewise.
15993
        (scanf_flag_specs): Likewise.
15994
        (strftime_flag_specs): Likewise.
15995
        (strfmon_flag_specs): Likewise.
15996
        (print_char_table): Likewise.
15997
        (asm_fprintf_char_table): Likewise.
15998
        (gcc_diag_char_table): Likewise.
15999
        (gcc_tdiag_char_table): Likewise.
16000
        (gcc_cdiag_char_table): Likewise.
16001
        (gcc_cxxdiag_char_table): Likewise.
16002
        (gcc_gfc_char_table): Likewise.
16003
        (scan_char_table): Likewise.
16004
        (time_char_table): Likewis.
16005
        (monetary_char_table): Likewise.
16006
        * c-format.h (BADLEN): Likewise.
16007
 
16008
2008-06-21  Ian Lance Taylor  
16009
 
16010
        * tree.h (enum tree_code): Include all-tree.def, not tree.def.
16011
        Define END_OF_BASE_TREE_CODES around inclusion.
16012
        * tree.c (tree_code_type): New global array.
16013
        (tree_code_length, tree_code_name): Likewise.
16014
        * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
16015
        $(lang_tree_files).
16016
        (all-tree.def, s-alltree): New targets.
16017
        (gencheck.h, s-gencheck): Remove.
16018
        (tree.o): Depend upon all-tree.def.
16019
        (build/gencheck.o): Remove gencheck.h dependency.
16020
        (mostlyclean): Don't remove gencheck.h.
16021
        * c-common.h (enum c_tree_code): Remove.
16022
        * c-lang.c (tree_code_type): Remove.
16023
        (tree_code_length, tree_code_name): Remove.
16024
        * gencheck.c (tree_codes): Include all-tree.def, rather than
16025
        tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
16026
        after it is used.
16027
        * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
16028
        than tree.def.
16029
        * cp/cp-tree.h (enum cplus_tree_code): Remove.
16030
        (operator_name_info): Size to MAX_TREE_CODES.
16031
        (assignment_operator_name_info): Likewise.
16032
        * cp/cp-lang.c (tree_code_type): Remove.
16033
        (tree_code_length, tree_code_name): Remove.
16034
        * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
16035
        (assignment_operator_name_info): Likewise.
16036
        * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
16037
        MAX_TREE_CODES.
16038
        * cp/mangle.c (write_expression): Likewise.
16039
        * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
16040
        * fortran/f95-lang.c (tree_code_type): Remove.
16041
        (tree_code_length, tree_code_name): Remove.
16042
        * java/java-tree.h (enum java_tree_code): Remove.
16043
        * java/lang.c (tree_code_type): Remove.
16044
        (tree_code_length, tree_code_name): Remove.
16045
        * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
16046
        * objc/objc-act.h (enum objc_tree_code): Remove.
16047
        * objc/objc-lang.c (tree_code_type): Remove.
16048
        (tree_code_length, tree_code_name): Remove.
16049
        * objcp/objcp-lang.c (tree_code_type): Remove.
16050
        (tree_code_length, tree_code_name): Remove.
16051
        * ada/ada-tree.h (enum gnat_tree_code): Remove.
16052
        * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
16053
        * ada/misc.c (tree_code_type): Remove.
16054
        (tree_code_length, tree_code_name): Remove.
16055
 
16056
2008-06-21  Bernhard Fischer  
16057
 
16058
        * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
16059
        the grand_bitmap_obstack.
16060
 
16061
2008-06-20  Kaveh R. Ghazi  
16062
 
16063
        * ggc.h (GGC_RESIZEVAR): New, reorder macros.
16064
        * tracer.c (tail_duplicate): Fix for -Wc++-compat.
16065
        * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
16066
        * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
16067
        move_stmt_r, new_label_mapper): Likewise.
16068
        * tree-complex.c (cvc_lookup): Likewise.
16069
        * tree-dfa.c (create_function_ann): Likewise.
16070
        * tree-dump.c (dump_register): Likewise.
16071
        * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
16072
        find_phi_replacement_condition): Likewise.
16073
        * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
16074
        tree_function_versioning): Likewise.
16075
        * tree-into-ssa.c (cmp_dfsnum): Likewise.
16076
        * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
16077
        * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
16078
        get_nonlocal_debug_decl, convert_nonlocal_reference,
16079
        convert_nonlocal_omp_clauses, get_local_debug_decl,
16080
        convert_local_reference, convert_local_omp_clauses,
16081
        convert_nl_goto_reference, convert_nl_goto_receiver,
16082
        convert_tramp_reference, convert_call_expr): Likewise.
16083
        * tree-outof-ssa.c (contains_tree_r): Likewise.
16084
        * tree-parloops.c (reduction_phi, initialize_reductions,
16085
        eliminate_local_variables_1, add_field_for_reduction,
16086
        add_field_for_name, create_phi_for_local_result,
16087
        create_call_for_reduction_1, create_loads_for_reductions,
16088
        create_stores_for_reduction, create_loads_and_stores_for_name):
16089
        Likewise.
16090
        * tree-phinodes.c (allocate_phi_node): Likewise.
16091
        * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
16092
        * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
16093
        * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
16094
        * tree-ssa-coalesce.c (compare_pairs): Likewise.
16095
        * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
16096
        memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
16097
        record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
16098
        * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
16099
        * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
16100
        vn_nary_op_insert): Likewise.
16101
        * tree-ssa.c (redirect_edge_var_map_add,
16102
        redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
16103
        * tree-vectorizer.c (vectorize_loops): Likewise.
16104
        * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
16105
        build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
16106
        tree_cons_stat, build1_stat, build_variant_type_copy,
16107
        decl_init_priority_lookup, decl_fini_priority_lookup,
16108
        decl_priority_info, decl_restrict_base_lookup,
16109
        decl_restrict_base_insert, decl_debug_expr_lookup,
16110
        decl_debug_expr_insert, decl_value_expr_lookup,
16111
        decl_value_expr_insert, type_hash_eq, type_hash_lookup,
16112
        type_hash_add, get_file_function_name, tree_check_failed,
16113
        tree_not_check_failed, tree_range_check_failed,
16114
        omp_clause_range_check_failed, build_omp_clause,
16115
        build_vl_exp_stat): Likewise.
16116
        * value-prof.c (gimple_histogram_value,
16117
        gimple_duplicate_stmt_histograms): Likewise.
16118
        * var-tracking.c (attrs_list_insert, attrs_list_copy,
16119
        unshare_variable, variable_union_info_cmp_pos, variable_union,
16120
        dataflow_set_different_1, dataflow_set_different_2,
16121
        vt_find_locations, variable_was_changed, set_variable_part,
16122
        emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
16123
        * varasm.c (prefix_name, emutls_decl, section_entry_eq,
16124
        section_entry_hash, object_block_entry_eq,
16125
        object_block_entry_hash, create_block_symbol,
16126
        initialize_cold_section_name, default_function_rodata_section,
16127
        strip_reg_name, set_user_assembler_name, const_desc_eq,
16128
        build_constant_desc, output_constant_def, lookup_constant_def,
16129
        const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
16130
        create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
16131
        default_internal_label): Likewise.
16132
        * varray.c (varray_init, varray_grow): Likewise.
16133
        * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
16134
 
16135
2008-06-20  Uros Bizjak  
16136
 
16137
        * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
16138
        operators for "test" insn.  Macroize insn using SWI mode macro.
16139
        (*jcc_fused_2): Ditto.
16140
        (*jcc_fused_3): Macroize insn using SWI mode macro.
16141
        (*jcc_fused_4): Ditto.
16142
 
16143
2008-06-20  Bernhard Fischer  
16144
 
16145
        * tree-ssa-pre.c: Fix typo in comment.
16146
        (init_antic, fini_antic): Add explicit funtions for
16147
        initializing and deinitializing ANTIC and AVAIL sets.
16148
        (create_expression_by_pieces): Fix typo in comment.
16149
        Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
16150
        (execute_pre): Eventually dump details about ANTIC_IN.
16151
 
16152
2008-06-19  Kaveh R. Ghazi  
16153
 
16154
        * collect2.c (main, add_to_list): Fix for -Wc++-compat.
16155
        * gcc.c (translate_options, init_spec, store_arg, read_specs,
16156
        add_to_obstack, file_at_path, find_a_file, execute,
16157
        add_preprocessor_option, add_assembler_option, add_linker_option,
16158
        process_command, insert_wrapper, do_option_spec, do_self_spec,
16159
        spec_path, do_spec_1, is_directory, main, used_arg,
16160
        getenv_spec_function): Likewise.
16161
        * tlink.c (symbol_hash_lookup, file_hash_lookup,
16162
        demangled_hash_lookup, symbol_push, file_push, frob_extension):
16163
        Likewise.
16164
 
16165
2008-06-19  Kenneth Zadeck  
16166
 
16167
        * doc/rtl.texi: Updated subreg section.
16168
 
16169
2008-06-19  Jakub Jelinek  
16170
 
16171
        PR c++/36523
16172
        * cgraphunit.c (cgraph_process_new_functions): Don't clear
16173
        node->needed and node->reachable.
16174
        * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
16175
        * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
16176
        (expand_task_call): Don't call expand_task_copyfn.
16177
        (expand_task_copyfn): Renamed to...
16178
        (finalize_task_copyfn): ... this.
16179
 
16180
2008-06-19  Jan Hubicka  
16181
 
16182
        * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
16183
        clobbering framepointer.
16184
 
16185
2008-06-19  Jan Hubicka  
16186
 
16187
        * tree-optimize.c (execute_early_local_optimizations): Set
16188
        cgraph_state only at first invocation.
16189
 
16190
2008-06-19  Kaveh R. Ghazi  
16191
 
16192
        * system.h (-Wc++-compat): Activate as a warning, no an error.
16193
 
16194
2008-06-19  Uros Bizjak  
16195
 
16196
        * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
16197
        instead of "#" in insn asm template.
16198
        (*jcc_fused_2): Ditto.
16199
 
16200
2008-06-19  Uros Bizjak  
16201
 
16202
        * config/i386/i386.h (ix86_tune_indices)
16203
        [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
16204
        (TARGET_FUSE_CMP_AND_BRANCH): New define.
16205
        * config/i386/i386.md (*jcc_fused_1): New insn pattern
16206
        (*jcc_fused_2): Ditto.
16207
        * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
16208
        X86_TUNE_FUSE_CMP_AND_BRANCH targets.
16209
        (print operand): Handle 'E' and 'e' code.
16210
 
16211
2008-06-19  Anatoly Sokolov  
16212
 
16213
        * config/avr/avr.c (avr_mcu_t): Add attiny13a.
16214
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
16215
        * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
16216
 
16217
2008-06-19  Bernhard Fischer  
16218
 
16219
        * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
16220
        node->decl.
16221
        (cgraph_expand_function): Use local copy of decl.
16222
        (cgraph_expand_all_functions): Remove redundant initialization of
16223
        order_pos.
16224
        (cgraph_optimize): Reword internal_error message.
16225
 
16226
2008-06-19  Chung-Lin Tang  
16227
 
16228
        * arm-protos.h (arm_return_in_memory): Remove public
16229
        arm_return_in_memory() prototype.
16230
        * arm.c (arm_return_in_memory): Add static prototype, add target
16231
        hook macro, change definition and comments.
16232
        * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
16233
 
16234
2008-06-19  Ben Elliston  
16235
 
16236
        * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
16237
        real.c: Remove references to IEEE 754R.
16238
        * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
16239
        * doc/libgcc.texi (Decimal float library routines): Likewise.
16240
 
16241
2008-06-18  Ulrich Weigand  
16242
 
16243
        * targhooks.h (struct gcc_target): New member unwind_word_mode.
16244
        (default_unwind_word_mode): Add prototype.
16245
        * targhooks.c (default_unwind_word_mode): New function.
16246
        (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
16247
        instead of word_mode.
16248
        * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
16249
        (TARGET_INITIALIZER): Use it.
16250
 
16251
        * c-common.c (handle_mode_attribute): Support "unwind_word"
16252
        mode attribute.
16253
        * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
16254
 
16255
        * except.c (init_eh): Use targetm.unwind_word_mode () instead of
16256
        word_mode to access SjLj_Function_Context member "data".
16257
        (sjlj_emit_dispatch_table): Likewise.  Also, perform type
16258
        conversion from targetm.eh_return_filter_mode () to
16259
        targetm.unwind_word_mode () if they differ.
16260
 
16261
        * builtin-types.def (BT_UNWINDWORD): New primitive type.
16262
        (BT_FN_UNWINDWORD_PTR): New function type.
16263
        (BT_FN_WORD_PTR): Remove.
16264
        * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
16265
        * except.c (expand_builtin_extend_pointer): Convert pointer to
16266
        targetm.unwind_word_mode () instead of word_mode.
16267
 
16268
        * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
16269
        * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
16270
        (spu_unwind_word_mode): New function.
16271
        (TARGET_EH_RETURN_FILTER_MODE): Do not define.
16272
        (TARGET_UNWIND_WORD_MODE): Define.
16273
        * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
16274
 
16275
2008-06-18  Ulrich Weigand  
16276
 
16277
        * config/spu/spu.c (reg_align): Remove.
16278
        (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
16279
        (spu_split_load): Use regno_aligned_for_load instead of reg_align.
16280
        (spu_split_store): Likewise.
16281
 
16282
2008-06-18  Bernhard Fischer  
16283
 
16284
        * gcc/tree-vn.c: Fix typo in comment.
16285
 
16286
2008-06-18  Jan Hubicka  
16287
 
16288
        * cgraphunit.c (cgraph_optimize): Output debug info when doing
16289
        toplevel reorder too.
16290
 
16291
2008-06-18  Jan Hubicka  
16292
 
16293
        * c-opts.c (c_common_post_options): PCH is not compatible with
16294
        no-unit-at-a-time.
16295
        * opts.c (handle_options): Enable unit-at-a-time at O0 along with
16296
        -fno-toplevel-reorder by default now.
16297
 
16298
2008-06-18  Ralf Wildenhues  
16299
 
16300
        PR documentation/30739
16301
        * doc/install.texi (Prerequisites): Document dependency on awk.
16302
 
16303
2008-06-18  Uros Bizjak  
16304
            Ian Lance Taylor  
16305
 
16306
        PR rtl-optimization/35604
16307
        * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
16308
        only want to change jump destinations, not eventual label comparisons.
16309
 
16310
2008-06-16  Jan Hubicka  
16311
 
16312
        * cgraphunit.c (cgraph_expand_pending_functions): Give up at
16313
        syntax errors.
16314
        (cgraph_analyze_function): Likewise.
16315
 
16316
2008-06-16  Jan Hubicka  
16317
 
16318
        * cgraph.h (cgraph_mark_if_needed): New function.
16319
        * cgraphunit.c (cgraph_mark_if_needed): New function.
16320
        * c-decl.c (duplicate_decl): Use it.
16321
 
16322
2008-06-16  Jan Hubicka  
16323
 
16324
        * cgraph.c (cgraph_add_new_function): When in expansion state, do
16325
        lowering.
16326
 
16327
2008-06-16  Jan Hubicka  
16328
 
16329
        * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
16330
 
16331
2008-06-16  Daniel Jacobowitz  
16332
            Kazu Hirata  
16333
            Maxim Kuvyrkov  
16334
 
16335
        * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
16336
        * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
16337
        * config/mips/linux.h (host_detect_local_cpu): Declare, add to
16338
        EXTRA_SPEC_FUNCTIONS.
16339
        (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
16340
        (DRIVER_SELF_SPECS): Adjust.
16341
        * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
16342
        * config/mips/st.h, config/mips/t-st: New.
16343
        * config/mips/driver-native.c, config/mips/x-native: New.
16344
        * doc/invoke.texi (MIPS): Document 'native' value for -march and
16345
        -mtune options.
16346
 
16347
2008-06-18  Maxim Kuvyrkov  
16348
 
16349
        * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
16350
        from it.
16351
        (ISA_HAS_FP_CONDMOVE): New macro.
16352
        (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
16353
        (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
16354
        (ISA_HAS_NMADD3_NMSUB3): New macro.
16355
        * config/mips/mips.c (mips_rtx_costs): Update.
16356
        * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
16357
        compiling for ST Loongson 2E/2F.
16358
        (madd): Rename to madd4.  Update.
16359
        (madd3): New pattern.
16360
        (msub): Rename to msub4.  Update.
16361
        (msub3): New pattern.
16362
        (nmadd): Rename to nmadd4.  Update.
16363
        (nmadd3): New pattern.
16364
        (nmadd_fastmath): Rename to nmadd4_fastmath.  Update.
16365
        (nmadd3_fastmath): New pattern.
16366
        (nmsub): Rename to nmsub4.  Update.
16367
        (nmsub3): New pattern.
16368
        (nmsub_fastmath): Rename to nmsub4_fastmath.  Update.
16369
        (nmsub3_fastmath): New pattern.
16370
        (mov_on_, movcc): Update.
16371
 
16372
2008-06-18  Steven Bosscher  
16373
 
16374
        * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
16375
        (DF_REF_INSN_INFO): New.
16376
        (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
16377
        (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
16378
        with a NULL DF_REF_INSN_INFO.
16379
        (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
16380
        DF_INSN_SET.
16381
        (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
16382
        DF_INSN_INFO_EQ_USES): New.
16383
        (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
16384
        DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
16385
        DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
16386
        * df-core.c: Update comment for above changes.
16387
        (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
16388
        DF_INSN_UID_* macros.
16389
        (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
16390
        * df-scan.c (df_ref_record): Take a df_insn_info instead of an
16391
        insn rtx.  Update all callers.
16392
        (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
16393
        df_ref_create_structure, df_insn_refs_collect): Likewise.
16394
        (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
16395
        * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
16396
        (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
16397
        macros to access the insn refs.
16398
        (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
16399
        * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
16400
        (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
16401
        for accessing the refs.
16402
        (try_fwprop_subst): Likewise.
16403
        * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
16404
        * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
16405
        for accessing the refs.
16406
        * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
16407
        (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
16408
        to look at the insn refs.
16409
        (record_uses): Likewise.
16410
        * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
16411
        function anymore.
16412
        (mark_artificial_uses): Don't mark_insn for artificial refs.
16413
        (mark_reg_rependencies): Likewise.
16414
 
16415
        * doc/rtl.texi: Remove documentation of ADDRESSOF.
16416
 
16417
2008-06-17  Ralf Wildenhues  
16418
 
16419
        * configure: Regenerate.
16420
 
16421
2008-06-17  Eric B. Weddington  
16422
 
16423
        * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
16424
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16425
        * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16426
 
16427
2008-06-17  Eric B. Weddington  
16428
 
16429
        * config/avr/avr.c (avr_mcu_t): Add attiny167.
16430
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16431
        * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16432
 
16433
2008-06-17  Eric B. Weddington  
16434
 
16435
        * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
16436
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16437
        * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16438
 
16439
2008-06-17  Bernhard Fischer  
16440
 
16441
        * tree-ssa-sccvn.c: Fix format of comments.
16442
 
16443
2008-06-17  Bernhard Fischer  
16444
 
16445
        * cgraph.c: Remove unneeded forward declarations of eq_node()
16446
        and hash_node().
16447
 
16448
2008-06-17  Steven Bosscher  
16449
 
16450
        * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
16451
        REG_RETVAL notes.
16452
        (see_update_relevancy): Likewise.
16453
        * fwprop.c (try_fwprop_subst): Likewise.
16454
        * rtlanal.c (noop_move_p): Likewise.
16455
        * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
16456
        notes to non-existing libcall blocks.
16457
        * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
16458
        Remove orig_set.
16459
        (cse_extended_basic_block): Don't track libcall and no-conflict notes.
16460
        (dead_libcall_p): Remove.
16461
        (delete_trivially_dead_insns): Don't use it.
16462
        * web.c (union_defs): Remove comment about keeping nops.
16463
        * gcse.c (hash_scan_insn): Don't take libcall pointers.
16464
        (compute_hash_table_work): Don't track libcall notes.
16465
        (do_local_cprop): Don't take libcall pointers.  Don't update
16466
        libcall notes.
16467
        (adjust_libcall_notes): Deleted.
16468
        (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
16469
        ever have existed in the first place).
16470
        (replace_store_insn): Don't try to remove libcall notes.
16471
        * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
16472
        (resolve_reg_notes): Don't call them.
16473
        (resolve_simple_move): Likewise.
16474
        (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
16475
        Don't remove REG_RETVAL notes.
16476
        * emit-rtl.c (try_split): Don't update libcall notes.
16477
        (emit_copy_of_insn_after): Dito.
16478
        * cselib.c (cselib_current_insn_in_libcall): Remove.
16479
        (cselib_process_insn): Don't set/clear it.
16480
        (new_elt_loc_list): Don't record it.
16481
        (cselib_init): Don't initialize it.
16482
        * cselib.c (struct elt_loc_list): Remove in_libcall field.
16483
        * loop-invariant.c (find_invariant_insn): Don't look for libcall
16484
        notes.
16485
        * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
16486
        (sched_analyze): Don't set up deps->libcall_block_tail_insn.
16487
        (init_deps): Don't initialize it.
16488
        * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
16489
        * combine.c (delete_noop_moves): Don't update libcall notes.
16490
        (can_combine_p): Remove now pointless #if 0 block.
16491
        (try_combine): Remove another obsolete #if 0 block.
16492
        (distribute_notes): Don't distribute libcall notes.
16493
        * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
16494
        * dce.c (libcall_dead_p): Remove.
16495
        (delete_unmarked_insns): Don't handle libcall blocks.
16496
        (preserve_libcall_for_dce): Remove.
16497
        (prescan_insns_for_dce): Don't special-case libcall block insns.
16498
        * reload1 (reload): Don't handle libcall notes.
16499
        * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
16500
        documentation.
16501
 
16502
2008-06-16  Eric B. Weddington  
16503
 
16504
        * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
16505
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16506
        * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16507
 
16508
2008-06-16  Eric B. Weddington  
16509
 
16510
        * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
16511
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
16512
        * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16513
 
16514
2008-06-16  Ralf Wildenhues  
16515
 
16516
        * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
16517
 
16518
2008-06-16  Ira Rosen  
16519
 
16520
        PR tree-optimization/36493
16521
        * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
16522
        the arguments list. Use VECTYPE to create vector pointer.
16523
        (vectorizable_store): Fail if accesses through a pointer to vectype
16524
        do not alias the original memory reference operands.
16525
        Call vect_create_data_ref_ptr without the removed argument.
16526
        (vectorizable_load): Likewise.
16527
        (vect_setup_realignment): Call vect_create_data_ref_ptr without the
16528
        removed argument.
16529
 
16530
2008-06-015  Andy Hutchinson  
16531
 
16532
        PR target/36336
16533
        * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
16534
        reg_equiv_constant.
16535
 
16536
2008-06-15  Maxim Kuvyrkov  
16537
 
16538
        * config/mips/loongson2ef.md: New file.
16539
        * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
16540
        (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
16541
        (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
16542
        (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
16543
        (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
16544
        and loongson_2f.
16545
        (loongson2ef.md): New include.
16546
        * config/mips/loongson.md (vec_pack_ssat_, vec_pack_usat_)
16547
        (add3, paddd, ssadd3, usadd3)
16548
        (loongson_and_not_, loongson_average_, loongson_eq_)
16549
        (loongson_gt_, loongson_extract_halfword)
16550
        (loongson_insert_halfword_0, loongson_insert_halfword_2)
16551
        (loongson_insert_halfword_3, loongson_mult_add, smax3)
16552
        (umax3, smin3, umin3, loongson_move_byte_mask)
16553
        (umul3_highpart, smul3_highpart, loongson_smul_lowpart)
16554
        (loongson_umul_word, loongson_pasubub, reduc_uplus_)
16555
        (loongson_psadbh, loongson_pshufh, loongson_psll)
16556
        (loongson_psra, loongson_psrl, sub3, psubd)
16557
        (sssub3, ussub3, vec_interleave_high)
16558
        (vec_interleave_low): Define type attribute.
16559
        * config/mips/mips.c (mips_ls2): New static variable.
16560
        (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
16561
        (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
16562
        (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
16563
        Implement target scheduling hooks.
16564
        (mips_multipass_dfa_lookahead): Update to handle tuning for
16565
        Loongson 2E/2F.
16566
        (mips_sched_init): Initialize data for Loongson scheduling.
16567
        (mips_ls2_variable_issue): New static function.
16568
        (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
16569
        Add sanity check.
16570
        (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
16571
        (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
16572
        * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
16573
        (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
16574
        Handle ST Loongson 2E/2F cores.
16575
        (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
16576
 
16577
2008-06-15  Ralf Wildenhues  
16578
 
16579
        * omp-low.c (extract_omp_for_data): Fix comment typo.
16580
        * c.opt: Fix typo.
16581
 
16582
2008-06-15  Ralf Wildenhues  
16583
 
16584
        * doc/sourcebuild.texi (Config Fragments): Remove obsolete
16585
        FIXME note about gcc/config.guess.
16586
        * doc/options.texi (Option file format): Remove non-ASCII bytes.
16587
        * doc/cpp.texi: Expand TABs, drop indentation outside examples.
16588
        * doc/cppopts.texi: Likewise.
16589
        * doc/extend.texi: Likewise.
16590
        * doc/gcc.texi: Likewise.
16591
        * doc/gccint.texi: Likewise.
16592
        * doc/gcov.texi: Likewise.
16593
        * doc/gty.texi: Likewise.
16594
        * doc/hostconfig.texi: Likewise.
16595
        * doc/install.texi: Likewise.
16596
        * doc/invoke.texi: Likewise.
16597
        * doc/loop.texi: Likewise.
16598
        * doc/makefile.texi: Likewise.
16599
        * doc/md.texi: Likewise.
16600
        * doc/passes.texi: Likewise.
16601
        * doc/tm.texi: Likewise.
16602
        * doc/tree-ssa.texi: Likewise.
16603
        * doc/trouble.texi: Likewise.
16604
 
16605
2008-06-15  Mark Shinwell  
16606
            Nathan Sidwell  
16607
            Maxim Kuvyrkov  
16608
            Richard Sandiford  
16609
 
16610
        * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
16611
        * config/mips/mips-protos.h (mips_expand_vector_init): New.
16612
        * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
16613
        builtins.
16614
        * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
16615
        (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
16616
        (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
16617
        V8QImode cases.
16618
        (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
16619
        (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
16620
        (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
16621
        (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
16622
        (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
16623
        (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
16624
        (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
16625
        (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
16626
        (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
16627
        (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
16628
        (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
16629
        (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
16630
        (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
16631
        (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
16632
        (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
16633
        (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
16634
        (mips_builtins): Add Loongson builtins.
16635
        (mips_loongson_2ef_bdesc): New.
16636
        (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
16637
        (mips_builtin_vector_type): Handle unsigned versions of vector modes.
16638
        (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
16639
        (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
16640
        New.
16641
        (mips_expand_vector_init): New.
16642
        * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
16643
        (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
16644
        if appropriate.
16645
        * config/mips/mips.md: Add unspec numbers for Loongson
16646
        builtins.  Include loongson.md.
16647
        (MOVE64): Include Loongson vector modes.
16648
        (SPLITF): Include Loongson vector modes.
16649
        (HALFMODE): Handle Loongson vector modes.
16650
        * config/mips/loongson.md: New.
16651
        * config/mips/loongson.h: New.
16652
        * config.gcc: Add loongson.h header for mips*-*-* targets.
16653
        * doc/extend.texi (MIPS Loongson Built-in Functions): New.
16654
 
16655
2008-06-14  Joseph Myers  
16656
 
16657
        * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
16658
        h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
16659
        i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
16660
        iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
16661
        m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
16662
        m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
16663
        mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
16664
        mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
16665
        mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
16666
        mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
16667
        powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
16668
        sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
16669
        sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
16670
        sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
16671
        sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
16672
        v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
16673
        Remove use_fixproto=yes.
16674
        (ia64*-*-hpux*): Remove comment about using fixproto.
16675
        (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
16676
 
16677
2008-06-14  Ralf Wildenhues  
16678
 
16679
        * configure.ac: Update gthr-default.h lazily, to avoid unneeded
16680
        library rebuilds.
16681
        * configure: Regenerate.
16682
 
16683
2008-06-13  Eric Botcazou  
16684
 
16685
        PR middle-end/36520
16686
        * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
16687
        before evaluating it.
16688
 
16689
2008-06-13  Jakub Jelinek  
16690
 
16691
        PR c/36507
16692
        * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
16693
        nested inline functions.
16694
        (start_decl, start_function): Don't invert DECL_EXTERNAL
16695
        for nested inline functions.
16696
 
16697
2008-06-13  Richard Sandiford  
16698
 
16699
        * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
16700
        splits that must be made for correctness.
16701
 
16702
2008-06-13  Richard Sandiford  
16703
 
16704
        * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
16705
        (AVAIL_NON_MIPS16): Likewise.
16706
        (mips_builtin_description): Replace target_flags with a predicate.
16707
        (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
16708
        (dspr2_32): New availability predicates.
16709
        (MIPS_BUILTIN): New macro.
16710
        (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
16711
        (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
16712
        (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
16713
        Replace the TARGET_FLAGS parameters with AVAIL parameters.
16714
        (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
16715
        (mips_dsp_32only_bdesc): Merge into...
16716
        (mips_builtins): ...this new array.
16717
        (mips_bdesc_map, mips_bdesc_arrays): Delete.
16718
        (mips_init_builtins): Update after above changes.
16719
        (mips_expand_builtin_1): Merge into...
16720
        (mips_expand_builtin): ...here and update after above changes.
16721
 
16722
2008-06-12  Paul Brook  
16723
 
16724
        * longlong.h (__arm__): Define count_leading_zeros.
16725
        * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
16726
        (clzsi2, clzdi2): New functions.
16727
        * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
16728
        * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
16729
        * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
16730
        * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
16731
        * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
16732
        * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
16733
        * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
16734
        * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
16735
        * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
16736
        * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
16737
 
16738
2008-06-12  Kazu Hirata  
16739
 
16740
        * config/m68k/m68k.c (m68k_tune_flags): New.
16741
        (override_options): Compute m68k_tune_flags.
16742
        (MULL_COST, MULW_COST): Update for various variants of CFV2.
16743
        * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
16744
 
16745
2008-06-12  Jakub Jelinek  
16746
 
16747
        PR middle-end/36506
16748
        * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
16749
 
16750
2008-06-12  Eric Botcazou  
16751
 
16752
        * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
16753
        TREE_THIS_VOLATILE on INDIRECT_REF nodes.
16754
 
16755
2008-06-12  Eric Botcazou  
16756
 
16757
        * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
16758
        (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
16759
 
16760
2008-06-12  Jakub Jelinek  
16761
 
16762
        PR middle-end/36506
16763
        * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
16764
        reductions.
16765
 
16766
2008-06-12  Richard Guenther  
16767
 
16768
        PR tree-optimization/36345
16769
        * tree-flow.h (struct ptr_info_def): Align escape_mask,
16770
        add memory_tag_needed flag.
16771
        (may_alias_p): Declare.
16772
        * tree-ssa-alias.c (may_alias_p): Export.
16773
        (set_initial_properties): Use memory_tag_needed flag.
16774
        (update_reference_counts): Likewise.
16775
        (reset_alias_info): Reset memory_tag_needed flag.
16776
        (create_name_tags): Check memory_tag_needed flag.
16777
        (dump_points_to_info_for): Dump it.
16778
        * tree-ssa-structalias.c (struct variable_info): Remove
16779
        directly_dereferenced flag.
16780
        (new_var_info): Do not initialize it.
16781
        (process_constraint_1): Do not set it.
16782
        (update_alias_info): Set is_dereferenced flag.
16783
        (set_uids_in_ptset): Use may_alias_p.
16784
        (set_used_smts): Check memory_tag_needed flag.
16785
        (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
16786
        * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
16787
        memory_tag_needed flag.
16788
        * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
16789
        from broken design.
16790
 
16791
2008-06-12  Kai Tietz  
16792
 
16793
        * config/i386/i386.c (ix86_compute_frame_layout): Disable
16794
        red zone for w64 abi.
16795
        (ix86_expand_prologue): Likewise.
16796
        (ix86_force_to_memory): Likewise.
16797
        (ix86_free_from_memory): Likewise.
16798
 
16799
2008-06-11  Edmar Wienskoski  
16800
 
16801
        PR target/36425
16802
        * config/rs6000/rs6000.c (rs6000_override_options): Set
16803
        rs6000_isel conditionally to the absence of comand line override.
16804
        * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
16805
        Remove duplicate rs6000_isel setting.
16806
        * config/rs6000/eabispe.h: Ditto.
16807
 
16808
2008-06-11  Richard Guenther  
16809
 
16810
        * alias.c (get_alias_set): Use the element alias-set for arrays.
16811
        (record_component_aliases): For arrays and vectors do nothing.
16812
        * c-common.c (strict_aliasing_warning): Handle the cases
16813
        of alias set zero explicitly.
16814
        * Makefile.in (dfp.o-warn): Add -Wno-error.
16815
 
16816
2008-06-11  Joseph Myers  
16817
 
16818
        * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
16819
        tune_32 tune_64.
16820
        (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
16821
        tune_32 tune_64 to supported_defaults.  Allow values not
16822
        supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
16823
        x86_64.  Do not override cpu_32 or cpu_64 values from target name.
16824
        (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
16825
        with_cpu_64 to generic for 64-bit-supporting configurations, not
16826
        with_cpu.  Remove FIXMEs.
16827
        * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
16828
        --with-arch-64, --with-tune-32, --with-tune-64): Document.
16829
        * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
16830
        (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
16831
        arch_32 and arch_64.
16832
 
16833
2008-06-11  Eric Botcazou  
16834
            Olivier Hainque  
16835
 
16836
        * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
16837
        Use DECL_SIZE_UNIT to retrieve the size of the field.
16838
 
16839
2008-06-11  Joseph Myers  
16840
 
16841
        * config/arm/arm.c (arm_init_neon_builtins): Move initialization
16842
        with function calls after declarations.  Lay out
16843
        neon_float_type_node before further use.
16844
 
16845
2008-06-11  Richard Guenther  
16846
 
16847
        * tree-flow.h (may_point_to_global_var): Declare.
16848
        * tree-ssa-alias.c (may_point_to_global_var): New function.
16849
        * tree-ssa-sink.c (is_hidden_global_store): Use it.
16850
 
16851
2008-06-10  Kazu Hirata  
16852
 
16853
        * configure.ac: Teach that fido supports .debug_line.
16854
        * configure: Regenerate.
16855
 
16856
2008-06-10  Tom Tromey  
16857
 
16858
        * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
16859
        debug hook.
16860
 
16861
2008-06-10  Joseph Myers  
16862
 
16863
        * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
16864
        (encode_decimal64, decode_decimal64, encode_decimal128,
16865
        decode_decimal128): Reverse order of 32-bit parts of value if host
16866
        and target endianness differ.
16867
 
16868
2008-06-10  Vinodha Ramasamy  
16869
 
16870
        * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
16871
        Avoid division by 0.
16872
        (tree_mod_pow2_value_transform): Likewise.
16873
        (tree_ic_transform): Likewise.
16874
        (tree_stringops_transform): Likewise.
16875
        (tree_mod_subtract_transform): Likewise.
16876
        * tree-inline-c (copy_bb): Corrected int type to gcov_type.
16877
        (copy_edges_for_bb): Likewise.
16878
        (initialize_cfun): Likewise.
16879
 
16880
2008-06-10  Uros Bizjak  
16881
 
16882
        * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
16883
        nonmemory_operand. Add "N" operand constraint.
16884
        (*btsi): Ditto.
16885
        (*jcc_btdi_mask_rex64): New instruction and split pattern.
16886
        (*jcc_btsi_mask): Ditto.
16887
        (*jcc_btsi_mask_1): Ditto.
16888
 
16889
2008-06-10  Joseph Myers  
16890
 
16891
        * config/rs6000/rs6000.c (build_opaque_vector_type): Set
16892
        TYPE_CANONICAL for copied element type.
16893
 
16894
2008-06-10  Uros Bizjak  
16895
 
16896
        PR target/36473
16897
        * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
16898
        Add m_CORE2 and m_GENERIC.
16899
        * config/i386/predicates.md (bt_comparison_operator): New predicate.
16900
        * config/i386/i386.md (*btdi_rex64): New instruction pattern.
16901
        (*btsi): Ditto.
16902
        (*jcc_btdi_rex64): New instruction and split pattern.
16903
        (*jcc_btsi): Ditto.
16904
        (*jcc_btsi_1): Ditto.
16905
        (*btsq): Fix Intel asm dialect operand order.
16906
        (*btrq): Ditto.
16907
        (*btcq): Ditto.
16908
 
16909
2008-06-09  Andy Hutchinson  
16910
 
16911
        PR middle-end/36447
16912
        * simplify-rtx.c (simplify_subreg): Add check for shift count
16913
        greater than size.
16914
 
16915
2008-06-09  Richard Sandiford  
16916
 
16917
        * doc/md.texi: Synchronize with later constraints.md change.
16918
        * longlong.h (umul_ppmm): Replace the MIPS asm implementation
16919
        with a C implementation.
16920
        * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
16921
        MFLO handling.
16922
        (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
16923
        (mips_split_doubleword_move): Use special MTHI and MFHI instructions
16924
        when moving to and from MD_REGNUM.
16925
        (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
16926
        Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
16927
        Handle byte and halfword moves.
16928
        (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
16929
        separately.
16930
        * config/mips/constraints.md (h): Turn into NO_REGS.
16931
        (l, x): Update documentation.
16932
        * config/mips/mips.md (UNSPEC_MFHILO): Delete.
16933
        (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
16934
        (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
16935
        (HILO): New mode iterator.
16936
        (MOVE128): Add TI.
16937
        (any_div): New code iterator.
16938
        (u): Extend code attribute to div and udiv.
16939
        (*add3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
16940
        d_operand in the splitters.  Remove redundant CONST_INT checks.
16941
        (mulsi3_mult3, mul3_internal, mul3_r4000, *mul_acc_si)
16942
        (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
16943
        (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
16944
        accordingly, using normal moves instead of unspecs to move LO into
16945
        a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
16946
        (mulsidi3): Handle expansion in C code.
16947
        (mulsidi3_32bit_internal): Rename to...
16948
        (mulsidi3_32bit): ...this.
16949
        (mulsidi3_32bit_r4000): Fix insn separator.
16950
        (*mulsidi3_64bit): Rename to...
16951
        (mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
16952
        into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
16953
        to set LO and HI to the multiplication result.  Use a normal move
16954
        for MFLO and an unspec for MFHI.
16955
        (*mulsidi3_64bit_parts): Replace with...
16956
        (mulsidi3_64bit_hilo): ...this new instruction.
16957
        (mulsi3_highpart): Extend to TARGET_FIX_R4000.
16958
        (mulsi3_highpart_internal): Turn into a define_insn_and_split
16959
        and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
16960
        instead of HI.  Split the instruction into a separate multiplication
16961
        and MFHI if !TARGET_FIX_R4000.
16962
        (muldi3_highpart): Likewise.
16963
        (mulsi3_highpart_mulhi_internal): Remove the first alternative
16964
        and the "=h" clobber.
16965
        (*mulsi3_highpart_neg_mulhi_internal): Likewise.
16966
        (mulditi3): New expander.
16967
        (mulditi3_internal, mulditi3_r4000): New patterns.
16968
        (madsi): Remove "=h" clobber.
16969
        (divmod4, udivmod4): Turn into define_insn_and_splits.
16970
        Force the modulus result to be a GPR and split the instruction into
16971
        a division followed by an MFHI after reload.
16972
        (divmod4_hilo_): New instruction.
16973
        (*lea_high64): Use d_operand in the define_peephole2.  Likewise
16974
        the MIPS16 HIGH define_split.
16975
        (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
16976
        of acc<->gpr moves to "multi".
16977
        (*movdi_64bit): Replace the single "x" alternative with
16978
        alternatives for moving into and out of "a".
16979
        (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
16980
        (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
16981
        (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
16982
        Use d_operand in the splitters.  Remove redundant CONST_INT checks.
16983
        (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
16984
        (movti): New expander.
16985
        (*movti, *movti_mips16): New insns.
16986
        (mfhilo_, *mfhilo_, *mfhilo__macc): Delete.
16987
        (mfhi_): New pattern.
16988
        (mthi_): Likewise.
16989
        * config/mips/predicates.md (fpr_operand): Delete.
16990
        (d_operand): New predicate.
16991
 
16992
2008-06-09  Michael Meissner  
16993
 
16994
        * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
16995
        failure on some Bourne shells.
16996
        (x86_64-*-*): Ditto.
16997
 
16998
2008-06-09  Kai Tietz  
16999
 
17000
        * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
17001
 
17002
2008-06-09  Eric Botcazou  
17003
 
17004
        * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
17005
        (sparc-sun-solaris2*): Likewise.
17006
 
17007
2008-06-09  Arnaud Charlet  
17008
 
17009
        * doc/install.texi: Update requirements to build the Ada compiler.
17010
 
17011
2008-06-08  Steven Bosscher  
17012
 
17013
        * df-scan.c (struct df_scan_problem_data): Remove the
17014
        mw_link_pool alloc pool.
17015
        (df_scan_free_internal): Don't free it.
17016
        (df_scan_alloc): Don't allocate it.
17017
        * df.h (struct df_link): Update comment.
17018
 
17019
2008-06-08  Nathan Sidwell  
17020
 
17021
        * except.h: Correct checks for when SJLJ exceptions must be used.
17022
 
17023
2008-06-08  Manuel Lopez-Ibanez  
17024
 
17025
        * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
17026
        default.
17027
 
17028
2008-06-08  Joseph Myers  
17029
 
17030
        PR tree-optimization/36218
17031
        * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
17032
        configure for the build system.
17033
        (BUILD_LDFLAGS): Define.
17034
        * configure: Regenerate.
17035
        * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
17036
 
17037
2008-07-08  Anatoly Sokolov  
17038
 
17039
        PR target/36424
17040
        * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
17041
        * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
17042
        * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
17043
 
17044
2008-06-07  Danny Smith  
17045
 
17046
        * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
17047
 
17048
2008-06-07  Joseph Myers  
17049
 
17050
        * config.gcc (Obsolete configurations): Remove list of
17051
        configurations.
17052
        (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
17053
        *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
17054
        targets matched by those patterns.
17055
        (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
17056
        m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
17057
        alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
17058
        arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
17059
        hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
17060
        i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
17061
        i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
17062
        i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
17063
        i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
17064
        mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
17065
        powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
17066
        powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
17067
        strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
17068
        vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
17069
        i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
17070
        Make code for Solaris 7 and greater unconditional for Solaris.
17071
        (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
17072
        Remove --with-* handling.
17073
        * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
17074
        (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
17075
        ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
17076
        LINK_OS_WINDISS_SPEC): Remove.
17077
        * config/rs6000/sysv4.opt (mwindiss): Remove.
17078
        * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
17079
        * configure: Regenerate.
17080
        * doc/cpp.texi: Don't mention BeOS.
17081
        * doc/extend.texi (interrupt): Don't mention MS1.
17082
        * doc/install.texi (i386-@var{any}-sysv, m68k-bull-sysv,
17083
        m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
17084
        alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
17085
        i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
17086
        powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
17087
        Remove.
17088
        * doc/invoke.texi (MT Options): Remove.
17089
        (-mwindiss): Remove.
17090
        (CRIS Options): Remove cris-axis-aout references.
17091
        (HPPA Options): Don't mention hppa1.1-*-pro.
17092
        * doc/md.texi (MorphoTech family): Remove.
17093
        * libgcc2.c: Don't handle UWIN.
17094
        * config/alpha/t-unicosmk: Remove.
17095
        * config/alpha/unicosmk.h: Remove.
17096
        * config/arm/kaos-arm.h: Remove.
17097
        * config/arm/kaos-strongarm.h: Remove.
17098
        * config/arm/strongarm-coff.h: Remove.
17099
        * config/arm/strongarm-elf.h: Remove.
17100
        * config/arm/strongarm-pe.h: Remove.
17101
        * config/arm/t-strongarm-pe: Remove.
17102
        * config/arm/t-xscale-coff: Remove.
17103
        * config/arm/t-xscale-elf: Remove.
17104
        * config/arm/xscale-coff.h: Remove.
17105
        * config/arm/xscale-elf.h: Remove.
17106
        * config/chorus.h: Remove.
17107
        * config/cris/aout.h: Remove.
17108
        * config/cris/aout.opt: Remove.
17109
        * config/cris/t-aout: Remove.
17110
        * config/i386/beos-elf.h: Remove.
17111
        * config/i386/kaos-i386.h: Remove.
17112
        * config/i386/ptx4-i.h: Remove.
17113
        * config/i386/sco5.h: Remove.
17114
        * config/i386/sco5.opt: Remove.
17115
        * config/i386/sysv4-cpp.h: Remove.
17116
        * config/i386/sysv5.h: Remove.
17117
        * config/i386/t-beos: Remove.
17118
        * config/i386/t-sco5: Remove.
17119
        * config/i386/t-uwin: Remove.
17120
        * config/i386/uwin.asm: Remove.
17121
        * config/i386/uwin.h: Remove.
17122
        * config/kaos.h: Remove.
17123
        * config/mips/windiss.h: Remove.
17124
        * config/mt: Remove directory.
17125
        * config/pa/pa-osf.h: Remove.
17126
        * config/pa/pa-pro-end.h: Remove.
17127
        * config/pa/t-pro: Remove.
17128
        * config/ptx4.h: Remove.
17129
        * config/rs6000/beos.h: Remove.
17130
        * config/rs6000/kaos-ppc.h: Remove.
17131
        * config/rs6000/t-beos: Remove.
17132
        * config/rs6000/windiss.h: Remove.
17133
        * config/sh/kaos-sh.h: Remove.
17134
        * config/sol2-6.h: Remove.
17135
        * config/sparc/sol26-sld.h: Remove.
17136
        * config/sparc/sysv4-only.h: Remove.
17137
        * config/vax/bsd.h: Remove.
17138
        * config/vax/t-memfuncs: Remove.
17139
        * config/vax/ultrix.h: Remove.
17140
        * config/vax/vaxv.h: Remove.
17141
        * config/windiss.h: Remove.
17142
 
17143
2008-06-06  Uros Bizjak  
17144
 
17145
        PR rtl-optimization/36438
17146
        * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
17147
        for vector shifts with constant scalar shift operands.
17148
 
17149
2008-06-06  Sandip Matte  
17150
 
17151
        * doc/invoke.texi: Document -march=xlr.
17152
        * config/mips/xlr.md: New file.
17153
        * config/mips/mips.md: Include it.
17154
        (cpu): Add "xlr".
17155
        * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
17156
        * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
17157
        (mips_rtx_cost_data): Likewise.
17158
 
17159
2008-06-06  Nathan Froyd  
17160
 
17161
        * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
17162
        PRE_INC and PRE_DEC cases.
17163
 
17164
2008-06-06  Jakub Jelinek  
17165
 
17166
        PR rtl-optimization/36419
17167
        * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
17168
        the emitting jump insn.
17169
 
17170
        PR target/36362
17171
        * gimplify.c (gimplify_expr) : If *expr_p type
17172
        is not bool, boolify the whole *expr_p and convert to the desired type.
17173
 
17174
2008-06-06  Jakub Jelinek  
17175
 
17176
        * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
17177
        * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
17178
        Add omp_private_outer_ref hook, add another argument to
17179
        omp_clause_default_ctor hook.
17180
        * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
17181
        (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
17182
        (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
17183
        hook_tree_tree_tree_tree_null.
17184
        (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
17185
        LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
17186
        * hooks.c (hook_tree_tree_tree_tree_null): New function.
17187
        * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
17188
        * tree.def (OMP_TASK): New tree code.
17189
        * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
17190
        OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
17191
        OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
17192
        OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
17193
        OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
17194
        OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
17195
        OMP_CLAUSE_COLLAPSE_EXPR): Define.
17196
        (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
17197
        (OMP_DIRECTIVE_P): Add OMP_TASK.
17198
        (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
17199
        (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
17200
        * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
17201
        and OMP_CLAUSE_UNTIED entries.
17202
        (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
17203
        num_ops to 2.
17204
        (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
17205
        Walk OMP_CLAUSE_LASTPRIVATE_STMT.
17206
        * tree-pretty-print.c (dump_omp_clause): Handle
17207
        OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
17208
        OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
17209
        (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
17210
        * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
17211
        warning about unsigned iterators.  Change decl/init/cond/incr
17212
        arguments to TREE_VECs, check arguments for all collapsed loops.
17213
        (c_finish_omp_taskwait): New function.
17214
        (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
17215
        ws_clauses.
17216
        * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
17217
        default_function_array_conversion on init.  Add par_clauses argument.
17218
        If decl is present in parallel's lastprivate clause, change it to
17219
        shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
17220
        Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
17221
        collapse count in clauses.
17222
        (c_parser_omp_for, c_parser_omp_parallel): Adjust
17223
        c_parser_omp_for_loop callers.
17224
        (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
17225
        (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
17226
        (c_parser_omp_clause_name): Handle collapse and untied clauses.
17227
        (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
17228
        functions.
17229
        (c_parser_omp_clause_schedule): Handle schedule(auto).
17230
        Include correct location in the error message.
17231
        (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
17232
        and PRAGMA_OMP_CLAUSE_UNTIED.
17233
        (OMP_TASK_CLAUSE_MASK): Define.
17234
        (c_parser_omp_task, c_parser_omp_taskwait): New functions.
17235
        (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
17236
        * tree-nested.c (convert_nonlocal_omp_clauses,
17237
        convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
17238
        OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
17239
        OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
17240
        Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
17241
        OMP_CLAUSE_DECL.
17242
        (conver_nonlocal_reference, convert_local_reference,
17243
        convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
17244
        OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
17245
        (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
17246
        * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
17247
        * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
17248
        * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
17249
        (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
17250
        * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
17251
        (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
17252
        OMP_CLAUSE_UNTIED.
17253
        * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
17254
        * c-common.h (c_finish_omp_taskwait): New prototype.
17255
        * gimple-low.c (lower_stmt): Handle OMP_TASK.
17256
        * tree-parloops.c (create_parallel_loop): Create 1 entry
17257
        vectors for OMP_FOR_{INIT,COND,INCR}.
17258
        * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
17259
        (make_edges): Handle OMP_TASK.
17260
        * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
17261
        loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
17262
        * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
17263
        * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
17264
        BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
17265
        BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
17266
        BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
17267
        BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
17268
        * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
17269
        BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
17270
        BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
17271
        BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
17272
        BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
17273
        BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
17274
        BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
17275
        BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
17276
        BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
17277
        BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
17278
        BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
17279
        BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
17280
        BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
17281
        BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
17282
        BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
17283
        BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
17284
        BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
17285
        * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
17286
        handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
17287
        original iterator is present in lastprivate clause or if
17288
        collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
17289
        OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
17290
        (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
17291
        (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
17292
        (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
17293
        if it is set, lookup var in outer contexts too.  Handle
17294
        OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
17295
        to be implicitly determined firstprivate for task regions.
17296
        (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
17297
        if it is set, lookup var in outer contexts too.  Set
17298
        OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
17299
        Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
17300
        OMP_CLAUSE_UNTIED.  Take region_type as last argument
17301
        instead of in_parallel and in_combined_parallel.
17302
        (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
17303
        Adjust callers.
17304
        (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
17305
        GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
17306
        (new_omp_context): Set default_kind to
17307
        OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
17308
        (omp_region_type): New enum.
17309
        (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
17310
        fields, add region_type.
17311
        (new_omp_context): Take region_type as argument instead of is_parallel
17312
        and is_combined_parallel.
17313
        (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
17314
        omp_is_private, omp_check_private): Adjust ctx->is_parallel and
17315
        ctx->is_combined_parallel checks.
17316
        (gimplify_omp_task): New function.
17317
        (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
17318
        OMP_CLAUSE_UNTIED.
17319
        * omp-low.c (extract_omp_for_data): Use schedule(static)
17320
        for schedule(auto).  Handle pointer and unsigned iterators.
17321
        Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
17322
        Add loops argument.  Extract data for collapsed OMP_FOR loops.
17323
        (expand_parallel_call): Assert sched_kind isn't auto,
17324
        map runtime schedule to index 3.
17325
        (struct omp_for_data_loop): New type.
17326
        (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
17327
        Add loop, loops, collapse and iter_type fields.
17328
        (workshare_safe_to_combine_p): Disallow combined for if
17329
        iter_type is unsigned long long.  Don't combine collapse > 1 loops
17330
        unless all bounds and steps are constant.  Adjust extract_omp_for_data
17331
        caller.
17332
        (expand_omp_for_generic): Handle pointer, unsigned and long long
17333
        iterators.  Handle collapsed OMP_FOR loops.  Adjust
17334
        for struct omp_for_data changes.  If libgomp function doesn't return
17335
        boolean_type_node, add comparison of the return value with 0.
17336
        (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
17337
        pointer, unsigned and long long iterators.  Adjust for struct
17338
        omp_for_data changes.
17339
        (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
17340
        to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
17341
        unsigned long long.  Allocate loops array, pass it to
17342
        extract_omp_for_data.  For collapse > 1 loops use always
17343
        expand_omp_for_generic.
17344
        (omp_context): Add sfield_map and srecord_type fields.
17345
        (is_task_ctx, lookup_sfield): New functions.
17346
        (use_pointer_for_field): Use is_task_ctx helper.  Change first
17347
        argument's type from const_tree to tree.  Clarify comment.
17348
        In OMP_TASK disallow copy-in/out sharing.
17349
        (build_sender_ref): Call lookup_sfield instead of lookup_field.
17350
        (install_var_field): Add mask argument.  Populate both record_type
17351
        and srecord_type if needed.
17352
        (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
17353
        in srecord_type.
17354
        (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
17355
        and DECL_FIELD_OFFSET.
17356
        (scan_sharing_clauses): Adjust install_var_field callers.  For
17357
        firstprivate clauses on explicit tasks allocate the var by value in
17358
        record_type unconditionally, rather than by reference.
17359
        Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
17360
        Use is_taskreg_ctx instead of is_parallel_ctx.
17361
        Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
17362
        (create_omp_child_function_name): Add task_copy argument, use
17363
        *_omp_cpyfn* names if it is true.
17364
        (create_omp_child_function): Add task_copy argument, if true create
17365
        *_omp_cpyfn* helper function.
17366
        (scan_omp_parallel): Adjust create_omp_child_function callers.
17367
        Rename parallel_nesting_level to taskreg_nesting_level.
17368
        (scan_omp_task): New function.
17369
        (lower_rec_input_clauses): Don't run constructors for firstprivate
17370
        explicit task vars which are initialized by *_omp_cpyfn*.
17371
        Pass outer var ref to omp_clause_default_ctor hook if
17372
        OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
17373
        Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
17374
        OMP_CLAUSE_REDUCTION_INIT.
17375
        (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
17376
        avoid duplicate setting of fields.  Handle
17377
        OMP_CLAUSE_PRIVATE_OUTER_REF.
17378
        (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
17379
        copy-out if TREE_READONLY, only copy-in.
17380
        (expand_task_copyfn): New function.
17381
        (expand_task_call): New function.
17382
        (struct omp_taskcopy_context): New type.
17383
        (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
17384
        New functions.
17385
        (lower_omp_parallel): Rename to...
17386
        (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
17387
        Call create_task_copyfn if srecord_type is needed.  Adjust
17388
        sender_decl type.
17389
        (task_shared_vars): New variable.
17390
        (check_omp_nesting_restrictions): Warn if work-sharing,
17391
        barrier, master or ordered region is closely nested inside OMP_TASK.
17392
        Add warnings for barrier if closely nested inside of work-sharing,
17393
        ordered, or master region.
17394
        (scan_omp_1): Call check_omp_nesting_restrictions even for
17395
        GOMP_barrier calls.  Rename parallel_nesting_level to
17396
        taskreg_nesting_level.  Handle OMP_TASK.
17397
        (lower_lastprivate_clauses): Even if some lastprivate is found on a
17398
        work-sharing construct, continue looking for them on parent parallel
17399
        construct.
17400
        (lower_omp_for_lastprivate): Add lastprivate clauses
17401
        to the beginning of dlist rather than end.  Adjust for struct
17402
        omp_for_data changes.
17403
        (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
17404
        not after it.  Handle collapsed OMP_FOR loops, adjust for
17405
        OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
17406
        (get_ws_args_for): Adjust extract_omp_for_data caller.
17407
        (scan_omp_for): Handle collapsed OMP_FOR
17408
        loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
17409
        (lower_omp_single_simple): If libgomp function doesn't return
17410
        boolean_type_node, add comparison of the return value with 0.
17411
        (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
17412
        loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
17413
        (parallel_nesting_level): Rename to...
17414
        (taskreg_nesting_level): ... this.
17415
        (is_taskreg_ctx): New function.
17416
        (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
17417
        of is_parallel_ctx.
17418
        (execute_lower_omp): Rename parallel_nesting_level to
17419
        taskreg_nesting_level.
17420
        (expand_omp_parallel): Rename to...
17421
        (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
17422
        Call omp_task_call for OMP_TASK regions.
17423
        (expand_omp): Adjust caller, handle OMP_TASK.
17424
        (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
17425
 
17426
        * bitmap.c (bitmap_default_obstack_depth): New variable.
17427
        (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
17428
        if argument is NULL and bitmap_default_obstack is already initialized.
17429
        * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
17430
        at the end.
17431
        * matrix-reorg.c (matrix_reorg): Likewise.
17432
 
17433
2008-06-06  Uros Bizjak  
17434
 
17435
        * config/i386/i386.md (*indirect_jump): Macroize using P
17436
        mode iterator.  Remove !TARGET_64BIT from insn constraints.
17437
        (*tablejump_1): Ditto.
17438
        (*indirect_jump_rex64): Remove insn pattern.
17439
        (*tablejump_1_rex64): Ditto.
17440
        (eh_return_): Macroize using P mode iterator from eh_return_di
17441
        and eh_return_si insn patterns.
17442
 
17443
2008-06-06  Richard Guenther  
17444
 
17445
        * tree-ssa-structalias.c (merge_smts_into): Remove.
17446
        (find_what_p_points_to): Do not bother to compute the
17447
        points-to set for pt_anything pointers.
17448
        * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
17449
        for pt_anything pointers is ok.
17450
 
17451
2008-06-06  Jan Hubicka  
17452
 
17453
        * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
17454
 
17455
2008-06-06  Ralf Wildenhues  
17456
 
17457
        * cgraph.c: Fix typos in comments.
17458
        (cgraph_availability_names): Fix string typo.
17459
        * fold-const.c: Fix typos in comments.
17460
        (fold_binary): Fix typo in warning.
17461
        * genautomata.c: Fix typos in comments.
17462
        (check_presence_pattern_sets): Fix typo in local variable.
17463
        (output_description): Fix typo in output.
17464
        * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
17465
        * hwint.h: Likewise.
17466
        * matrix-reorg.c (check_allocation_function): Likewise.
17467
        * omega.c (smooth_weird_equations): Likewise.
17468
        * auto-inc-dec.c: Fix typos in comments.
17469
        * bb-reorder.c: Likewise.
17470
        * builtins.c: Likewise.
17471
        * c-common.c: Likewise.
17472
        * c-cppbuiltin.c: Likewise.
17473
        * c-parser.c: Likewise.
17474
        * c-pretty-print.c: Likewise.
17475
        * cfgcleanup.c: Likewise.
17476
        * cfgexpand.c: Likewise.
17477
        * cfghooks.c: Likewise.
17478
        * cfglayout.c: Likewise.
17479
        * cfgloopmanip.c: Likewise.
17480
        * cgraphunit.c: Likewise.
17481
        * coverage.c: Likewise.
17482
        * dbxout.c: Likewise.
17483
        * df-byte-scan.c: Likewise.
17484
        * df-core.c: Likewise.
17485
        * df-problems.c: Likewise.
17486
        * df-scan.c: Likewise.
17487
        * dfp.c: Likewise.
17488
        * dominance.c: Likewise.
17489
        * domwalk.c: Likewise.
17490
        * dse.c: Likewise.
17491
        * dwarf2out.c: Likewise.
17492
        * emit-rtl.c: Likewise.
17493
        * et-forest.c: Likewise.
17494
        * function.c: Likewise.
17495
        * function.h: Likewise.
17496
        * gcc.c: Likewise.
17497
        * gcov-io.c: Likewise.
17498
        * gcov.c: Likewise.
17499
        * gcse.c: Likewise.
17500
        * genattrtab.c: Likewise.
17501
        * ggc-page.c: Likewise.
17502
        * gimplify.c: Likewise.
17503
        * gthr-lynx.h: Likewise.
17504
        * haifa-sched.c: Likewise.
17505
        * ipa-cp.c: Likewise.
17506
        * ipa-inline.c: Likewise.
17507
        * ipa-prop.h: Likewise.
17508
        * ipa-pure-const.c: Likewise.
17509
        * ipa-struct-reorg.c: Likewise.
17510
        * ipa-struct-reorg.h: Likewise.
17511
        * ipa-type-escape.c: Likewise.
17512
        * ipa.c: Likewise.
17513
        * loop-doloop.c: Likewise.
17514
        * mips-tfile.c: Likewise.
17515
        * mkmap-flat.awk: Likewise.
17516
        * mkmap-symver.awk: Likewise.
17517
        * modulo-sched.c: Likewise.
17518
        * omp-low.c: Likewise.
17519
        * optabs.c: Likewise.
17520
        * optabs.h: Likewise.
17521
        * opts.c: Likewise.
17522
        * passes.c: Likewise.
17523
        * postreload-gcse.c: Likewise.
17524
        * postreload.c: Likewise.
17525
        * predict.c: Likewise.
17526
        * pretty-print.h: Likewise.
17527
        * profile.c: Likewise.
17528
        * protoize.c: Likewise.
17529
        * ra-conflict.c: Likewise.
17530
        * real.c: Likewise.
17531
        * recog.c: Likewise.
17532
        * regclass.c: Likewise.
17533
        * regs.h: Likewise.
17534
        * reload.c: Likewise.
17535
        * rtl-error.c: Likewise.
17536
        * rtlanal.c: Likewise.
17537
        * scan.h: Likewise.
17538
        * sched-rgn.c: Likewise.
17539
        * see.c: Likewise.
17540
        * stmt.c: Likewise.
17541
        * target.h: Likewise.
17542
        * tree-dfa.c: Likewise.
17543
        * tree-eh.c: Likewise.
17544
        * tree-flow-inline.h: Likewise.
17545
        * tree-inline.c: Likewise.
17546
        * tree-into-ssa.c: Likewise.
17547
        * tree-loop-distribution.c: Likewise.
17548
        * tree-nested.c: Likewise.
17549
        * tree-parloops.c: Likewise.
17550
        * tree-pass.h: Likewise.
17551
        * tree-pretty-print.c: Likewise.
17552
        * tree-profile.c: Likewise.
17553
        * tree-scalar-evolution.c: Likewise.
17554
        * tree-sra.c: Likewise.
17555
        * tree-ssa-alias-warnings.c: Likewise.
17556
        * tree-ssa-ccp.c: Likewise.
17557
        * tree-ssa-coalesce.c: Likewise.
17558
        * tree-ssa-dom.c: Likewise.
17559
        * tree-ssa-dse.c: Likewise.
17560
        * tree-ssa-forwprop.c: Likewise.
17561
        * tree-ssa-live.c: Likewise.
17562
        * tree-ssa-live.h: Likewise.
17563
        * tree-ssa-loop-im.c: Likewise.
17564
        * tree-ssa-loop-ivopts.c: Likewise.
17565
        * tree-ssa-loop-niter.c: Likewise.
17566
        * tree-ssa-loop-prefetch.c: Likewise.
17567
        * tree-ssa-phiopt.c: Likewise.
17568
        * tree-ssa-phiprop.c: Likewise.
17569
        * tree-ssa-sccvn.c: Likewise.
17570
        * tree-ssa-ter.c: Likewise.
17571
        * tree-ssa-threadupdate.c: Likewise.
17572
        * tree-ssa.c: Likewise.
17573
        * tree-vect-analyze.c: Likewise.
17574
        * tree-vect-transform.c: Likewise.
17575
        * tree-vectorizer.c: Likewise.
17576
        * tree-vn.c: Likewise.
17577
        * tree-vrp.c: Likewise.
17578
        * tree.c: Likewise.
17579
        * tree.def: Likewise.
17580
        * tree.h: Likewise.
17581
        * unwind-dw2-fde.c: Likewise.
17582
        * unwind.inc: Likewise.
17583
        * value-prof.c: Likewise.
17584
        * vmsdbgout.c: Likewise.
17585
 
17586
2008-06-05  David Edelsohn  
17587
 
17588
        * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
17589
        always place FP constants in the TOC for TARGET_POWERPC64.
17590
        * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
17591
 
17592
2008-06-05  Joseph Myers  
17593
 
17594
        * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
17595
        * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
17596
        enable for TARGET_E500_DOUBLE.
17597
        (*movdd_softfloat32): Also enable for !TARGET_FPRS.
17598
        * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
17599
        floating-point modes like integer modes for E500 double.
17600
        (rs6000_legitimate_offset_address_p): Likewise.
17601
        (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
17602
        addressing for DDmode for E500 double.
17603
        (rs6000_hard_regno_nregs): Do not treat decimal floating-point
17604
        modes as using 64-bits of registers for E500 double.
17605
        (spe_build_register_parallel): Do not handle DDmode or TDmode.
17606
        (rs6000_spe_function_arg): Do not handle DDmode or TDmode
17607
        specially for E500 double.
17608
        (function_arg): Do not call rs6000_spe_function_arg for DDmode or
17609
        TDmode for E500 double.
17610
        (rs6000_gimplify_va_arg): Only handle SDmode in registers
17611
        specially if TARGET_HARD_FLOAT && TARGET_FPRS.
17612
        (rs6000_split_multireg_move): Do not handle TDmode specially for
17613
        E500 double.
17614
        (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
17615
        using 64-bit registers for E500 double.
17616
        (emit_frame_save): Do not handle DDmode specially for E500 double.
17617
        (gen_frame_mem_offset): Likewise.
17618
        (rs6000_function_value): Do not call spe_build_register_parallel
17619
        for DDmode or TDmode.
17620
        (rs6000_libcall_value): Likewise.
17621
        * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
17622
        DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
17623
        for E500 double.
17624
 
17625
2008-06-04  H.J. Lu  
17626
 
17627
        * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
17628
        in comments.
17629
 
17630
2008-06-04  Junjie Gu  
17631
 
17632
        * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
17633
        comparison for frame pointers.
17634
 
17635
2008-06-04  Andy Hutchinson  
17636
 
17637
        PR target/27386
17638
        * config/avr/avr.h (PUSH_ROUNDING): Remove.
17639
 
17640
2008-06-04  Andy Hutchinson  
17641
 
17642
        PR target/30243
17643
        * builtins.c (expand_builtin_signbit): Don't take lowpart when
17644
        register is already smaller or equal to required mode.
17645
 
17646
2008-06-04  Xinliang David Li  
17647
 
17648
        * tree-call-cdce.c: New file.
17649
        (cond_dead_built_in_calls): New static variable.
17650
        (input_domain): New struct.
17651
        (check_pow): New function.
17652
        (check_builtin_call): Ditto.
17653
        (check_target_format): Ditto.
17654
        (is_call_dce_candidate): Ditto.
17655
        (gen_one_condition): Ditto.
17656
        (gen_conditions_for_domain): Ditto.
17657
        (get_domain): Ditto.
17658
        (gen_conditions_for_pow_cst_base): Ditto.
17659
        (gen_conditions_for_pow_int_base): Ditto.
17660
        (gen_conditions_for_pow): Ditto.
17661
        (get_no_error_domain): Ditto.
17662
        (gen_shrink_wrap_conditions): Ditto.
17663
        (shrink_wrap_one_built_in_call): Ditto.
17664
        (shink_wrap_conditional_dead_built_in_calls): Ditto.
17665
        (tree_call_cdce): Ditto.
17666
        (gate_call_cdce): Ditto.
17667
        (pass_call_cdce): New gimple pass.
17668
        * passes.c (init_optimization_passes): New pass.
17669
        * tree-pass.h: New pass declaration.
17670
        * opts.c (decode_options): New flag setting.
17671
        * common.opt: Add -ftree-builtin-call-dce flag.
17672
        * Makefile.in: Add new source file.
17673
        * tempvar.def: New tv_id.
17674
        * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
17675
 
17676
2008-06-04  Richard Guenther  
17677
 
17678
        * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
17679
        (is_call_clobbered): Always check var_ann->call_clobbered.
17680
        (mark_call_clobbered): Always set var_ann->call_clobbered.
17681
        (clear_call_clobbered): Always clear var_ann->call_clobbered.
17682
        * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
17683
        (reset_alias_info): Clear call clobbering info on MTAGs and
17684
        globals as well.
17685
        (set_pt_anything): Set pt_global_mem.
17686
        (create_tag_raw): Adjust comment.
17687
        (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
17688
 
17689
2008-06-04  Joseph Myers  
17690
            Maxim Kuvyrkov  
17691
 
17692
        * config/m68k/m68k.opt (mxgot): New option.
17693
        * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
17694
        (m68k_output_addr_const_extra): New.
17695
        * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
17696
        * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
17697
        * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
17698
        * doc/invoke.texi (M680x0 Options): Document -mxgot.
17699
 
17700
2008-06-04  Richard Guenther  
17701
 
17702
        * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
17703
        negative or non-representable offsets.
17704
 
17705
2008-06-03  H.J. Lu  
17706
 
17707
        * config/i386/i386.c (ix86_gen_leave): New.
17708
        (ix86_gen_pop1): Likewise.
17709
        (ix86_gen_add3): Likewise.
17710
        (ix86_gen_sub3): Likewise.
17711
        (ix86_gen_sub3_carry): Likewise.
17712
        (ix86_gen_one_cmpl2): Likewise.
17713
        (ix86_gen_monitor): Likewise.
17714
        (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
17715
        ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
17716
        ix86_gen_one_cmpl2 and ix86_gen_monitor.
17717
        (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
17718
        (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
17719
        mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
17720
        (ix86_expand_epilogue): Updated.
17721
        (print_operand): Handle integer register operand for 'z'.
17722
        (ix86_expand_strlensi_unroll_1): Likewise.
17723
        (ix86_expand_strlen): Likewise.
17724
        (ix86_expand_builtin): Likewise.
17725
        (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
17726
        mov{q}/mov{l} and add{q}/add{l}.
17727
 
17728
2008-06-03  Kai Tietz  
17729
 
17730
        * config/i386/i386.md (P): New mode iterator.
17731
        (SFmode push_operand splitter): Macroize DImode and SImode pushes
17732
        using P mode iterator.
17733
        (DFmode push_operand splitter): Ditto.
17734
        (XFmode push_operand splitter): Ditto.
17735
        (DFmode float_extend SFmode push_operand splitter): Ditto.
17736
        (XFmode float_extend SFmode push_operand splitter): Do not generate
17737
        SImode pushes for 64bit target.  Macroize Dimode and SImode
17738
        pushes using P mode iterator.
17739
        (XFmode float_extend DFmode push_operand splitter): Ditto.
17740
 
17741
2008-06-03  Kai Tietz  
17742
 
17743
        * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
17744
        * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
17745
        * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
17746
        return type to int.
17747
        (ix86_call_abi_override): Remove check for call_used_regs.
17748
 
17749
2008-06-03  Richard Guenther  
17750
 
17751
        * tree-ssa-structalias.c (find_func_aliases): Add constraints
17752
        for the lhs of calls if the return type contains pointers.
17753
 
17754
2008-06-03  Kai Tietz  
17755
 
17756
        * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
17757
        * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
17758
        * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
17759
        * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
17760
        of cfun and DEFAULT_ABI to deceide abi mode.
17761
        (DEFAULT_ABI): New.
17762
        (REG_PARM_STACK_SPACE): Removed.
17763
        (OUTGOING_REG_PARM_STACK_SPACE): Removed.
17764
        (STACK_BOUNDARY): Use default target to deceide stack boundary.
17765
        * config/i386/i386-protos.h (ix86_cfun_abi): New.
17766
        (ix86_function_abi): Likewise.
17767
        (ix86_function_type_abi): Likewise.
17768
        (ix86_call_abi_override): Likewise.
17769
        * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
17770
        specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
17771
        * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
17772
        (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
17773
        specific defines.
17774
        (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
17775
        (ix86_function_regparm): Handle user calling abi.
17776
        (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
17777
        by DEFAULT_ABI versus SYSV_ABI check.
17778
        (ix86_reg_parm_stack_space): New.
17779
        (ix86_function_type_abi): New.
17780
        (ix86_call_abi_override): New.
17781
        (ix86_function_abi): New.
17782
        (ix86_cfun_abi): New.
17783
        (init_cumulative_args): Call abi specific initialization.
17784
        (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
17785
        (function_arg_64): Extend SSE_REGPARM_MAX check.
17786
        (function_arg (): Remove TARGET_64BIT_MS_ABI.
17787
        (ix86_pass_by_reference): Likewise.
17788
        (ix86_function_value_regno_p): Likewise.
17789
        (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
17790
        (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
17791
        (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
17792
        (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
17793
        (setup_incoming_varargs_64): Adjust regparm for call abi.
17794
        (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
17795
        (ix86_va_start): Likewise.
17796
        (ix86_gimplify_va_arg): Likewise.
17797
        (ix86_expand_prologue): Likewise.
17798
        (output_pic_addr_const): Likewise.
17799
        (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
17800
        (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
17801
        (x86_output_mi_thunk): Likewise.
17802
        (x86_function_profiler): Likewise.
17803
        * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
17804
        (SYSV_ABI, MS_ABI): New constants.
17805
        (DEFAULT_ABI): New.
17806
        (init_regs): Add prototype of function in regclass.c file.
17807
        (OVERRIDE_ABI_FORMAT): New.
17808
        (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
17809
        (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
17810
        (OUTGOING_REG_PARM_STACK_SPACE): New.
17811
        (ix86_reg_parm_stack_space): New prototype.
17812
        (CUMULATIVE_ARGS): Add call_abi member.
17813
        (X86_64_REGPARM_MAX): New.
17814
        (X86_64_SSE_REGPARM_MAX): New.
17815
        (X64_REGPARM_MAX): New.
17816
        (X64_SSE_REGPARM_MAX): New.
17817
        (X86_32_REGPARM_MAX): New.
17818
        (X86_32_SSE_REGPARM_MAX): New.
17819
        (REGPARM_MAX): Updated.
17820
        (SSE_REGPARM_MAX): Updated.
17821
        (machine_function): Add call_abi member.
17822
        * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
17823
        TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
17824
 
17825
2008-06-02  Andy Hutchinson  
17826
 
17827
        PR target/34879
17828
        * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
17829
        (avr_builtin_setjmp_frame_value): New function.
17830
        * config/avr/avr.md (nonlocal_goto_receiver): Define.
17831
        (nonlocal_goto): Define.
17832
 
17833
2008-06-02  Richard Sandiford  
17834
 
17835
        * config/mips/mips.c (mips_emit_loadgp): Return early if
17836
        there is nothing do to, otherwise emit a blockage if
17837
        !TARGET_EXPLICIT_RELOCS || crtl->profile.
17838
        * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
17839
 
17840
2008-06-02  Ralf Wildenhues  
17841
 
17842
        * configure.ac: Drop unneeded backslash ending up in config.in.
17843
        * acinclude.m4: Likewise.
17844
        * config.in: Regenerate.
17845
 
17846
2008-05-26  Jan Hubicka  
17847
 
17848
        * predict.c (maybe_hot_frequency_p): Break out of...
17849
        (maybe_hot_bb_p): ... here.
17850
        (maybe_hot_edge_p): New.
17851
        * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
17852
        * basic-block.h (maybe_hot_edge_p): Declare.
17853
 
17854
2008-05-31  Uros Bizjak  
17855
 
17856
        * config/i386/i386.md (*cmpfp_): Enable for optimize_size.
17857
        (*cmpfp__cc): Ditto.
17858
        (*fp_jcc_8_387): Ditto.
17859
        (*fop__2_i387): Ditto.
17860
        (*fop__3_i387): Ditto.
17861
        (*fop_xf_2_i387): Ditto.
17862
        (*fop_xf_3_i387): Ditto.
17863
 
17864
2008-06-02  Tomas Bily  
17865
 
17866
        * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
17867
 
17868
2008-06-01  Richard Sandiford  
17869
 
17870
        * config/mips/mips.c (mips_valid_offset_p): New function.
17871
        (mips_valid_lo_sum_p): Likewise.
17872
        (mips_classify_address): Use them.
17873
        (mips_force_address): New function.
17874
        (mips_legitimize_address): Use it.
17875
        * config/mips/mips.md (MOVE128): New mode iterator.
17876
        (movtf): Require TARGET_64BIT.  Remove empty strings.
17877
        (*movtf_internal): Rename to...
17878
        (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
17879
        of "R" and use {,fp}{load,store} attributes instead of "multi".
17880
        Use a separate define_split.
17881
        (*movtf_mips16): New pattern.
17882
 
17883
2008-06-01  Richard Sandiford  
17884
 
17885
        * config/mips/mips-protos.h (mips_expand_before_return): Declare.
17886
        * config/mips/mips.c (mips_expand_before_return): New function.
17887
        (mips_expand_epilogue): Call it.
17888
        * config/mips/mips.md (return): Turn into a define_expand.
17889
        (*return): New insn.
17890
 
17891
2008-06-01  Richard Sandiford  
17892
 
17893
        * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
17894
        * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
17895
        functions.  Do not emit uses and clobbers of CONCATs; individually
17896
        use and clobber their operands.
17897
        * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
17898
        gen_clobber, emit_use and gen_use.
17899
        (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
17900
        (expand_builtin_return): Likewise.
17901
        * cfgbuild.c (count_basic_blocks): Likewise.
17902
        * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
17903
        * explow.c (emit_stack_restore): Likewise.
17904
        * expmed.c (extract_bit_field_1): Likewise.
17905
        * expr.c (convert_move, emit_move_complex_parts): Likewise.
17906
        (emit_move_multi_word, store_constructor): Likewise.
17907
        * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
17908
        (thread_prologue_and_epilogue_insns): Likewise.
17909
        * lower-subreg.c (resolve_simple_move): Likewise.
17910
        * optabs.c (widen_operand, expand_binop): Likewise.
17911
        (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
17912
        * reload.c (find_reloads): Likewise.
17913
        * reload1.c (eliminate_regs_in_insn): Likewise.
17914
        * stmt.c (expand_nl_goto_receiver): Likewise.
17915
        * config/alpha/alpha.md (builtin_longjmp): Likewise.
17916
        * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
17917
        * config/arm/arm.c (arm_load_pic_register): Likewise.
17918
        (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
17919
        * config/arm/arm.md (untyped_return): Likewise.
17920
        * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
17921
        * config/avr/avr.c (expand_prologue): Likewise.
17922
        * config/bfin/bfin.c (do_unlink): Likewise.
17923
        * config/bfin/bfin.md (di3, adddi3, subdi3): Likewise.
17924
        * config/cris/cris.c (cris_expand_prologue): Likewise.
17925
        * config/darwin.c (machopic_indirect_data_reference): Likewise.
17926
        (machopic_legitimize_pic_address): Likewise.
17927
        * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
17928
        (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
17929
        * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
17930
        (ix86_expand_convert_uns_didf_sse): Likewise.
17931
        (ix86_expand_vector_init_general): Likewise.
17932
        * config/ia64/ia64.md (eh_epilogue): Likewise.
17933
        * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
17934
        * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
17935
        * config/m32r/m32r.c (m32r_reload_lr): Likewise.
17936
        (config/iq2000/iq2000.c): Likewise.
17937
        * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
17938
        (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
17939
        (builtin_longjmp): Likewise.
17940
        * config/mn10300/mn10300.md (call, call_value): Likewise.
17941
        * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
17942
        * config/pdp11/pdp11.md (abshi2): Likewise.
17943
        * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
17944
        * config/s390/s390.c (s390_emit_prologue): Likewise.
17945
        * config/s390/s390.md (movmem_long, setmem_long): Likewise.
17946
        (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
17947
        (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
17948
        * config/sh/sh.c (prepare_move_operands): Likewise.
17949
        (output_stack_adjust, sh_expand_epilogue): Likewise.
17950
        (sh_set_return_address, sh_expand_t_scc): Likewise.
17951
        * config/sparc/sparc.c (load_pic_register): Likewise.
17952
        * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
17953
        * config/spu/spu.c (spu_expand_epilogue): Likewise.
17954
        * config/v850/v850.c (expand_epilogue): Likewise.
17955
 
17956
2008-05-31  Anatoly Sokolov  
17957
 
17958
        * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
17959
        (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
17960
        (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
17961
        * config/avr/avr.c (expand_prologue, expand_epilogue): Use
17962
        movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
17963
        stack pointer register.
17964
        (output_movhi): Remove code for interrupt specific writing to the
17965
        stack pointer register.
17966
 
17967
2008-05-31  Richard Guenther  
17968
 
17969
        PR tree-optimization/34244
17970
        * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
17971
        (tree_expr_nonzero_warnv_p): Likewise.
17972
        * tree-vrp.c (vrp_expr_computes_nonnegative): Call
17973
        ssa_name_nonnegative_p.
17974
        (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
17975
        (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
17976
        not tree_expr_nonzero_warnv_p.
17977
 
17978
        PR tree-optimization/36262
17979
        Revert
17980
        2007-11-29  Zdenek Dvorak  
17981
 
17982
        PR tree-optimization/34244
17983
        * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
17984
        (record_numbers_of_iterations): New function.
17985
        (execute_vrp): Cache the numbers of iterations of loops.
17986
        * tree-scalar-evolution.c (scev_reset_except_niters):
17987
        New function.
17988
        (scev_reset): Use scev_reset_except_niters.
17989
        * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
17990
 
17991
2008-05-31  Bernd Schmidt  
17992
 
17993
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
17994
        __WORKAROUND_RETS when appropriate.
17995
 
17996
2008-05-31  Uros Bizjak  
17997
 
17998
        * config/i386/i386.md (*fop__comm_mixed): Macroize from
17999
        *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
18000
        mode iterator.
18001
        (*fop__comm_sse): Macroize from *fop_sf_comm_sse and
18002
        *fop_df_comm_sse insn patterns using MODEF mode iterator.
18003
        (*fop__comm_i387): Macroize from *fop_sf_comm_i387 and
18004
        *fop_df_comm_i387 insn patterns using MODEF mode iterator.
18005
        (*fop__1_mixed): Macroize from *fop_sf_1_mixed and
18006
        *fop_df_1_mixed insn patterns using MODEF mode iterator.
18007
        (*fop__1_sse): Macroize from *fop_sf_1_sse and
18008
        *fop_df_1_sse insn patterns using MODEF mode iterator.
18009
        (*fop__1_i387): Macroize from *fop_sf_1_i387 and
18010
        *fop_df_1_i387 insn patterns using MODEF mode iterator.
18011
        (*fop__2_i387): Macroize from *fop_sf_2_i387 and
18012
        *fop_df_2_i387 insn patterns using MODEF mode iterator.
18013
        (*fop__3_i387): Macroize from *fop_sf_3_i387 and
18014
        *fop_df_3_i387 insn patterns using MODEF mode iterator.
18015
        (*fop_xf_2_i387): Rename from *fop_xf_2_i387.
18016
        (*fop_xf_3_i387): Rename from *fop_xf_3_i387.
18017
        (*fop_xf_4_i387): Use  for mode attribute.
18018
        (*fop_xf_5_i387): Ditto.
18019
        (*fop_xf_6_i387): Ditto.
18020
 
18021
2008-05-30  Richard Guenther  
18022
 
18023
        * builtins.c (build_string_literal): Avoid generating
18024
        a non-gimple_val result.
18025
 
18026
2008-05-30  DJ Delorie  
18027
 
18028
        * exec-tool.in: Use an environment variable (private) instead of a
18029
        file (shared) as a semaphore, so as to not break parallel builds.
18030
 
18031
2008-05-30  Steven Bosscher  
18032
 
18033
        * optabs.c (maybe_encapsulate_block): Remove.
18034
        (emit_libcall_block): Adjust accordingly.
18035
        * optabs.h (maybe_encapsulate_block): Remove prototype.
18036
 
18037
        * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
18038
        Don't use maybe_encapsulate_block.
18039
 
18040
2008-05-30  Steven Bosscher  
18041
 
18042
        * config/rs6000/rs6000.c (rs6000_legitimize_address,
18043
        rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
18044
        rtx is a SYMBOL_REF before calling get_pool_constant.
18045
 
18046
2008-05-30  Eric Botcazou  
18047
 
18048
        * fold-const.c (fold_unary) : Add ??? comment.
18049
 
18050
2008-05-30  Danny Smith  
18051
 
18052
        * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
18053
        rather than OS names to choose INO_T_EQ definition.
18054
        (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
18055
        (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
18056
 
18057
2008-05-29  Daniel Franke  
18058
 
18059
        PR target/36348
18060
        * config/darwin-f.c: New.
18061
        * config/t-darwin: Added rule to build darwin-f.o.
18062
        * config.gcc: Defined new variable, fortran_target_objs.
18063
        (*-*-darwin*): Set fortran_target_objs.
18064
        * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
18065
        * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
18066
        * configure: Regenerated.
18067
 
18068
2008-05-29  H.J. Lu  
18069
 
18070
        PR target/35771
18071
        * config/i386/i386.c (ix86_function_arg_boundary): Convert to
18072
        canonical type if needed.
18073
 
18074
2008-05-29  Eric Botcazou  
18075
 
18076
        * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
18077
 
18078
2008-05-29  Richard Guenther  
18079
 
18080
        PR tree-optimization/36343
18081
        PR tree-optimization/36346
18082
        PR tree-optimization/36347
18083
        * tree-flow.h (clobber_what_p_points_to): Declare.
18084
        * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
18085
        pointed-to variable is dereferenced is irrelevant to whether
18086
        the pointer can access the pointed-to variable.
18087
        (clobber_what_p_points_to): New function.
18088
        * tree-ssa-alias.c (set_initial_properties): Use it.
18089
        * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
18090
        call clobber check for NMTs.
18091
 
18092
2008-05-28  Seongbae Park  
18093
 
18094
        * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
18095
        for printing gcov_type.
18096
 
18097
2008-05-28  Seongbae Park  
18098
 
18099
        * tree-ssa-propagate.c (set_rhs): Preserve the histogram
18100
        and the eh region information.
18101
        * value-prof.c (gimple_move_stmt_histograms): New function.
18102
        * value-prof.h (gimple_move_stmt_histograms): New function declaration.
18103
 
18104
2008-05-28  Andreas Tobler  
18105
 
18106
        * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
18107
 
18108
2008-05-28  Seongbae Park  
18109
 
18110
        * value-prof.c (tree_ic_transform): Print counts.
18111
        * tree-profile.c (tree_gen_ic_func_profiler):
18112
        Clear __gcov_indreict_call_callee variable to avoid misattribution
18113
        of the profile.
18114
 
18115
2008-05-28  Rafael Espíndola  
18116
 
18117
        * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
18118
        invalid sharing.
18119
 
18120
2008-05-28  Richard Guenther  
18121
 
18122
        PR tree-optimization/36339
18123
        * tree-ssa-alias.c (set_initial_properties): Move pt_anything
18124
        and clobbering code out of the loop.
18125
 
18126
2008-05-28  Andreas Krebbel  
18127
 
18128
        * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
18129
        letters defined.
18130
 
18131
        * config/s390/s390.c (s390_compare_and_branch_condition_mask,
18132
        s390_contiguous_bitmask_p, s390_symref_operand_p,
18133
        s390_check_symref_alignment, s390_reload_larl_operand,
18134
        s390_reload_symref_address): New functions.
18135
        (s390_branch_condition_mnemonic): Support compare and branch
18136
        instructions.
18137
        (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
18138
        and 'W' constraints.
18139
        (s390_secondary_reload): Add secondary reloads for unaligned
18140
        symbol refs or symbol refs to floating point or QI/TI mode
18141
        integer values.
18142
        (legitimate_address_p): Accept symbol references as addresses.
18143
        (s390_expand_insv): Use rotate and insert selected bits
18144
        instruction for insv when building for z10.
18145
        (print_operand_address): Handle symbol ref addresses.
18146
        (print_operand): Output modifier 'c' added for signed byte values.
18147
        (s390_encode_section_info): Mark symbol refs with
18148
        SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
18149
 
18150
        * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
18151
        (length attribute): RRF, RRR have 4 byte length.
18152
        (FPALL, INTALL): New mode iterators added.
18153
        (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
18154
        *cmp_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
18155
        *movdi_64, *movsi_zarch, *movhi, movmem, *movmem_short,
18156
        *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
18157
        *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
18158
        *add3, *add3_carry1_cc, *add3_carry2_cc,
18159
        *add3_cc, *add3_imm_cc, *muldi3_sign, muldi3,
18160
        *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
18161
        instructions.
18162
        (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
18163
        *cmp_ccu_zerohi_rldi, *cmp_and_br_signed_,
18164
        *cmp_and_br_unsigned_, reload_tomem_z10,
18165
        reload_toreg_z10,
18166
        reload_tomem_z10,
18167
        reload_toreg_z10,
18168
        reload_larl_odd_addend_z10, *execute_rl, *insv_z10,
18169
        *insv_z10_noshift, *insv_or_z10_noshift,
18170
        *zero_extendhi2_z10, *cmp_and_trap_signed_int,
18171
        *cmp_and_trap_unsigned_int, prefetch): New pattern or expander
18172
        definition.
18173
        (movmem, clrmem, cmpmem): New splitters added.
18174
 
18175
        * config/s390/predicates.md (larl_operand): Use
18176
        SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
18177
        SYMBOL_REF_ALIGN1_P.
18178
        (s390_signed_integer_comparison,
18179
        s390_unsigned_integer_comparison): New predicates.
18180
 
18181
        * config/s390/s390-protos.h (s390_check_symref_alignment,
18182
        s390_contiguous_bitmask_p, s390_reload_larl_operand,
18183
        s390_reload_symref_address,
18184
        s390_compare_and_branch_condition_mask): Prototypes added.
18185
 
18186
        * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
18187
        SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
18188
        SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
18189
 
18190
2008-05-28  Andreas Krebbel  
18191
 
18192
        * config/s390/s390.c (z10_cost): New cost function for z10.
18193
        (s390_handle_arch_option, override_options): Support -march=z10 switch.
18194
        (s390_issue_rate): Adjust issue rate for z10.
18195
        * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
18196
        (processor_flags): Add PF_Z10.
18197
        (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
18198
        * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
18199
        * gcc/config.gcc: Add z10.
18200
 
18201
2008-05-28  Richard Guenther  
18202
 
18203
        PR tree-optimization/36291
18204
        * tree-flow. h (struct gimple_df): Remove var_anns member.
18205
        * tree-flow-inline.h (gimple_var_anns): Remove.
18206
        (var_ann): Simplify.
18207
        * tree-dfa.c (create_var_ann): Simplify.
18208
        (remove_referenced_var): Clear alias info from var_anns of globals.
18209
        * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
18210
        (delete_tree_ssa): Clear alias info from var_anns of globals.
18211
        Do not free var_anns.
18212
        (var_ann_eq): Remove.
18213
        (var_ann_hash): Likewise.
18214
 
18215
2008-05-28  Mark Shinwell  
18216
 
18217
        * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
18218
        and loongson2f entries.
18219
        (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
18220
        * config/mips/mips.h (processor_type): Add Loongson-2E
18221
        and Loongson-2F entries.
18222
        (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
18223
        (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
18224
        * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
18225
        * doc/invoke.texi (MIPS Options): Document loongson2e
18226
        and loongson2f processor names.
18227
 
18228
2008-05-27  H.J. Lu  
18229
 
18230
        PR target/35767
18231
        PR target/35771
18232
        * config/i386/i386.c (ix86_function_arg_boundary): Use
18233
        alignment of canonical type.
18234
        (ix86_expand_vector_move): Check unaligned memory access for
18235
        all SSE modes.
18236
 
18237
2008-05-27  H.J. Lu  
18238
 
18239
        * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
18240
        Moved to the front of file.
18241
 
18242
2008-05-27  Xuepeng Guo  
18243
            H.J. Lu  
18244
 
18245
        * dwarf2out.c (current_fde): New.
18246
        (add_cfi): Use it.
18247
        (lookup_cfa:): Likewise.
18248
        (dwarf2out_end_epilogue): Likewise.
18249
        (dwarf2out_note_section_used): Likewise.
18250
 
18251
2008-05-27  Michael Matz  
18252
 
18253
        PR c++/27975
18254
        * c.opt (Wenum-compare): New warning option.
18255
        * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
18256
 
18257
2008-05-27  Michael Matz  
18258
 
18259
        PR middle-end/36326
18260
        * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
18261
        non-BLKmode types.
18262
        * tree-tailcall.c (find_tail_calls): Don't mark calls storing
18263
        into memory as tail calls.
18264
 
18265
2008-05-27  Richard Guenther  
18266
 
18267
        PR tree-optimization/36339
18268
        * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
18269
        pointers cause all addressable variables to be call clobbered.
18270
 
18271
2008-05-27  Richard Guenther  
18272
 
18273
        PR tree-optimization/36245
18274
        * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
18275
 
18276
2008-05-27  Andreas Krebbel  
18277
 
18278
        * config/s390/s390.md: Replace all occurences of the 'm'
18279
        constraint with 'RT'.
18280
 
18281
2008-05-27  Andreas Krebbel  
18282
 
18283
        * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
18284
        definitions added.
18285
        ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
18286
        "*movdi_64".
18287
        ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
18288
        ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
18289
        ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
18290
 
18291
2008-05-27  Andreas Krebbel  
18292
 
18293
        * reload.c (find_reloads): Skip alternatives according to the
18294
        "enabled" attribute. Constify the constraint variable.
18295
        * recog.c (get_attr_enabled): Add default implementation.
18296
        (extract_insn): Set the alternative_enabled_p array
18297
        in the recog_data struct.
18298
        (preprocess_constraints, constrain_operands): Skip
18299
        alternatives according to the "enabled" attribute
18300
        * recog.h (struct recog_data): New field alternative_enabled_p.
18301
        (skip_alternative): New inline function.
18302
        * regclass.c (record_operand_costs): Check the "enabled" attribute.
18303
        (record_reg_classes): Skip alternative according to the
18304
        "enabled" attribute.
18305
 
18306
        * doc/md.texi: Add documention for the "enabled" attribute.
18307
 
18308
2008-05-27  Andreas Krebbel  
18309
 
18310
        * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
18311
        * postreload.c (reload_cse_simplify_operands): Replace 'm'
18312
        constraint with TARGET_MEM_CONSTRAINT.
18313
        * recog.c (asm_operand_ok, preprocess_constraints,
18314
        constrain_operands): Likewise.
18315
        * regclass.c (record_reg_classes): Likewise.
18316
        * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
18317
        * reload1.c (maybe_fix_stack_asms): Likewise.
18318
        * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
18319
        * recog.h: Adjust comment.
18320
        * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
18321
        * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
18322
        * doc/md.texi: Add a note to description of 'm' constraint.
18323
        * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
18324
 
18325
2008-05-27  Eric Botcazou  
18326
 
18327
        * tree-sra.c (sra_type_can_be_decomposed_p) : Make sure
18328
        that the bitfield is of integral type before testing its precision.
18329
 
18330
2008-05-27  Trevor Smigiel  
18331
            Sa Liu  
18332
 
18333
        * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
18334
        __modti3, __udivti3, __umodti3 and __udivmodti4.
18335
        * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
18336
        that implement TImode mul and div functions.
18337
        * config/spu/multi3.c: New. Implement __multi3.
18338
        * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
18339
        * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
18340
        functions on SPU.
18341
 
18342
2008-05-26  Steven Bosscher  
18343
 
18344
        * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
18345
        new tls_gd_* and tls_ld_* insns instead of an insn sequence.
18346
        * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
18347
        tls_sysv_suffix): New mode and mode attribute iterators.
18348
        (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
18349
        (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
18350
        (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
18351
        tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
18352
        tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
18353
        iterators.
18354
 
18355
2008-05-26  Eric Botcazou  
18356
 
18357
        PR tree-optimization/36329
18358
        * tree.h (CALL_CANNOT_INLINE_P): Add access check.
18359
        * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
18360
        * cgraphbuild.c (initialize_inline_failed): Use the latter
18361
        macro in lieu of the former.
18362
        * ipa-inline.c (cgraph_mark_inline): Likewise.
18363
        (cgraph_decide_inlining_of_small_function): Likewise.
18364
        (cgraph_decide_inlining): Likewise.
18365
        (cgraph_decide_inlining_incrementally): Likewise.
18366
 
18367
2008-05-26  Tristan Gingold  
18368
            Anatoly Sokolov  
18369
 
18370
        * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
18371
        instead of pm_lo8/pm_hi8 to makes this call working on avr6.
18372
        * config/avr/avr.c (expand_prologue): Tune "call_prologue"
18373
        optimization for 'avr6' architecture.
18374
 
18375
2008-05-26  Andy Hutchinson  
18376
 
18377
        PR target/34932
18378
        * config/avr/avr.md (*addhi3_zero_extend2): Remove.
18379
 
18380
2008-05-26  Richard Guenther  
18381
 
18382
        * tree-ssa-sccvn.c (expr_has_constants): Declare.
18383
        (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
18384
 
18385
2008-05-26  H.J. Lu  
18386
 
18387
        PR middle-end/36253
18388
        * caller-save.c (insert_restore): Verify alignment of spill space.
18389
        (insert_save): Likewise.
18390
        * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
18391
        * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
18392
        (STACK_SLOT_ALIGNMENT): Likewise.
18393
        * function.c (LOCAL_ALIGNMENT): Removed.
18394
        (get_stack_local_alignment): New.
18395
        (assign_stack_local): Use it.  Set alignment on stack slot.
18396
        (assign_stack_temp_for_type): Use get_stack_local_alignment.
18397
        * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
18398
        (STACK_SLOT_ALIGNMENT): New.
18399
        * config/i386/i386.c (ix86_local_alignment): Handle caller-save
18400
        stack slot in XFmode.
18401
 
18402
        * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
18403
 
18404
2008-05-26  Kai Tietz  
18405
 
18406
        PR/36321
18407
        * config/i386/i386.md (allocate_stack_worker_64): Make sure
18408
        argument operand in rax isn't removed.
18409
 
18410
2008-05-26  Richard Guenther  
18411
 
18412
        PR middle-end/36300
18413
        * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
18414
        not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
18415
 
18416
2008-05-26  Daniel Franke  
18417
 
18418
        PR bootstrap/36331
18419
        * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
18420
 
18421
2008-05-26  Dominique Dhumieres  
18422
 
18423
        * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
18424
        * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
18425
 
18426
2008-05-25  Eric Botcazou  
18427
 
18428
        * tree-nested.c (convert_tramp_reference) : Do not
18429
        build a trampoline if we don't want one.
18430
        * varasm.c (initializer_constant_valid_p) : Do not
18431
        return zero for nested functions if we don't want a trampoline.
18432
 
18433
2008-05-26  Daniel Franke  
18434
 
18435
        * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
18436
 
18437
2008-05-26  Daniel Franke  
18438
 
18439
        PR fortran/18428
18440
        * c.opt: Removed undocumented option '-lang-fortran'.
18441
        * c-common.h: Removed global variable 'lang_fortran'.
18442
        * c-opts.c (c_common_handle_option): Removed code to handle
18443
        option '-lang-fortran'. Updated includes.
18444
        * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
18445
        definition of '__GFORTRAN__'.
18446
        (define__GNUC__): Reimplemented to use BASEVER and
18447
        cpp_define_formatted.
18448
        (builtin_define_with_value_n): Removed.
18449
        * c-incpath.h: Renamed to ...
18450
        * incpath.h: ... this.
18451
        * c-incpath.c: Renamed to ...
18452
        * incpath.c: ... this. Updated includes.
18453
        * fix-header.c: Updated includes.
18454
        * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
18455
        (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
18456
        (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
18457
 
18458
2008-05-25  Eric Botcazou  
18459
 
18460
        * tree.h: Update the table of flags used on tree nodes.
18461
        (TREE_NO_TRAMPOLINE): New accessor for static_flag.
18462
        (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
18463
        (FORCED_LABEL): Add access check.
18464
        (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
18465
        (ASM_INPUT_P): Likewise.
18466
        (ASM_VOLATILE_P): Likewise.
18467
        (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
18468
        (OMP_SECTION_LAST): Access private_flag directly.
18469
        (OMP_RETURN_NOWAIT): Likewise.
18470
        (OMP_PARALLEL_COMBINED): Likewise.
18471
        (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
18472
        (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
18473
        * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
18474
        deprecated_flag directly.
18475
 
18476
2008-05-25  H.J. Lu  
18477
 
18478
        * final.c (frame_pointer_needed): Removed.
18479
        * flags.h (frame_pointer_needed): Likewise.
18480
 
18481
        * function.h (rtl_data): Add frame_pointer_needed.
18482
        (frame_pointer_needed): New.
18483
 
18484
2008-05-25  Arthur Loiret  
18485
 
18486
        * config.gcc (sh2[lbe]*-*-linux*): Allow target.
18487
 
18488
2008-05-25  Steven Bosscher  
18489
 
18490
        * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
18491
        SRC is a REG.
18492
 
18493
2008-05-25  Alan Modra  
18494
 
18495
        * c-common.c (strip_array_types): Move function to..
18496
        * tree.c: ..here.
18497
        (get_inner_array_type): Delete.
18498
        * c-common.h (strip_array_types): Move declaration to..
18499
        * tree.h: ..here.
18500
        (get_inner_array_type): Delete.
18501
        * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
18502
        * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
18503
        * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
18504
        * config/pa/pa.c (emit_move_sequence): Likewise.
18505
 
18506
2008-05-24  H.J. Lu  
18507
 
18508
        * config/i386/i386.md (*sse_prologue_save_insn): Set length
18509
        attribute to 34.
18510
 
18511
2008-05-24  Andy Hutchinson  
18512
 
18513
        * function.c: Include target hook for nonlocal_goto frame value.
18514
 
18515
2008-05-24  Richard Guenther  
18516
 
18517
        * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
18518
        variable can be only accessed through a pointer or a union.
18519
 
18520
2008-05-24  Kaveh R. Ghazi  
18521
 
18522
        * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
18523
        * doc/extend.texi: Likewise.
18524
 
18525
2008-05-23  DJ Delorie  
18526
 
18527
        * config/m32c/jump.md (untyped_call): Add.
18528
 
18529
        * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
18530
        for A24 to PSImode.
18531
        (m32c_address_cost): Detail costs for indirect offsets.
18532
 
18533
2008-05-23  Rafael Espíndola  
18534
 
18535
        * see.c (see_get_extension_data): Don't use SUBREG_REG to test
18536
        if a node is a SUBREG.
18537
        (see_analyze_one_def): Don't use SUBREG_REG to test if a node
18538
        is a SUBREG.
18539
 
18540
2008-05-23  Paul Brook  
18541
            Carlos O'Donell  
18542
 
18543
        * doc/extend.texi: Clarify use of __attribute__((naked)).
18544
        * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
18545
        * target.h (gcc_target): Add allocate_stack_slots_for_args.
18546
        * function.c (use_register_for_decl): Use
18547
        targetm.calls.allocate_stack_slots_for_args.
18548
        * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
18549
        * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
18550
        (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
18551
 
18552
2008-05-23  Eric Botcazou  
18553
 
18554
        * expr.c (highest_pow2_factor) : New case.
18555
 
18556
2008-05-23  Steven Munroe  
18557
 
18558
        * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
18559
        PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
18560
        is only rounded once.
18561
 
18562
2008-05-23  Richard Guenther  
18563
 
18564
        * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
18565
 
18566
2008-05-23  Uros Bizjak  
18567
            Jakub Jelinek  
18568
 
18569
        PR target/36079
18570
        * configure.ac: Handle --enable-cld.
18571
        * configure: Regenerated.
18572
        * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
18573
        * config/i386/i386.h (struct machine_function): Add needs_cld field.
18574
        (ix86_current_function_needs_cld): New define.
18575
        * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
18576
        (cld): New isns pattern.
18577
        (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
18578
        cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
18579
        * config/i386/i386.opt (mcld): New option.
18580
        * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
18581
        TARGET_CLD and ix86_current_function_needs_cld.
18582
        (override_options): Use -mcld by default for 32-bit code if
18583
        USE_IX86_CLD.
18584
 
18585
        * doc/install.texi (Options specification): Document --enable-cld.
18586
        * doc/invoke.texi (Machine Dependent Options)
18587
        [i386 and x86-64 Options]: Add -mcld option.
18588
        (Intel 386 and AMD x86-64 Options): Document -mcld option.
18589
 
18590
2008-05-23  Kai Tietz  
18591
        * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
18592
        (return_in_memory_64): Likewise.
18593
        (return_in_memory_ms_64): Likewise.
18594
 
18595
2008-05-23  Kaveh R. Ghazi  
18596
 
18597
        * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
18598
        * builtins.c (fold_builtin_fpclassify): New.
18599
        (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
18600
        * builtins.def (BUILT_IN_FPCLASSIFY): New.
18601
        * c-common.c (handle_type_generic_attribute): Adjust to accept
18602
        fixed arguments before an elipsis.
18603
        (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
18604
        * doc/extend.texi: Document __builtin_fpclassify.
18605
 
18606
2008-05-22  Aldy Hernandez  
18607
 
18608
        * omp-low.c (gate_expand_omp_ssa): Remove.
18609
        (pass_expand_omp_ssa): Remove.
18610
        (gate_expand_omp): Do not check for flag_openmp_ssa.
18611
        * common.opt (-fopenmp-ssa): Remove.
18612
        * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
18613
 
18614
2008-05-22  Kaz Kojima  
18615
 
18616
        * config/sh/sh.opt (mfixed-range): New option.
18617
        * config/sh/sh-protos.h (sh_fix_range): Declare.
18618
        * config/sh/sh.c (sh_fix_range): New function.
18619
        * config/sh/sh.h (sh_fixed_range_str): Declare.
18620
        (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
18621
        is not empty.
18622
        * doc/invoke.texi (SH Options): Document -mfixed-range.
18623
 
18624
2008-05-22  Kai Tietz  
18625
 
18626
        * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
18627
        it before the redeclaration.
18628
 
18629
2008-05-22  Anatoly Sokolov  
18630
 
18631
        * config/avr/avr.c (get_sequence_length): Add new function.
18632
        (expand_prologue, expand_epilogue): Remove duplicate code.
18633
 
18634
2008-05-22  Rafael Espíndola  
18635
 
18636
        * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
18637
        sharing.
18638
 
18639
2008-05-22  H.J. Lu  
18640
 
18641
        * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
18642
        * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
18643
 
18644
        * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
18645
        UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
18646
        (vect_update_misalignment_for_peel): Likewise.
18647
        (vector_alignment_reachable_p): Likewise.
18648
        * tree-vect-transform.c (vectorizable_load): Likewise.
18649
        * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
18650
        (get_vectype_for_scalar_type): Pass mode of scalar_type
18651
        to UNITS_PER_SIMD_WORD.
18652
 
18653
        * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
18654
        * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
18655
        * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
18656
        * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
18657
        * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
18658
 
18659
2008-05-22  Ira Rosen  
18660
 
18661
        PR tree-optimization/36293
18662
        * tree-vect-transform.c (vect_transform_strided_load): Don't check
18663
        if the first load must be skipped because of a gap.
18664
 
18665
2008-05-22  Richard Guenther  
18666
 
18667
        * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
18668
        more cases of offset disambiguation that is possible if
18669
        strict-aliasing rules apply.
18670
        * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
18671
        for basic offset and type-based disambiguation.
18672
 
18673
2008-05-21  H.J. Lu  
18674
 
18675
        * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
18676
        ix86_expand_vector_set on V16QImode for SSE4.1.
18677
 
18678
2008-05-21  Tom Tromey  
18679
 
18680
        * c.opt (Wimport): Mark as undocumented.
18681
        * doc/invoke.texi (Option Summary): Don't mention -Wimport or
18682
        -Wno-import.
18683
        (Warning Options): Likewise.
18684
        * doc/cppopts.texi: Don't mention -Wimport.
18685
 
18686
2008-05-21  Sebastian Pop  
18687
 
18688
        PR tree-optimization/36287
18689
        PR tree-optimization/36286
18690
        * lambda-code.c (build_access_matrix): Do not use the loop->num
18691
        for computing the number of induction variables: use the loop depth
18692
        instead.
18693
 
18694
2008-05-21  Kai Tietz  
18695
 
18696
        PR/36280
18697
        * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
18698
        option -f(no-)leading-underscore.
18699
 
18700
2008-05-21  H.J. Lu  
18701
 
18702
        * config/i386/i386.c (ix86_expand_vector_init_general): Use
18703
        GET_MODE_NUNITS (mode).
18704
 
18705
2008-05-21  Peter Bergner  
18706
 
18707
        * doc/invoke.texi: Add cpu_type's 464 and 464fp.
18708
        (-mmulhw): Add 464 to description.
18709
        (-mdlmzb): Likewise.
18710
        * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
18711
        * config/rs6000/rs6000.c (processor_target_table): Add 464 and
18712
        464fp entries.
18713
        * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
18714
        * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
18715
        * config/rs6000/rs6000.md: Update comments for 464.
18716
 
18717
2008-05-21  Janis Johnson  
18718
 
18719
        * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
18720
 
18721
2008-05-21  H.J. Lu  
18722
 
18723
        * config/i386/sse.md (vec_extractv4sf): Removed.
18724
        (vec_extractv2df): Likewise.
18725
        (vec_extractv2di): Likewise.
18726
        (vec_extractv4si): Likewise.
18727
        (vec_extractv8hi): Likewise.
18728
        (vec_extractv16qi): Likewise.
18729
        (vec_extract): New.
18730
 
18731
2008-05-21  H.J. Lu  
18732
 
18733
        * config/i386/sse.md (vec_setv4sf): Removed.
18734
        (vec_setv2df): Likewise.
18735
        (vec_setv2di): Likewise.
18736
        (vec_setv4si): Likewise.
18737
        (vec_setv8hi): Likewise.
18738
        (vec_setv16qi): Likewise.
18739
        (vec_set): New.
18740
 
18741
2008-05-21  H.J. Lu  
18742
 
18743
        * config/i386/i386.c (ix86_expand_vector_init_general): Remove
18744
        goto for vec_concat and vec_interleave.
18745
 
18746
2008-05-21  H.J. Lu  
18747
 
18748
        * config/i386/sse.md (vec_initv4sf): Removed.
18749
        (vec_initv2df): Likewise.
18750
        (vec_initv2di): Likewise.
18751
        (vec_initv4si): Likewise.
18752
        (vec_initv8hi): Likewise.
18753
        (vec_initv16qi): Likewise.
18754
        (vec_init): New.
18755
 
18756
2008-05-21  Joseph Myers  
18757
 
18758
        * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
18759
 
18760
2008-05-21  Tom Tromey  
18761
 
18762
        * ggc-zone.c (lookup_page_table_if_allocated): New function.
18763
        (zone_find_object_offset): Likewise.
18764
        (gt_ggc_m_S): Likewise.
18765
        (highest_bit): Likewise.
18766
        * ggc-page.c (gt_ggc_m_S): New function.
18767
        * stringpool.c (string_stack): Remove.
18768
        (init_stringpool): Update.
18769
        (ggc_alloc_string): Use ggc_alloc.
18770
        (maybe_delete_ident): New function.
18771
        (ggc_purge_stringpool): Likewise.
18772
        (gt_ggc_m_S): Remove.
18773
        * ggc-common.c (ggc_protect_identifiers): New global.
18774
        (ggc_mark_roots): Call ggc_purge_stringpool.  Use
18775
        ggc_protect_identifiers.
18776
        * ggc.h (ggc_protect_identifiers): Declare.
18777
        (gt_ggc_m_S): Update.
18778
        (ggc_purge_stringpool): Declare.
18779
        * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
18780
        * gengtype.c (write_types_process_field) : Remove
18781
        special case.
18782
        (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
18783
 
18784
2008-05-21  David S. Miller  
18785
 
18786
        * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
18787
        tmake_file.
18788
 
18789
2008-05-21  Eric Botcazou  
18790
 
18791
        * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
18792
        once finished.
18793
 
18794
2008-05-20  David Daney  
18795
 
18796
        * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
18797
        UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
18798
        (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
18799
        UNSPEC_UPDATE_GOT_VERSION): Renumber.
18800
        (optab, insn): Add 'plus' and 'minus' to define_code_attr.
18801
        (atomic_hiqi_op): New define_code_iterator.
18802
        (sync_compare_and_swap): Call mips_expand_atomic_qihi instead of
18803
        mips_expand_compare_and_swap_12.
18804
        (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
18805
        MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
18806
        (sync_, sync_old_,
18807
        sync_new_, sync_nand, sync_old_nand,
18808
        sync_new_nand): New define_expands for HI and QI mode operands.
18809
        (sync__12, sync_old__12, sync_new__12,
18810
        sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
18811
        (sync_lock_test_and_set): New define_expand for HI and QI modes.
18812
        (test_and_set_12): New insn.
18813
        (sync_old_add, sync_new_add, sync_old_,
18814
        sync_new_, sync_old_nand,
18815
        sync_new_nand, sync_lock_test_and_set):  Add early
18816
        clobber to operand 0 for SI and DI mode insns.
18817
        * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
18818
        mips_gen_fn_4): New typedefs.
18819
        (mips_gen_fn_ptrs): Define new union type.
18820
        (mips_expand_compare_and_swap_12): Remove declaration.
18821
        (mips_expand_atomic_qihi): Declare function.
18822
        * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
18823
        (mips_expand_atomic_qihi): ... this.  Use new generator function
18824
        parameter.
18825
        * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
18826
        (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
18827
        (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
18828
        MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
18829
        MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
18830
        MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
18831
        MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
18832
        MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
18833
        MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
18834
        MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
18835
        New macros.
18836
 
18837
2008-05-20  H.J. Lu  
18838
 
18839
        * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
18840
        the missing break.
18841
 
18842
2008-05-20  Anatoly Sokolov  
18843
 
18844
        * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
18845
        * config/avr/avr.c (avr_OS_main_function_p): Add new function.
18846
        (avr_attribute_table): Add 'OS_main' function attribute.
18847
        (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
18848
        functions with 'OS_main' attribute.
18849
 
18850
2008-05-20  Richard Guenther  
18851
 
18852
        PR tree-optimization/35204
18853
        * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
18854
        helper, split out from ...
18855
        (DFS): ... here.  Make the DFS walk non-recursive.
18856
 
18857
2008-05-20  Sebastian Pop  
18858
            Jan Sjodin  
18859
 
18860
        PR tree-optimization/36181
18861
        * tree-parloops.c (loop_has_vector_phi_nodes): New.
18862
        (parallelize_loops): Don't parallelize when the loop has vector
18863
        phi nodes.
18864
 
18865
2008-05-20  Jan Sjodin  
18866
            Sebastian Pop  
18867
 
18868
        * tree-loop-linear.c (gather_interchange_stats): Look in the access
18869
        matrix, and never look at the tree representation of the memory
18870
        accesses.
18871
        (linear_transform_loops): Computes parameters and access matrices.
18872
        * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
18873
        when fails.
18874
        (access_matrix_get_index_for_parameter): New.
18875
        * tree-data-ref.h (struct access_matrix): New.
18876
        (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
18877
        AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
18878
        AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
18879
        am_vector_index_for_loop): New.
18880
        (struct data_reference): Add field access_matrix.
18881
        (DR_ACCESS_MATRIX): New.
18882
        (compute_data_dependences_for_loop): Update declaration.
18883
        (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
18884
        * lambda.h (lambda_vector_vec_p): Declared.
18885
        * lambda-code.c: Depend on pointer-set.h.
18886
        (lambda_collect_parameters_from_af, lambda_collect_parameters,
18887
        av_for_af_base, av_for_af, build_access_matrix,
18888
        lambda_compute_access_matrices): New.
18889
        * Makefile.in (lambda-code.o): Depend on pointer-set.h.
18890
 
18891
2008-05-20  Joseph Myers  
18892
 
18893
        * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
18894
        $SOURCEDIR/include.
18895
 
18896
2008-05-20  Jan Sjodin  
18897
            Sebastian Pop  
18898
 
18899
        PR tree-optimization/36206
18900
        * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
18901
        FOLD_CONVERSIONS.
18902
        (instantiate_scev_1): Rename flags to fold_conversions.
18903
        Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
18904
        outeside instantiation_loop.
18905
        * tree-chrec.h (evolution_function_is_affine_in_loop): New.
18906
        (evolution_function_is_affine_or_constant_p): Removed.
18907
        * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
18908
        instantiate_scev.
18909
        (analyze_siv_subscript): Pass in the loop nest number.
18910
        Call evolution_function_is_affine_in_loop instead of
18911
        evolution_function_is_affine_p.
18912
        (analyze_overlapping_iterations): Pass in the loop nest number.
18913
 
18914
2008-05-20  Jan Sjodin  
18915
            Sebastian Pop  
18916
 
18917
        PR tree-optimization/36206
18918
        * tree-chrec.h (chrec_fold_op): New.
18919
        * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
18920
        and other trees.
18921
 
18922
2008-05-20  Nathan Sidwell  
18923
 
18924
        * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
18925
        (DIRS_EQ): New.
18926
        (remove_duplicates): Do not set inode on non-inode systems.
18927
        Use DIRS_EQ.
18928
 
18929
2008-05-20  Sandra Loosemore  
18930
 
18931
        * config.gcc (tm_file): Update comments about relative pathnames.
18932
 
18933
2008-05-20  Richard Guenther  
18934
 
18935
        * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
18936
        * tree-ssa-sccvn.c (process_scc): Likewise.
18937
        * tree-ssa-sink.c (execute_sink_code): Likewise.
18938
        * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
18939
        * tree-vrp.c (process_assert_insertions): Likewise.
18940
        * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
18941
        (perform_tree_ssa_dce): Likewise.
18942
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
18943
        (dump_dominator_optimization_stats): Likewise.
18944
        * tree-vectorizer.c (vectorize_loops): Likewise.
18945
 
18946
2008-05-20  Richard Guenther  
18947
 
18948
        * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
18949
 
18950
2008-05-20  Kai Tietz  
18951
 
18952
        * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
18953
        (ix86_i386elf_return_in_memory): Likewise.
18954
        (ix86_i386interix_return_in_memory): Likewise.
18955
        * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
18956
        (SUBTARGET_RETURN_IN_MEMORY): New.
18957
        * config/i386/i386elf.h: Likewise.
18958
        * config/i386/ptx4-i.h: Likewise.
18959
        * config/i386/sol2-10.h: Likewise.
18960
        * config/i386/sysv4.h: Likewise.
18961
        * config/i386/vx-common.h: Likewise.
18962
        * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
18963
        * config/i386/i386.c (ix86_return_in_memory): Made static and
18964
        make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
18965
        (ix86_i386elf_return_in_memory): Removed.
18966
        (ix86_i386interix_return_in_memory): Removed.
18967
        (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
18968
        * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
18969
 
18970
2008-05-20  Alexandre Oliva  
18971
 
18972
        * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
18973
 
18974
2008-05-19  Xinliang David Li  
18975
 
18976
        * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
18977
        * opts.c: Ditto.
18978
        * common.opt: Ditto.
18979
        * doc/invoke.texi: Ditto.
18980
 
18981
2008-05-19  Eric Botcazou  
18982
 
18983
        * tree.c (substitute_in_expr) : Fix thinko.
18984
        (substitute_placeholder_in_expr) : Minor tweak.
18985
 
18986
2008-05-19  H.J. Lu  
18987
 
18988
        * config/i386/i386.c (ix86_expand_vector_init_concat): Change
18989
        sizes of operand array from 8/4 to 4/2.
18990
        (ix86_expand_vector_init_general): Change size of operand array
18991
        from 32 to 16.  Remove op0, op1 and half_mode.
18992
 
18993
2008-05-19  H.J. Lu  
18994
 
18995
        * config/i386/i386.c (ix86_expand_vector_init_concat): New.
18996
        (ix86_expand_vector_init_interleave): Likewise.
18997
        (ix86_expand_vector_init_general): Use them.  Assert
18998
        word_mode == SImode when n_words == 4.
18999
 
19000
2008-05-19  Uros Bizjak  
19001
 
19002
        * config/i386/i386.c (ix86_secondary_reload): New static function.
19003
        (TARGET_SECONDARY_RELOAD): New define.
19004
        * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
19005
        * config/i386/i386.md (reload_outqi): Remove.
19006
 
19007
2008-05-18  Kaveh R. Ghazi  
19008
 
19009
        PR middle-end/35509
19010
        * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
19011
        Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
19012
        (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
19013
        (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
19014
        (fold_builtin_1): Likewise.
19015
        * builtins.def (BUILT_IN_ISINF_SIGN): New.
19016
        c-common.c (check_builtin_function_arguments): Handle
19017
        BUILT_IN_ISINF_SIGN.
19018
        * doc/extend.texi: Document __builtin_isinf_sign.
19019
        * fold-const.c (operand_equal_p): Handle COND_EXPR.
19020
 
19021
2008-05-18  Eric Botcazou  
19022
 
19023
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
19024
        EH cleanup at the end of the pass, search for those that have been
19025
        turned into forwarder blocks and do the cleanup on their successor.
19026
 
19027
2008-05-18  Richard Guenther  
19028
 
19029
        * tree-cfg.c (verify_gimple_expr): Allow conversions from
19030
        pointers to sizetype and vice versa.
19031
 
19032
2008-05-18  Xinliang David Li   
19033
 
19034
        * gcc/tree-ssa-dce.c: Coding style fix.
19035
        (check_pow): Documentation comment.
19036
        (check_log): Documenation comment. Coding style fix.
19037
        (is_unnecessary_except_errno_call): Ditto.
19038
        (gen_conditions_for_pow): Ditto.
19039
        (gen_conditions_for_log): Ditto.
19040
        (gen_shrink_wrap_conditions): Ditto.
19041
        (shrink_wrap_one_built_in_calls): Ditto.
19042
        * gcc/doc/invoke.texi: Better documentation string.
19043
        * ChangeLog: Fix wrong change log entries from
19044
        May 17 checkin on function call DCE.
19045
 
19046
2008-05-17  Kaz Kojima  
19047
 
19048
        * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
19049
 
19050
2008-05-17  Kenneth Zadeck  
19051
 
19052
        * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
19053
        * df-problems.c (simulation routines): Fixed block comment to
19054
        properly say how to add forwards scanning functions.
19055
 
19056
2008-05-17  Eric Botcazou  
19057
 
19058
        * tree-inline.c (setup_one_parameter): Remove dead code.
19059
 
19060
2008-05-17  Eric Botcazou  
19061
 
19062
        * fold-const.c (fold_unary) : Fold the cast into
19063
        a BIT_AND_EXPR only for an INTEGER_TYPE.
19064
 
19065
2008-05-17  Xinliang David Li   
19066
 
19067
        * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
19068
        (check_pow, check_log, is_unnecessary_except_errno_call): New
19069
        functions to check for eliminating math functions that are pure
19070
        except for setting errno.
19071
        (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
19072
        general condition expressions for shrink-wrapping pow/log calls.
19073
        (gen_shrink_wrap_conditions): Ditto.
19074
        (shrink_wrap_one_built_in_call): Ditto.
19075
        (shrink_wrap_conditional_dead_built_in_calls): Ditto.
19076
        (mark_operand_necessary): If debugging, output if OP is necessary.
19077
        (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
19078
        unnecessary.
19079
        * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
19080
        opt level >= 2.
19081
        * gcc/common.opt: New user flag -ftree-builtin-dce.
19082
        * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
19083
 
19084
2008-05-16  David S. Miller  
19085
 
19086
        * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
19087
        * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
19088
 
19089
2008-05-16  Uros Bizjak  
19090
 
19091
        PR target/36246
19092
        * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
19093
 
19094
2008-05-16  Kenneth Zadeck  
19095
 
19096
        * ifcvt.c (dead_or_predicable): Rename
19097
        df_simulate_one_insn_backwards to df_simulate_one_insn.
19098
        * recog.c (peephole2_optimize): Ditto.
19099
        * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
19100
        Ditto.
19101
        * df.h: Rename df_simulate_one_insn_backwards to
19102
        df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
19103
        * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
19104
        scanning of defs and uses.
19105
        (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
19106
        (df_simulate_one_insn_forwards): Removed.
19107
 
19108
2008-05-16  Doug Kwan  
19109
 
19110
        * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
19111
        QNaN & SNaN.
19112
        (real_from_string): Handle NaNs and Inf as approriate.
19113
 
19114
2008-05-16  Nathan Froyd  
19115
 
19116
        * doc/gty.texi (Source Files Containing Type Information): Note
19117
        that headers should appear first in the gtfiles list.
19118
 
19119
2008-05-16  Kenneth Zadeck  
19120
 
19121
        * tree.def (COND_EXEC): Properly documented this code.
19122
 
19123
2008-05-16  Diego Novillo  
19124
 
19125
        * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
19126
        * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
19127
        the new field.
19128
 
19129
2008-05-16  Kenneth Zadeck  
19130
 
19131
        * tree-ssa-dse (max_stmt_uid): Removed.
19132
        (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
19133
        tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
19134
        * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
19135
        * function.h (cfun.last_stmt_uid): New field.
19136
        * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
19137
        gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
19138
        New functions.
19139
        * tree-dfa.c (renumber_gimple_stmt_uids): New function.
19140
        (create_stmt_ann): Initialize the ann->uid field.
19141
        * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
19142
        with new calls.
19143
        * tree-flow.h (renumber_gimple_stmt_uids): New function.
19144
 
19145
2008-05-16  Nathan Froyd  
19146
 
19147
        * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
19148
        * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
19149
        (init_empty_tree_cfg): Call it.
19150
 
19151
2008-05-16  Kenneth Zadeck  
19152
 
19153
        * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
19154
        Update all users.
19155
 
19156
2008-05-16  Kenneth Zadeck  
19157
 
19158
        * doc/invoke.text (-fdump-tree-*-verbose): New option.
19159
        * tree-dump.c (dump_options): New verbose option.
19160
        * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
19161
        Add verbose dump.
19162
        * tree-pass.h (TDF_VERBOSE): New dump flag.
19163
        * print-tree.c (print_node): Added code to be able to print PHI_NODES.
19164
        (tree-flow.h): Added include.
19165
        * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
19166
 
19167
2008-05-16  Bernd Schmidt  
19168
 
19169
        * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
19170
 
19171
        From Jie Zhang  
19172
        * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19173
        MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
19174
        mcpu=bf561-none and mcpu=bf561-0.2.
19175
        * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19176
        MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
19177
        * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19178
        MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
19179
        * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
19180
        * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
19181
        (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
19182
        option.
19183
        * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
19184
        (cputype_selected): Remove.
19185
        (bfin_handle_option): Don't use cputype_selected.
19186
        (override_options): When no mcpu option, enable all workarounds.
19187
        Don't use bfin_workarounds.
19188
        * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
19189
        processor type.
19190
        (DEFAULT_CPU_TYPE): Don't define.
19191
 
19192
2008-05-16  Richard Guenther  
19193
 
19194
        * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
19195
        on deletion of the last stmt.
19196
 
19197
2008-05-15  H.J. Lu  
19198
 
19199
        * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
19200
        V8HImode for SSE2 and V16QImode for SSE4.1.
19201
 
19202
2008-05-15  Kenneth Zadeck  
19203
 
19204
        * cgraph.h (compute_inline_parameters): Made public.
19205
        * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
19206
        variable_generate_summary, function_write_summary,
19207
        variable_write_summary, variable_read_summary.  Added generate_summary,
19208
        write_summary, read_summary.
19209
        * cgraphunit.c (cgraph_process_new_functions): Changed call from
19210
        pass_ipa_inline.function_generate_summary, to
19211
        compute_inline_parameters.
19212
        * ipa-inline.c (compute_inline_parameters): Made public and added
19213
        node parameter.
19214
        (compute_inline_parameters_for_current): New function.
19215
        (pass_inline_param): Now calls compute_inline_parameters_for_current.
19216
        (inline_generate_summary): Removed parameter and made to loop over
19217
        all cgraph nodes.
19218
        (pass_ipa_inline): Updated for new IPA_PASS structure.
19219
        * passes.c (execute_ipa_summary_passes): Now is called once per
19220
        pass rather than once per node*pass.
19221
 
19222
2008-05-15  Anatoly Sokolov  
19223
 
19224
        * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
19225
        avr_have_mul_p, avr_asm_only_p): Remove variables.
19226
        (avr_override_options): Remove initialization of removed variables.
19227
        (avr_file_start):  Convert removed variables to fields of
19228
        'struct base_arch_s *avr_current_arch'.
19229
        * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
19230
        (AVR_HAVE_MUL): (Ditto.).
19231
        (AVR_HAVE_MOVW): (Ditto.).
19232
        (AVR_HAVE_LPMX): (Ditto.).
19233
        (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
19234
        avr_asm_only_p): Remove declaration.
19235
 
19236
2008-05-15  Diego Novillo  
19237
 
19238
        * config/arm/arm.c (arm_return_in_memory): Fix return type.
19239
        * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
19240
 
19241
2008-05-15  Adam Nemet  
19242
 
19243
        PR middle-end/36194
19244
        * combine.c (check_conversion): Rename back to check_promoted_subreg.
19245
        Don't call record_truncated_value from here.
19246
        (record_truncated_value): Turn it into a for_each_rtx callback.
19247
        (record_truncated_values): New function.
19248
        (combine_instructions): Call note_uses with record_truncated_values.
19249
        Change name of check_conversion to check_promoted_subreg.
19250
 
19251
2008-05-15  Janis Johnson  
19252
 
19253
        * doc/sourcebuild.texi: Document support for torture tests.
19254
 
19255
2008-05-15  Uros Bizjak  
19256
 
19257
        * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
19258
        to alternative 4 of operand 2.
19259
 
19260
2008-05-15  Richard Guenther  
19261
 
19262
        * tree-pass.h (current_pass): Declare.
19263
        (get_pass_for_id): Likewise.
19264
        * passes.c (passes_by_id, passes_by_id_size): New globals.
19265
        (set_pass_for_id): New function.
19266
        (get_pass_for_id): Likewise.
19267
        (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
19268
        (execute_function_todo): Flush per function statistics.
19269
        * toplev.c (compile_file): Init statistics.
19270
        (general_init): Do early statistics initialization.
19271
        (finalize): Finish statistics.
19272
        * statistics.h (statistics_early_init): Declare.
19273
        (statistics_init): Likewise.
19274
        (statistics_fini): Likewise.
19275
        (statistics_fini_pass): Likewise.
19276
        (statistics_counter_event): Likewise.
19277
        (statistics_histogram_event): Likewise.
19278
        * statistics.c: New file.
19279
        * Makefile.in (OBJS-common): Add statistics.o.
19280
        (statistics.o): Add dependencies.
19281
        * doc/invoke.texi (-fdump-statistics): Document.
19282
 
19283
        * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
19284
        (insert): Likewise.
19285
        (execute_pre): Use statistics_counter_event.
19286
        * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
19287
        (substitute_and_fold): Increment it.  Use statistics_counter_event.
19288
 
19289
2008-05-15  Diego Novillo  
19290
 
19291
        http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
19292
 
19293
        * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
19294
        * tree-ssa-alias.c (new_type_alias): Remove references to
19295
        sub-variables from comment.
19296
        * tree-ssa-operands.c (swap_tree_operands): Likewise.
19297
 
19298
2008-05-15  H.J. Lu  
19299
 
19300
        * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
19301
        attribute to 1 only for insertps alternative.
19302
 
19303
2008-05-15  Bernd Schmidt  
19304
 
19305
        * config/bfin/bfin.md (loadbytes): New pattern.
19306
        * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
19307
        (bfin_init_builtins): Initialize it.
19308
        (bdesc_1arg): Add it.
19309
 
19310
2008-05-15  Sa Liu  
19311
 
19312
        * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
19313
        * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
19314
        * testsuite/lib/target-supports.exp: Add
19315
        check_effective_target_fortran_integer_16.
19316
 
19317
2008-05-15  Bernd Schmidt  
19318
 
19319
        * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
19320
        * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
19321
        * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
19322
        (TARGET_RETURN_IN_MEMORY): Define.
19323
 
19324
2008-05-15  Richard Guenther  
19325
 
19326
        PR middle-end/36244
19327
        * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
19328
        * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
19329
        represent unmodifiable vars.
19330
 
19331
2008-05-15  Richard Guenther  
19332
 
19333
        * tree-dfa.c (refs_may_alias_p): Allow all kinds of
19334
        INDIRECT_REF and TARGET_MEM_REF.
19335
        * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
19336
        TARGET_MEM_REF.
19337
 
19338
2008-05-15  Uros Bizjak  
19339
            H.J. Lu  
19340
 
19341
        * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
19342
        (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
19343
        for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
19344
        insn alternatives.  Add missing alternatives.
19345
        (*vec_concatv2di_rex64_sse4_1): Likewise.
19346
        (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
19347
        (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
19348
        Require TARGET_SSE.
19349
 
19350
2008-05-15  Richard Guenther  
19351
 
19352
        PR tree-optimization/36009
19353
        PR tree-optimization/36204
19354
        * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
19355
        (determine_invariantness_stmt): Record the loop a store is
19356
        always executed in.
19357
        * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
19358
        dependency.
19359
 
19360
2008-05-15  Richard Guenther  
19361
 
19362
        PR tree-optimization/34330
19363
        * tree-ssa-alias.c (get_smt_for): Only assert that accesses
19364
        through the pointer will alias the SMT.
19365
 
19366
2008-05-14  Andreas Tobler  
19367
 
19368
        * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
19369
 
19370
2008-05-14  H.J. Lu  
19371
 
19372
        * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
19373
 
19374
2008-05-14  Michael Meissner  
19375
            Dwarakanath Rajagopal  
19376
 
19377
        * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
19378
        OTI_vrotl, OTI_vrotr to support vector/vector shifts.
19379
        (vashl_optab): New optab for vector/vector shifts.
19380
        (vashr_optab): Ditto.
19381
        (vlshr_optab): Ditto.
19382
        (vrotl_optab): Ditto.
19383
        (vrotr_optab): Ditto.
19384
        (optab_subtype): New enum for optab_for_tree_code call.
19385
        (optab_for_tree_code): Add enum optab_subtype argument.
19386
 
19387
        * optabs.c (optab_for_tree_code): Take an additional argument to
19388
        distinguish between a vector shift by a scalar and vector shift by
19389
        a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
19390
        shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
19391
        vector shift by a vector.
19392
        (expand_widen_pattern_expr): Pass additional argument to
19393
        optab_for_tree_code.
19394
 
19395
        * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
19396
        vrotl_optab, vrotr_optab.
19397
 
19398
        * expr.c (expand_expr_real_1): Update calls to
19399
        optab_for_tree_code to distinguish between vector shifted by a
19400
        scalar and vector shifted by a vector.
19401
        * tree-vectorizer.c (supportable_widening_operation): Ditto.
19402
        (supportable_narrowing_operation): Ditto.
19403
        * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
19404
        * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
19405
        * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
19406
        (vect_create_epilog_for_reduction): Ditto.
19407
        (vectorizable_reduction): Ditto.
19408
        (vectorizable_operation): Ditto.
19409
        (vect_strided_store_supported): Ditto.
19410
        (vect_strided_load_supported): Ditto.
19411
        * tree-vect-generic.c (expand_vector_operations_1): Ditto.
19412
        * expmed.c (expand_shift): Ditto.
19413
 
19414
        * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
19415
        scalar type.
19416
        (ashr@var{m}3): Ditto.
19417
        (vashl@var{m}3): Document new vector/vector shift standard name.
19418
        (vashr@var{m}3): Ditto.
19419
        (vlshr@var{m}3): Ditto.
19420
        (vrotl@var{m}3): Ditto.
19421
        (vrotr@var{m}3): Ditto.
19422
 
19423
        * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
19424
        (PPERM_INVERT): Ditto.
19425
        (PPERM_REVERSE): Ditto.
19426
        (PPERM_REV_INV): Ditto.
19427
        (PPERM_ZERO): Ditto.
19428
        (PPERM_ONES): Ditto.
19429
        (PPERM_SIGN): Ditto.
19430
        (PPERM_INV_SIGN): Ditto.
19431
        (PPERM_SRC1): Ditto.
19432
        (PPERM_SRC2): Ditto.
19433
 
19434
        * config/i386/sse.md (mulv2di3): Add SSE5 support.
19435
        (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
19436
        allows a memory operand to be the value being added, and split it
19437
        to improve vectorization.
19438
        (sse5_pmacsdqh_mem): Ditto.
19439
        (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
19440
        (sse5_mulv2div2di3_high): Ditto.
19441
        (vec_pack_trunc_v8hi): Add SSE5 pperm support.
19442
        (vec_pack_trunc_v4si): Ditto.
19443
        (vec_pack_trunc_v2di): Ditto.
19444
        (sse5_pcmov_): Remove code that tried to use use
19445
        andps/andnps instead of pcmov.
19446
        (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
19447
        pmacsdqh instructions.
19448
        (vec_widen_smult_lo_v4si): Ditto.
19449
 
19450
        * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
19451
        (PPERM_INVERT): Ditto.
19452
        (PPERM_REVERSE): Ditto.
19453
        (PPERM_REV_INV): Ditto.
19454
        (PPERM_ZERO): Ditto.
19455
        (PPERM_ONES): Ditto.
19456
        (PPERM_SIGN): Ditto.
19457
        (PPERM_INV_SIGN): Ditto.
19458
        (PPERM_SRC1): Ditto.
19459
        (PPERM_SRC2): Ditto.
19460
        (ix86_expand_sse_movcc): Move the SSE5 test after the if
19461
        true/false tests.
19462
        (ix86_expand_int_vcond): If SSE5 generate all possible integer
19463
        comparisons.
19464
        (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
19465
        says ignore whether the last reference is a memory operand.
19466
 
19467
2008-05-14  Michael Meissner  
19468
            Paolo Bonzini 
19469
 
19470
        * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
19471
        shift patterns.
19472
 
19473
        * config/rs6000/altivec.md (vashl3): Rename from ashl3.
19474
        (vlshr3): Rename from vlshr3.
19475
        (vashr3): Rename from vashr3.
19476
        (mulv4sf3): Change the names of vector shift patterns.
19477
        (mulv4si3): Ditto.
19478
        (negv4sf2): Ditt.
19479
 
19480
        * config/spu/spu.c (spu_initialize_trampoline): Rename vector
19481
        shift insns.
19482
 
19483
        * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
19484
        (SI_SHLHI): Ditto.
19485
        (SI_SHL): Ditto.
19486
        (SI_SHLI): Ditto.
19487
        (SI_ROTH): Ditto.
19488
        (SI_ROTHI): Ditto.
19489
        (SI_ROT): Ditto.
19490
        (SI_ROTI): Ditto.
19491
        (SPU_RL_0): Ditto.
19492
        (SPU_RL_1): Ditto.
19493
        (SPU_RL_2): Ditto.
19494
        (SPU_RL_3): Ditto.
19495
        (SPU_RL_4): Ditto.
19496
        (SPU_RL_5): Ditto.
19497
        (SPU_RL_6): Ditto.
19498
        (SPU_RL_7): Ditto.
19499
        (SPU_SL_0): Ditto.
19500
        (SPU_SL_1): Ditto.
19501
        (SPU_SL_2): Ditto.
19502
        (SPU_SL_3): Ditto.
19503
        (SPU_SL_4): Ditto.
19504
        (SPU_SL_5): Ditto.
19505
        (SPU_SL_6): Ditto.
19506
        (SPU_SL_7): Ditto.
19507
 
19508
        * config/spu/spu.md (v): New iterator macro to add v for vector types.
19509
        (floatunssidf2_internal): Change vector/vector shift names.
19510
        (floatunsdidf2_internal): Ditto.
19511
        (mulv8hi3): Ditto.
19512
        (ashrdi3): Ditto.
19513
        (ashrti3): Ditto.
19514
        (cgt_df): Ditto.
19515
        (cgt_v2df): Ditto.
19516
        (dftsv): Ditto.
19517
        (vashl3): Rename from ashl3.
19518
        (vashr3): Rename from ashr3.
19519
        (vlshr3): Rename from lshr3.
19520
        (vrotl3): Rename from rotl3.
19521
 
19522
2008-05-14  Michael Meissner  
19523
 
19524
        PR target/36224
19525
        * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
19526
        multiply gives the wrong value when doing widening multiplies.
19527
        (vec_widen_smult_lo_v4si): Ditto.
19528
 
19529
2008-05-14  Kenneth Zadeck  
19530
 
19531
        * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
19532
        LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
19533
        emit_library_call_value.
19534
        * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
19535
        * tree.h (ECF_LIBCALL_BLOCK): Removed.
19536
        * calls.c (initialize_argument_information, precompute_arguments,
19537
        expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
19538
        (precompute_arguments): Removed flags parameter.
19539
        * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
19540
 
19541
2008-05-14  Richard Guenther  
19542
 
19543
        * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
19544
        Make sure to register the store if the use is a PHI_NODE.
19545
 
19546
2008-05-14  Olivier Hainque  
19547
 
19548
        * expr.c (expand_expr_real_1) : Force op0 to
19549
        memory if the component is to be referenced in BLKmode according
19550
        to get_inner_reference.
19551
 
19552
2008-05-14  Adam Nemet  
19553
 
19554
        * calls.c (emit_library_call_value_1): Restore code clearing
19555
        ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
19556
 
19557
2008-05-14  Olivier Hainque  
19558
            Nicolas Roche  
19559
 
19560
        * configure.ac: Add support for a "gcc_subdir" variable in
19561
        config-lang.in, to denote a subdirectory where the language/GCC
19562
        integration files are to be found.
19563
        * configure: Regenerate.
19564
 
19565
2008-05-14  Ira Rosen  
19566
 
19567
        PR tree-optimization/36098
19568
        * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
19569
        value for the first load in the group in case of a gap.
19570
        (vect_build_slp_tree): Check that there are no gaps in loads.
19571
 
19572
2008-05-14  Kenneth Zadeck  
19573
 
19574
        * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
19575
        * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
19576
        expand_copysign_bit): Change call to emit_no_conflict_block to
19577
        emit_insn and remove unneeded code to construct extra args.
19578
        (emit_no_conflict_block): Removed.
19579
        * optabls.h (emit_no_conflict_block): Removed.
19580
        * cse.c (cse_extended_basic_block): Remove search for
19581
        REG_NO_CONFLICT note.
19582
        * global.c: Removed incorrect comment added in revision 117.
19583
        * expr.c (convert_move): Change call to emit_no_conflict_block to
19584
        emit_insn.
19585
        * recog.c: Change comments so that they do not mention
19586
        REG_NO_CONFLICT.
19587
        * local_alloc.c (combine_regs): Removed last parameter.
19588
        (no_conflict_p): Removed.
19589
        (block_alloc): Removed note, no_conflict_combined_regno and set
19590
        local vars. Removed all code to process REG_NO_CONFLICT blocks.
19591
        (combine_regs): Removed already_dead and code to look for
19592
        REG_NO_CONFLICT notes.
19593
        * lower_subreg (remove_retval_note): Removed code to look for
19594
        REG_NO_CONFLICT block.
19595
        (resolve_reg_notes): Removed REG_NO_CONFLICT case.
19596
        (resolve_clobber): Remove code to process libcalls that have
19597
        REG_NO_CONFLICT notes.
19598
        * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
19599
        case.
19600
        * combine.c (can_combine_p, distribute_notes):  Removed
19601
        REG_NO_CONFLICT case.
19602
        * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
19603
        to emit_insns.
19604
        * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
19605
        * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
19606
        Ditto.
19607
        * reg-notes.def (NO_CONFLICT): Removed.
19608
 
19609
2008-05-14  David S. Miller  
19610
 
19611
        * config/sparc/sparc.c (sparc_profile_hook): If
19612
        NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
19613
        * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
19614
        * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
19615
 
19616
2008-05-14  Andreas Krebbel  
19617
 
19618
        * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
19619
 
19620
2008-05-13  Uros Bizjak  
19621
 
19622
        PR target/36222
19623
        * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
19624
        and op1 expansion before vector concat to have less live pseudos.
19625
 
19626
2008-05-13  H.J. Lu  
19627
 
19628
        * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
19629
        ix86_expand_vector_set if supported.
19630
 
19631
2008-05-13  Diego Novillo  
19632
            Kenneth Zadeck  
19633
 
19634
        http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
19635
 
19636
        * tree.h (init_phinodes, fini_phinodes, release_phi_node,
19637
        phinodes_print_statistics, init_ssanames, fini_ssanames,
19638
        make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
19639
        release_ssa_name, release_defs, replace_ssa_name_symbol,
19640
        ssanames_print_statistics): Move ...
19641
        * tree-flow.h: ... here.
19642
        * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
19643
        Use FN instead of cfun.
19644
        (make_ssa_name_fn): Rename from make_ssa_name.
19645
        (pass_release_ssa_names): Add TODO_dump_func to finish flags.
19646
        * tree-flow-inline.h (make_ssa_name): Move from
19647
        tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
19648
        * omp-low.c (expand_omp_parallel):
19649
        * tree-flow-inline.h (redirect_edge_var_map_result):
19650
        * tree-ssa.c (init_tree_ssa): Add argument FN.
19651
        Use it instead of cfun.  Update all users.
19652
 
19653
2008-05-13  Tom Tromey  
19654
 
19655
        PR preprocessor/22168:
19656
        * doc/cpp.texi (Top): Update menu.
19657
        (Alternatives to Wrapper #ifndef): New node.
19658
        (Other Directives): Document deprecation.
19659
        (Obsolete Features): Remove menu.
19660
        (Assertions): Merge node into Obsolete Features.
19661
        (Obsolete once-only headers): Move earlier; rename to Alternatives
19662
        to Wrapper #ifndef.
19663
        * doc/cppopts.texi: Update.
19664
        * c.opt (Wdeprecated): Enable for C and ObjC.
19665
        * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
19666
        (C++ Dialect Options): Move -Wno-deprecated from here to...
19667
        (Warning Options): ... here.
19668
 
19669
2008-05-13  Richard Guenther  
19670
 
19671
        PR middle-end/36227
19672
        * fold-const.c (fold_sign_changed_comparison): Do not allow
19673
        changes in pointer-ness.
19674
 
19675
2008-05-12  Kaz Kojima  
19676
 
19677
        PR target/24713
19678
        * config/sh/sh.c (sh_expand_prologue): Don't clear
19679
        RTX_FRAME_RELATED_P for push insns.
19680
 
19681
2008-05-12  Andy Hutchinson  
19682
 
19683
        * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
19684
 
19685
2008-05-12  Anatoly Sokolov  
19686
 
19687
        * config/avr/avr.h (machine_function): Add 'is_leaf' field.
19688
        * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
19689
        Use 'machine->is_leaf' instead of 'leaf_func_p'.
19690
 
19691
2008-05-12  H.J. Lu  
19692
 
19693
        * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
19694
        (*vec_concatv4sf_sse): This.
19695
        (*sse2_concatv2si): Renamed to ...
19696
        (*vec_concatv2si_sse2): This.
19697
        (*sse1_concatv2si): Renamed to ...
19698
        (*vec_concatv2si_sse): This.
19699
        (*vec_concatv2di_rex): Renamed to ...
19700
        (*vec_concatv2di_rex64): This.
19701
        (*vec_concatv2si_sse4_1): New.
19702
        (*vec_concatv2di_rex64_sse4_1): Likewise.
19703
 
19704
2008-05-12  Uros Bizjak  
19705
 
19706
        PR rtl-optimization/36111
19707
        * recog.c (validate_replace_rtx_1): Unshare new RTL expression
19708
        that was created for swappable operands.
19709
 
19710
2008-05-12  Samuel Tardieu  
19711
 
19712
        PR ada/36001
19713
        * Makefile.in: Substitute GNATMAKE and GNATBIND.
19714
        * configure.ac: Add call to ACX_PROG_GNAT.
19715
 
19716
2008-05-11  Volker Reichelt  
19717
 
19718
        * optc-gen.awk: Fix comment typo.
19719
 
19720
2008-05-11  Aaron W. LaFramboise  
19721
 
19722
        * pretty-print.c (pp_integer_with_precision): Use
19723
        HOST_LONG_LONG_FORMAT.
19724
 
19725
2008-05-10  Kenneth Zadeck  
19726
 
19727
        * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
19728
 
19729
2008-05-10  H.J. Lu  
19730
 
19731
        * config/i386/i386.c (bdesc_ptest): Removed.
19732
        (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
19733
        (bdesc_args): Add __builtin_ia32_ptestz128,
19734
        __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
19735
        (ix86_init_mmx_sse_builtins): Updated.
19736
        (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
19737
        (ix86_expand_builtin): Updated.
19738
 
19739
2008-05-10  Richard Sandiford  
19740
 
19741
        * tree-cfg.c (valid_fixed_convert_types_p): New function.
19742
        (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
19743
 
19744
2008-05-10  Uros Bizjak  
19745
 
19746
        * value-prof.c (interesting_stringop_to_profile): Do not
19747
        return early for BUILT_IN_MEMPCPY.
19748
 
19749
2008-05-09  H.J. Lu  
19750
 
19751
        * calls.c (expand_call): Don't use callgraph to increase
19752
        preferred_stack_boundary.
19753
 
19754
        * cgraph.h (cgraph_rtl_info): Use unsigned on
19755
        preferred_incoming_stack_boundary.
19756
 
19757
        * final.c (rest_of_clean_state): Use unsigned on
19758
        preferred_stack_boundary.
19759
 
19760
2008-05-09  Tom Tromey  
19761
 
19762
        PR preprocessor/22231:
19763
        * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
19764
        proceeding.
19765
 
19766
2008-05-09  Uros Bizjak  
19767
 
19768
        PR tree-optimization/36129
19769
        * tree-ssa-ccp.c: Include value-prof.h.
19770
        (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
19771
        built-in function was folded to a constant.
19772
        * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
19773
 
19774
2008-05-09  Jan Sjodin  
19775
            Sebastian Pop  
19776
 
19777
        * tree-scalar-evolution.c: Document instantiate_scev.
19778
        (instantiate_parameters_1): Renamed instantiate_scev_1.
19779
        Don't use the same loop for instantiation_loop and evolution_loop.
19780
        (instantiate_scev): New.
19781
        (instantiate_parameters): Moved...
19782
        (resolve_mixers): Update call to instantiate_scev_1 to pass the
19783
        same loop twice.  Maintains the semantics for this function.
19784
        * tree-scalar-evolution.h (instantiate_scev): Declare.
19785
        (instantiate_parameters): ...here.  Now static inline.
19786
        * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
19787
        instead of resolve_mixers.
19788
 
19789
2008-05-09  Maxim Kuvyrkov  
19790
 
19791
        * rtl-factoring.c (collect_pattern_seqs): Fix typo.
19792
 
19793
2008-05-09  Tomas Bily  
19794
 
19795
        * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
19796
        * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
19797
        * tree-ssa-structalias.c (get_constraint_for): Likewise.
19798
        * c-common.c (c_common_truthvalue_conversion): Likewise.
19799
        * tree-object-size.c (compute_object_offset): Likewise.
19800
        * tree-inline.c (estimate_num_insns_1): Likewise.
19801
        * varasm.c (const_hash_1, compare_constant, copy_constant)
19802
        (compute_reloc_for_constant, output_addressed_constants)
19803
        (initializer_constant_valid_p): Likewise.
19804
        * c-omp.c (check_omp_for_incr_expr): Likewise.
19805
        * gimplify.c (gimplify_expr): Likewise.
19806
        * c-typeck.c (c_finish_return): Likewise.
19807
        * tree-vectorizer.c (supportable_widening_operation)
19808
        (supportable_narrowing_operation): Likewise.
19809
        * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
19810
        * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
19811
        * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
19812
        * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
19813
        (descr_info_loc): Likewise.
19814
        * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
19815
        * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
19816
        (fold_unary): Likewise.
19817
        * builtins.c (get_pointer_alignment): Likewise.
19818
        * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
19819
        (instantiate_parameters_1): Likewise.
19820
        * tree.c (expr_align, stabilize_reference): Likewise.
19821
        * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
19822
        * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
19823
        * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
19824
        * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
19825
        * config/alpha/alpha.c (va_list_skip_additions): Likewise.
19826
        * c-common.c (c_alignof_expr, check_function_arguments_recurse):
19827
        Likewise.
19828
        * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
19829
        * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
19830
        * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
19831
        (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
19832
        (forward_propagate_comparison)
19833
        (tree_ssa_forward_propagate_single_use_vars): Likewise.
19834
        * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
19835
        * emit-rtl.c (component_ref_for_mem_expr)
19836
        (set_mem_attributes_minus_bitpos): Likewise.
19837
        * tree-ssa-phiopt.c (conditional_replacement): Likewise.
19838
        * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
19839
        Likewise.
19840
        * c-typeck.c (default_function_array_conversion, build_indirect_ref)
19841
        (build_function_call, pointer_diff, build_compound_expr)
19842
        (c_finish_return): Likewise.
19843
        * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
19844
        * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
19845
        Likewise.
19846
        * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
19847
        * expr.c (is_aligning_offset): Likewise.
19848
        * tree-ssa-alias.c (is_escape_site): Likewise.
19849
        * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
19850
        (check_all_va_list_escapes): Likewise.
19851
        * tree-ssa-loop-ivopts.c (determine_base_object)
19852
        (determine_common_wider_type): Likewise.
19853
        * dojump.c (do_jump): Likewise.
19854
        * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
19855
        * tree-gimple.c (is_gimple_cast): Likewise.
19856
        * fold-const.c (decode_field_reference)
19857
        (fold_sign_changed_comparison, fold_unary, fold_comparison)
19858
        (fold_binary): Likewise.
19859
        * tree-ssa-alias-warnings.c (find_alias_site_helper)
19860
        (already_warned_in_frontend_p): Likewise.
19861
        * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
19862
        * tree.c (really_constant_p, get_unwidened): Likewise.
19863
        * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
19864
        * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
19865
        * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
19866
        Likewise.
19867
        * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
19868
        CONVERT_EXPR_P.
19869
        (CONVERT_EXPR_P): Define.
19870
        (CASE_CONVERT): Define.
19871
 
19872
2008-05-08  Kenneth Zadeck  
19873
 
19874
        PR middle-end/36117
19875
        * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
19876
        (delete_unmarked_insns): When deleting a call, call
19877
        delete_unreachable_blocks.
19878
        * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
19879
        RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
19880
 
19881
2008-05-08  Richard Guenther  
19882
 
19883
        * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
19884
        (-ftree-salias): Likewise.
19885
        (salias-max-implicit-fields): Remove param documentation.
19886
        (salias-max-array-elements): Likewise.
19887
        * tree-pass.h (pass_create_structure_vars): Remove.
19888
        * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
19889
        (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
19890
        * tree-ssa-alias.c (create_structure_vars): Remove.
19891
        (gate_structure_vars): Likewise.
19892
        (pass_create_structure_vars): Likewise.
19893
        (gate_build_alias): Likewise.
19894
        (pass_build_alias): Adjust to run always and dump the function.
19895
        * common.opt (ftree-salias): Hide.
19896
        * passes.c (init_optimization_passes): Remove
19897
        pass_create_structure_vars, adjust comment.
19898
        * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
19899
        (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
19900
        * opts.c (decode_options): Do not set flag_tree_salias.
19901
        (common_handle_option): Add OPT_ftree_salias to the backward
19902
        compatibility section.
19903
 
19904
2008-05-08  Richard Guenther  
19905
 
19906
        * tree-flow-inline.h (var_can_have_subvars): Move ...
19907
        * tree-ssa-structalias.c (var_can_have_subvars): ... here.
19908
        * tree-flow.h (var_can_have_subvars): Remove.
19909
        (push_fields_onto_fieldstack): Remove.
19910
        (sort_fieldstack): Likewise.
19911
        (struct fieldoff): Move ...
19912
        * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
19913
        alias_set and base_for_components fields.
19914
        (sort_fieldstack): Make static.
19915
        (push_fields_onto_fieldstack): Likewise.  Remove code that
19916
        handles anything but RECORD_TYPEs.  Remove alias_set and
19917
        base_for_components handling.
19918
        (create_variable_info_for): Adjust.
19919
 
19920
2008-05-08  Seongbae Park  
19921
 
19922
        * common.opt (Wframe-larger-than=): Shorten the help message
19923
        to one line.
19924
        * doc/invoke.texi (Wframe-larger-than=): Add more description.
19925
 
19926
2008-05-08  Rafael Espíndola  
19927
 
19928
        * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
19929
        trap.
19930
        * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
19931
        trap and that both operands are gimple values.
19932
        (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
19933
        * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
19934
        is a fp operation.
19935
 
19936
2008-05-08  Richard Sandiford  
19937
 
19938
        * read-rtl.c (join_c_conditions): Return the first string if the
19939
        two strings are equal.
19940
 
19941
2008-05-08  Richard Sandiford  
19942
 
19943
        * gensupport.h (pred_data): Add a "num_codes" field.
19944
        (add_predicate_code): Declare.
19945
        * gensupport.c (add_predicate_code): New function.
19946
        (std_pred_table): Add an "allows_const_p" field.
19947
        (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
19948
        Remove the (incomplete) list of such codes from the codes field.
19949
        (init_predicate_table): Use add_predicate_code.  Add all
19950
        RTX_CONST_OBJs if allows_const_p is true.
19951
        * genrecog.c (process_define_predicate): Use add_predicate_code.
19952
 
19953
2008-05-08  David Daney  
19954
            Richard Sandiford  
19955
 
19956
        * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
19957
        special case of constant zero operands.
19958
        * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
19959
        old and new values.  Special case constant zero values.
19960
        * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
19961
        fails.
19962
        (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
19963
        (MIPS_COMPARE_AND_SWAP_12_0): New macro.
19964
 
19965
2008-05-08  Paolo Bonzini  
19966
 
19967
        PR target/36090
19968
        * simplify-rtx.c (simplify_plus_minus): Create CONST of
19969
        similar RTX_CONST_OBJ before CONST_INT.
19970
 
19971
2008-05-08  Steve Ellcey  
19972
 
19973
        * stmt.c (expand_stack_restore): Change sa mode if needed.
19974
 
19975
2008-05-08  Richard Guenther  
19976
 
19977
        * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
19978
        return type to bool.
19979
        (ix86_sol10_return_in_memory): Likewise.
19980
        (ix86_i386elf_return_in_memory): Likewise.
19981
        (ix86_i386interix_return_in_memory): Likewise.
19982
        * config/i386/i386.c (ix86_return_in_memory): Likewise.
19983
        (ix86_sol10_return_in_memory): Likewise.
19984
        (ix86_i386elf_return_in_memory): Likewise.
19985
        (ix86_i386interix_return_in_memory): Likewise.
19986
 
19987
2008-05-08  Kai Tietz  
19988
 
19989
        PR bootstrap/36180
19990
        * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
19991
        fndecl argument.
19992
        (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
19993
        * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
19994
        declared in front.
19995
 
19996
2008-05-08  Richard Guenther  
19997
 
19998
        * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
19999
        * tree-data-ref.h (struct dr_alias): Remove subvars field.
20000
        (DR_SUBVARS): Remove.
20001
        * tree-dfa.c (dump_subvars_for): Remove.
20002
        (debug_subvars_for): Likewise.
20003
        (dump_variable): Do not dump subvars.
20004
        (remove_referenced_var): Do not remove subvars.
20005
        * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
20006
        (lookup_subvars_for_var): Remove.
20007
        (get_subvars_for_var): Likewise.
20008
        (get_subvars_at): Likewise.
20009
        (get_first_overlapping_subvar): Likewise.
20010
        (overlap_subvar): Likewise.
20011
        * tree-flow.h (subvar_t): Remove.
20012
        (struct var_ann_d): Remove subvars field.
20013
        * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
20014
        argument.  Remove special handling of SFTs.
20015
        (compute_tag_properties): Likewise.
20016
        (set_initial_properties): Likewise.
20017
        (compute_call_clobbered): Likewise.
20018
        (count_mem_refs): Likewise.
20019
        (compute_memory_partitions): Likewise.
20020
        (compute_flow_insensitive_aliasing): Likewise.
20021
        (setup_pointers_and_addressables): Likewise.
20022
        (new_type_alias): Likewise.
20023
        (struct used_part): Remove.
20024
        (used_portions): Likewise.
20025
        (struct used_part_map): Likewise.
20026
        (used_part_map_eq): Likewise.
20027
        (used_part_map_hash): Likewise.
20028
        (free_used_part_map): Likewise.
20029
        (up_lookup): Likewise.
20030
        (up_insert): Likewise.
20031
        (get_or_create_used_part_for): Likewise.
20032
        (create_sft): Likewise.
20033
        (create_overlap_variables_for): Likewise.
20034
        (find_used_portions): Likewise.
20035
        (create_structure_vars): Likewise.
20036
        * tree.def (STRUCT_FIELD_TAG): Remove.
20037
        * tree.h (MTAG_P): Adjust.
20038
        (struct tree_memory_tag): Remove base_for_components and
20039
        unpartitionable flags.
20040
        (struct tree_struct_field_tag): Remove.
20041
        (SFT_PARENT_VAR): Likewise.
20042
        (SFT_OFFSET): Likewise.
20043
        (SFT_SIZE): Likewise.
20044
        (SFT_NONADDRESSABLE_P): Likewise.
20045
        (SFT_ALIAS_SET): Likewise.
20046
        (SFT_UNPARTITIONABLE_P): Likewise.
20047
        (SFT_BASE_FOR_COMPONENTS_P): Likewise.
20048
        (union tree_node): Remove sft field.
20049
        * alias.c (get_alias_set): Remove special handling of SFTs.
20050
        * print-tree.c (print_node): Remove handling of SFTs.
20051
        * tree-dump.c (dequeue_and_dump): Likewise.
20052
        * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
20053
        * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
20054
        * tree-predcom.c (set_alias_info): Do not set subvars.
20055
        * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
20056
        * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
20057
        * tree-ssa-operands.c (access_can_touch_variable): Likewise.
20058
        (add_vars_for_offset): Remove.
20059
        (add_virtual_operand): Remove special handling of SFTs.
20060
        (add_call_clobber_ops): Likewise.
20061
        (add_call_read_ops): Likewise.
20062
        (get_asm_expr_operands): Likewise.
20063
        (get_modify_stmt_operands): Likewise.
20064
        (get_expr_operands): Likewise.
20065
        (add_to_addressable_set): Likewise.
20066
        * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
20067
        * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
20068
        * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
20069
        * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
20070
        (tree_code_size): Remove STRUCT_FIELD_TAG handling.
20071
        (tree_node_structure): Likewise.
20072
        * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
20073
        handling of SFTs.
20074
        (find_what_p_points_to): Likewise.
20075
 
20076
2008-05-08  Sa Liu  
20077
 
20078
        * config/spu/spu.md: Fixed subti3 pattern.
20079
 
20080
2008-05-08  Richard Guenther  
20081
 
20082
        PR middle-end/36154
20083
        * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
20084
        sure to create a representative for trailing arrays for PTA.
20085
 
20086
2008-05-08  Richard Guenther  
20087
 
20088
        PR middle-end/36172
20089
        * fold-const.c (operand_equal_p): Two objects which types
20090
        differ in pointerness are not equal.
20091
 
20092
2008-05-08  Kai Tietz  
20093
 
20094
        * calls.c (compute_argument_block_size): Add argument tree fndecl.
20095
        (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
20096
        (emit_library_call_value_1): Add new variable fndecl initialized by
20097
        NULL_TREE. It should be the decl type of orgfun, but this information
20098
        seems not to be available here, so it uses the default calling abi.
20099
        * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
20100
        * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
20101
        by TARGET_RETURN_IN_MEMORY.
20102
        * config/i386/i386-interix.h: Likewise.
20103
        * config/i386/i386.h: Likewise.
20104
        * config/i386/i386elf.h: Likewise.
20105
        * config/i386/ptx4-i.h: Likewise.
20106
        * config/i386/sol2-10.h: Likewise.
20107
        * config/i386/sysv4.h: Likewise.
20108
        * config/i386/vx-common.h: Likewise.
20109
        * config/cris/cris.h: Removed #if 0 clause.
20110
        * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
20111
        * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
20112
        argument.
20113
        (ix86_sol10_return_in_memory): Likewise.
20114
        (ix86_i386elf_return_in_memory): New.
20115
        (ix86_i386interix_return_in_memory): New.
20116
        * config/mt/mt-protos.h (mt_return_in_memory): New.
20117
        * config/mt/mt.c: Likewise.
20118
        * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
20119
        (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
20120
        * config/bfin/bfin.h: Likewise.
20121
        * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
20122
        argument.
20123
        * config/bfin/bfin.c: Likewise.
20124
        * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
20125
        * config/alpha/unicosmk.h: Likewise.
20126
        * config/i386/cygming.h: Likewise.
20127
        * config/iq2000/iq2000.h: Likewise.
20128
        * config/mips/mips.h: Likewise.
20129
        * config/mn10300/mn10300.h: Likewise.
20130
        * config/rs6000/rs6000.h: Likewise.
20131
        * config/score/score.h: Likewise.
20132
        * config/spu/spu.h: Likewise.
20133
        * config/v850/v850.h: Likewise.
20134
        * defaults.h: Likewise.
20135
        * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
20136
        * expr.c (emit_block_move): Adjust use of
20137
        OUTGOING_REG_PARM_STACK_SPACE.
20138
        * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
20139
        OUTGOING_REG_PARM_STACK_SPACE.
20140
        * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
20141
 
20142
2008-05-08  Jakub Jelinek  
20143
 
20144
        * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
20145
        on OMP_RETURN for OMP_FOR.
20146
 
20147
        PR debug/35896
20148
        * dwarf2out.c (dw_expand_expr, common_check): Removed.
20149
        (fortran_common): New function.
20150
        (gen_variable_die): Call fortran_common instead of common_check,
20151
        adjust for it returning tree instead of rtx.  Formatting.
20152
 
20153
2008-05-07  Kenneth Zadeck  
20154
 
20155
        PR rtl/7335
20156
        PR rtl/33826
20157
        * see.c (see_copy_insn): Copy new pure const attributes for new call.
20158
        * c-decl.c (merge_decls): Ditto.
20159
        * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
20160
        to RTL_CONST_OR_PURE_CALL_P.
20161
        * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
20162
        Initialized DECL_LOOPING_CONST_PURE.
20163
        (process_call_operands): Set tree_side_effects properly.
20164
        * tree.h (TREE_READONLY_DECL_P): Removed.
20165
        (DECL_IS_PURE): Renamed to DECL_PURE_P.
20166
        (DECL_LOOPING_OR_CONST_P): New macro.
20167
        (struct tree_function_decl): Added looping_const_or_pure_p.
20168
        (ECF_*) Renumbered.
20169
        (ECF_LOOPING_OR_CONST_P): New macro.
20170
        * rtlanal.c (pure_const_p): Removed.
20171
        * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
20172
        * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
20173
        to RTL_CONST_CALL_P.
20174
        * ipa-pure-const.c (pure_const_state_e): Added looping field.
20175
        (check_decl, check_tree, check_call, scan_function): Initialize
20176
        looping.
20177
        (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
20178
        (static_execute): Set looping true for recursive functions.
20179
        Undo setting state to IPA_NEITHER for recursive functions.
20180
        * cse.c (cse_insn):
20181
        * ifcvt.c (noce_can_store_speculate_p): Changed
20182
        CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
20183
        RTL_CONST_OR_PURE_CALL_P.
20184
        * dse.c (scan_insn): Ditto.
20185
        * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
20186
        * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
20187
        RTL_CONST_OR_PURE_CALL_P.
20188
        (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
20189
        pure_call_p to RTL_CONST_CALL_P.
20190
        * gimplify.c (gimplify_call_expr): Clear side effects for
20191
        non-looping pure and constant calls.
20192
        * calls.c (emit_call_1): Set rtl flags from ecf flags.
20193
        (flags_from_decl_or_type): Set ecf flags from decl flags.
20194
        (initialize_argument_information): Turn off
20195
        ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
20196
        Change const to pure if callee_copies is true rather than just
20197
        turning off const.
20198
        (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
20199
        way of marking pure calls.
20200
        (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
20201
        Remove hack that was supposed to fix pr7335 and remove old
20202
        way of marking pure calls.
20203
        * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
20204
        RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
20205
        * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
20206
        RTL_CONST_OR_PURE_CALL_P.
20207
        * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
20208
        * loop-invariant.c (find_exits, find_invariant_bb): Changed
20209
        CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
20210
        * sched-deps.c (schedule_analyze): Ditto.
20211
        * rtl.h (struct rtx_def): Use call field, unchanging field, and
20212
        return_val field of calls to represent pure and const function info.
20213
        (CONST_OR_PURE_CALL_P): Deleted macro.
20214
        (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
20215
        RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
20216
        * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
20217
        TREE_READONLY.
20218
        * tree-optimize.c (execute_fixup_cfg): Added test for
20219
        ECF_LOOPING_CONST_OR_PURE.
20220
        * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
20221
        DECL_PURE_P.
20222
        * tree-cfg.c (update_call_expr_flags): Do not clear tree side
20223
        effects for looping pure or const calls.
20224
        (verify_gimple_expr): Added verification code.
20225
        * config/alpha/alpha.c (alpha_legitimize_address,
20226
        alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
20227
        RTL_CONST_CALL_P.
20228
        * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
20229
        * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
20230
        * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
20231
        * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
20232
        RTL_CONST_OR_PURE_CALL_P.
20233
        * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
20234
        and const calls to be deleted.
20235
 
20236
2008-05-07  Uros Bizjak  
20237
 
20238
        PR target/35714
20239
        * config/i386/mmx.md (mmx_subv2sf3): New expander.
20240
        (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
20241
        (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
20242
        (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
20243
        to handle nonimmediate operands.
20244
        (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
20245
        (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
20246
        to handle nonimmediate operands.
20247
        (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
20248
        (mmx_pmulhrwv4hi3): New expander.  Use
20249
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20250
        (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
20251
        (sse2_umulv1siv1di3): New expander.  Use
20252
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20253
        (*mmx_eq3): Rename from mmx_eq3 insn pattern.
20254
        (mmx_eq3): New expander.  Use
20255
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20256
        (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
20257
        (mmx_uavgv8qi3): New expander.  Use
20258
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20259
        (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
20260
        (mmx_uavgv4hi3): New expander.  Use
20261
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20262
 
20263
        * config/i386/sse.md
20264
        (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
20265
        to handle nonimmediate operands.
20266
        (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
20267
        to handle nonimmediate operands.
20268
        (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
20269
        to handle nonimmediate operands.
20270
        (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
20271
        to handle nonimmediate operands.
20272
        (sse2_unpckhpd_exp): New expander.  Use
20273
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20274
        (sse2_unpcklpd_exp): New expander.  Use
20275
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20276
        (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
20277
        to handle nonimmediate operands.
20278
        (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
20279
        to handle nonimmediate operands.
20280
        (*sse2_3): Rename from
20281
        sse2_3 insn pattern.
20282
        (sse2_3): New expander.  Use
20283
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20284
        (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
20285
        (sse2_umulv2siv2di3): New expander.  Use
20286
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20287
        (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
20288
        (sse4_1_mulv2siv2di3): New expander.  Use
20289
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20290
        (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
20291
        (sse2_pmaddwd): New expander.  Use
20292
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20293
        (*sse2_eq3): Rename from sse2_eq3 insn pattern.
20294
        (sse2_eq3): New expander.  Use
20295
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20296
        (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
20297
        (sse4_1_eqv2di3): New expander.  Use
20298
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20299
        (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
20300
        (sse2_uavgv16qi3): New expander.  Use
20301
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20302
        (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
20303
        (sse2_uavgv16qi3): New expander.  Use
20304
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20305
        (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
20306
        (sse2_uavgv8hi3): New expander.  Use
20307
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20308
        (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
20309
        (ssse3_pmulhrswv8hi3): New expander.  Use
20310
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20311
        (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
20312
        (ssse3_pmulhrswv4hi3): New expander.  Use
20313
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20314
 
20315
        (_vm3): Do not use ix86_binary_operator_ok.
20316
        (_vmmul3): Ditto.
20317
        (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
20318
        (divv2df3): Ditto.
20319
        (ssse3_pmaddubsw128): Use register_operand for operand 1.
20320
        (ssse3_pmaddubsw): Ditto.
20321
 
20322
        * config/i386/i386.c (struct_builtin_description)
20323
        [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
20324
        [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
20325
        [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
20326
        [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
20327
        [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
20328
        [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
20329
        [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
20330
        [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
20331
        (ix86_fixup_binary_operands): Assert that src1
20332
        and src2 must have the same mode when swapped.
20333
        (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
20334
        and ix86_binary_operator_ok.  Do not force operands in registers
20335
        when optimizing.
20336
 
20337
2008-05-07  Jan Hubicka  
20338
 
20339
        * cgraph.c (dump_cgraph_node): Update.
20340
        * cgraph.h (cgraph_local_info): Break out inline summary.
20341
        * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
20342
        hook.
20343
        * ipa-inline (inline_summary): New accestor function.
20344
        (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
20345
        cgraph_decide_inlining, compute_inline_parameters): Update.
20346
        * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
20347
 
20348
2008-05-07  Maxim Kuvyrkov  
20349
 
20350
        Cleanup ColdFire scheduling support and add V4 pipeline model.
20351
 
20352
        * config/m68k/m68k.md (UNSPEC_TIE): New constant.
20353
        (define_attr cpu): Add cfv4 value.
20354
        (define_attr type, define_attr type1): Merge into a single 'type'
20355
        attribute.  Update all uses.
20356
        (define_attr opx_type, define_attr opy_type, define_attr opx_access):
20357
        Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
20358
        Update all uses.
20359
        (define_attr opx_mem, define_attr opy_mem): Remove.
20360
        (define_attr op_mem): Clean up, update comment.
20361
        (define_attr size): Use specific values instead of general int.
20362
        (define_attr guess, define_attr split): Remove.  Update all uses.
20363
        (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
20364
        tst_68881, pushexthisi_const, movsi_const0_68000_10,
20365
        movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
20366
        zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
20367
        68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
20368
        floatsi2_68881, ftrunc2_68881, ftrunc2_cf,
20369
        fixqi2_68881, fixhi2_68881, fixsi2_68881,
20370
        adddi_dishl32, addsi3_5200, add3_floatsi_68881,
20371
        add3_floathi_68881, add3_floatqi_68881,
20372
        add3_68881, add3_cf, subdi_dishl32, subsi3,
20373
        sub3_floatsi_68881, sub3_floathi_68881,
20374
        sub3_floatqi_68881, sub3_68881, sub3_cf,
20375
        mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
20376
        umulhisi3, mulhisisi3_z, mul3_floatsi_68881,
20377
        mul3_floathi_68881, mul3_floatqi_68881, fmul3_cf,
20378
        div3_cf, sqrt2_cf, abs2_cf, clzsi2,
20379
        one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
20380
        bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
20381
        beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
20382
        bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
20383
        symbolic_call_value_jsr, symbolic_call_value_bsr, link):
20384
        Update or set attributes.
20385
        (stack_tie): New fake instruction.
20386
 
20387
        * config/m68k/m68k.h (TUNE_CFV4): New macro.
20388
        (m68k_sched_attr_size): Update declaration.
20389
        (m68k_sched_attr_type2): Remove.
20390
        (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
20391
        Declare new bypass predicates.
20392
 
20393
        * config/m68k/m68k.c (m68k_sched_issue_rate,
20394
        m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
20395
        implementations.
20396
        (TARGET_SCHED_ISSUE_RATE,
20397
        TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
20398
        (override_options): Handle scheduling for ColdFire V4 core.
20399
        (m68k_expand_prologue): Emit stack_tie.
20400
        (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
20401
        'OP_TYPE_FPN'.  Update all uses.
20402
        (sched_guess_p): Remove.
20403
        (sched_address_type): Handle symbolic addresses.
20404
        (sched_get_operand): New static function.
20405
        (sched_operand_type): Merge into sched_attr_op_type.
20406
        (sched_attr_op_type): Handle FP registers, handle quick constants,
20407
        update.
20408
        (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
20409
        (m68k_sched_attr_size): Update.  Move logic to ...
20410
        (sched_get_attr_size_int): New static function.
20411
        (sched_get_opxy_mem_type): New static function.
20412
        (m68k_sched_attr_op_mem): Update.
20413
        (m68k_sched_attr_type2): Remove.
20414
        (sched_cfv4_bypass_data): New static variable.
20415
        (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
20416
        (m68k_sched_issue_rate): Implement scheduler hook.
20417
        (struct _sched_ib: enabled_p): New field.
20418
        (m68k_sched_variable_issue): Update.  Handle V4.
20419
        (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
20420
        sched_dump_class_func_t, sched_dump_split_class,
20421
        sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
20422
        sched_dump_dfa_class, m68k_sched_dump): Remove.
20423
        (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
20424
        hook.
20425
        (m68k_sched_init_global): Remove statisctics dumping, introduce
20426
        sanity check that all instructions have pipeline reservations.  Handle
20427
        ColdFire V4 core.
20428
        (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
20429
        Handle ColdFire V4 core.
20430
        (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
20431
        New static functions.
20432
        (m68k_sched_address_bypass_p): New bypass predicate.
20433
        (sched_get_indexed_address_scale): New static function.
20434
        (m68k_sched_indexed_address_bypass_p): New bypass predicate.
20435
 
20436
        * cf.md: Update comments.
20437
        (define_attr type2): Remove.  Use 'type' attribute instead.
20438
        Update all uses.
20439
        (cf_ib): Rename to cfv123_ib.  Update all uses.
20440
        (cf_oep): Rename to cfv123_oep.  Update all uses.
20441
        (cf_chr): Rename to cfv123_chr.  Update all uses.
20442
        (cf_mem): Rename to cfv123_mem.  Update all uses.
20443
        (cf_mac): Move to more appropriate place.
20444
        (cfv123_guess): New automaton and cpu_unit.
20445
        (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
20446
        Update uses of 'size' attribute.  Handle before reload scheduling.
20447
        (cfv123_guess): New dummy reservation for unhandled instructions.
20448
        (cfv4_*): Pipeline description of ColdFire V4 core.
20449
        (ignore): New reservation to handle 'ignore' type.
20450
 
20451
2008-05-07  Ian Lance Taylor  
20452
 
20453
        PR middle-end/36013
20454
        * gimplify.c (find_single_pointer_decl_1): Don't look through
20455
        indirections.
20456
        (find_single_pointer_decl): Adjust comments.
20457
 
20458
2008-05-07  Jakub Jelinek  
20459
 
20460
        PR middle-end/36137
20461
        * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
20462
        STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
20463
 
20464
        PR middle-end/36106
20465
        * omp-low.c (expand_omp_atomic_pipeline): Load value using the
20466
        integral type rather than floating point, then VIEW_CONVERT_EXPR
20467
        to the floating point type.
20468
 
20469
2008-05-07  Uros Bizjak  
20470
 
20471
        * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
20472
        TFmode op0 to register.
20473
 
20474
2008-05-07  Alan Modra  
20475
 
20476
        * c-decl.c (grokdeclarator): Comment typo.
20477
 
20478
2008-05-06  Aldy Hernandez  
20479
 
20480
        * tree-flow.h: Remove prototype for computed_goto_p.
20481
        * tree-cfg.c (computed_goto_p): Make static.
20482
 
20483
2008-05-06  H.J. Lu  
20484
 
20485
        PR target/35657
20486
        * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
20487
        (contains_aligned_value_p): This.  Handle _Decimal128.
20488
        (ix86_function_arg_boundary): Only align _Decimal128 to its
20489
        natural boundary and handle it properly.
20490
 
20491
2008-05-06  Martin Jambor  
20492
 
20493
        * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
20494
        (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
20495
        (ipcp_method_set_orig_node): Removed.
20496
        (ipcp_cval_get_cvalue_type): Removed.
20497
        (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
20498
        (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
20499
        (ipcp_cval_set_cvalue_type): Removed.
20500
        (ipcp_cval_get_cvalue): Removed.
20501
        (ipcp_cval_set_cvalue): Removed.
20502
        (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
20503
        (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
20504
        (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
20505
        (ipcp_cval_meet): Renamed to ipa_lattice_meet
20506
        (ipcp_cval_changed): Changed to use ipcp_lat_is_const
20507
        (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
20508
        (ipcp_get_ith_lattice): Changed parameters.
20509
        (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
20510
        (ipcp_lattice_from_jfunc): Changed parameters.
20511
        (ipcp_redirect): Local lattice pointer instead of lattice type variable.
20512
        (ipcp_method_cval_print): Added temporary variable info.
20513
        (ipcp_redirect): Removed already unused local variable caller.
20514
        (ipcp_redirect): New temporary variable orig_callee_info
20515
        (ipcp_redirect): Removed newly unused local variable callee.
20516
        (ipcp_redirect): Removed (a bit confusing) local variable type.
20517
        (ipcp_insert_stage): Added local variable info.
20518
        (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
20519
        renamed too
20520
        (ipcp_formal_create): Removed.
20521
        (ipcp_method_cval_set): Removed.
20522
        (ipcp_propagate_stage): Renamed lattice variables.
20523
        (ipcp_method_cval_set_cvalue_type): Removed.
20524
        (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
20525
        (ipcp_print_all_lattices): Changed printed strings to refer to
20526
        lattices rather than cvals.
20527
        (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
20528
        (ipcp_propagate_const): Changed formal parameters.
20529
        (build_const_val): Changed formal parameters.
20530
        (ipcp_insert_stage): Removed useless variable cvalue
20531
        (build_const_val): Changed formal parameters.
20532
        (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
20533
        (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
20534
        (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
20535
        (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
20536
        (ipcp_print_func_profile_counts): Changed string from "method" to
20537
        "function"
20538
        (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
20539
        (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
20540
        (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
20541
        (ipcp_structures_print): Renamed to ipcp_print_all_structures
20542
        (ipcp_profile_print): Renamed to ipcp_print_profile_data
20543
        (ipcp_lat_is_const): Changed parameters and made inline.
20544
        (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
20545
        (ipcp_redirect): Renamed to ipcp_need_redirect_p
20546
        (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
20547
        the predicate condition directly
20548
        (ipcp_propagate_stage): Added local variable args. Removed local
20549
        variable callee.  (Both are mere code simplifications.)
20550
        (ipcp_method_dont_insert_const): Renamed to
20551
        ipcp_node_not_modifiable_p.
20552
        (ipcp_node_not_modifiable_p): Made inline.
20553
        (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
20554
        (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
20555
        (ipcp_print_all_lattices): Removed variable cvalue
20556
        (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
20557
        Updated comments.
20558
 
20559
2008-05-06  Olivier Hainque  
20560
 
20561
        * tree-sra.c (try_instantiate_multiple_fields): Early return
20562
        if field has POINTER_TYPE.
20563
 
20564
2008-05-06  Kai Tietz  
20565
 
20566
        * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
20567
        by using 'q' specifier for instruction.
20568
        (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
20569
 
20570
2008-05-06  Anatoly Sokolov  
20571
 
20572
        * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
20573
        Change mode of zero_extract from QImode to HImode.
20574
        (sign bit tests peepholes): (Ditto.).
20575
 
20576
2008-05-06  Uros Bizjak  
20577
 
20578
        * config/i386/mmx.md: Remove double backslashes from asm templates.
20579
        (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
20580
        (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
20581
        to handle nonimmediate operands.
20582
        (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
20583
        (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
20584
        to handle nonimmediate operands.
20585
        (*mmx_v2sf3_finite): New insn pattern.
20586
        (*mmx_v2sf3): Rename from mmx_v2sf3 insn pattern.
20587
        (mmx_v2sf3): New expander.  Use
20588
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20589
        (mmx_3): New expander.  Use
20590
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20591
        (*mmx_3): New insn pattern.
20592
        (mmx_add3): Removed.
20593
        (mmx_ssadd3): Ditto.
20594
        (mmx_usadd3): Ditto.
20595
        (mmx_sub3): Ditto.
20596
        (mmx_sssub3): Ditto.
20597
        (mmx_ussub3): Ditto.
20598
        (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
20599
        (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
20600
        to handle nonimmediate operands.
20601
        (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
20602
        insn pattern.
20603
        (mmx_smulv4hi3_highpart): New expander.  Use
20604
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20605
        (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
20606
        insn pattern.
20607
        (mmx_umulv4hi3_highpart): New expander.  Use
20608
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20609
        (*mmx_v4hi3): Rename from mmx_v4hi3 insn pattern.
20610
        (mmx_v4hi3): New expander.  Use
20611
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20612
        (*mmx_v8qi3): Rename from mmx_v8qi3 insn pattern.
20613
        (mmx_v8qi3): New expander.  Use
20614
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20615
        (*mmx_3): Rename from mmx_3 insn pattern.
20616
        (mmx_3): New expander.  Use
20617
        ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20618
 
20619
2008-05-05  Jan Hubicka  
20620
 
20621
        PR tree-optimization/36118
20622
        * passes.c (pass_init_dump_file): Fix dump header.
20623
 
20624
2008-05-05  Andrew Pinski  
20625
 
20626
        PR middle-end/36141
20627
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
20628
        VCE for function decls.
20629
 
20630
2008-05-05  H.J. Lu  
20631
 
20632
        * config/i386/sse.md (sse2_3): Fix a typo.
20633
 
20634
2008-05-05  H.J. Lu  
20635
 
20636
        * config/i386/i386.md (sat_plusminus): New.
20637
        (plusminus_insn): Likewise.
20638
        (plusminus_mnemonic): Likewise.
20639
        (addsub): Removed.
20640
        (comm): Add ss_plus, us_plus, ss_minus and us_minus.
20641
        (*3_cc_overflow): Renamed to ...
20642
        (*3_cc_overflow): This.
20643
        (*si3_zext_cc_overflow): Renamed to ...
20644
        (*si3_zext_cc_overflow): This.
20645
 
20646
        * config/i386/sse.md (3): Renamed to ...
20647
        (3): This.
20648
        (*3): Renamed to ...
20649
        (*3): This.
20650
        (_vm3): Renamed to ...
20651
        (_vm3): This.
20652
        (sse3_hv4sf3): Renamed to ...
20653
        (sse3_hv4sf3): This.
20654
        (sse3_hv2df3): Renamed to ...
20655
        (sse3_hv2df3): This.
20656
        (3): New.
20657
        (*3): Likewise.
20658
        (sse2_3): Likewise.
20659
        (add): Removed.
20660
        (*add3): Likewise.
20661
        (sse2_ssadd3): Likewise.
20662
        (sse2_usadd3): Likewise.
20663
        (sub3): Likewise.
20664
        (*sub3): Likewise.
20665
        (sse2_sssub3): Likewise.
20666
        (sse2_ussub3): Likewise.
20667
 
20668
2008-05-05  Benjamin Kosnik  
20669
 
20670
        * gthr-single.h: Add in required interface elements as per gthr.h.
20671
        Add stub types for __gthread_key_t, __gthread_once_t. Add defines
20672
        for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
20673
        Generalize UNUSED macro.
20674
        (__gthread_once): Add.
20675
        (__gthread_key_create): Add.
20676
        (__gthread_key_delete): Add.
20677
        (__gthread_getspecific): Add.
20678
        (__gthread_setspecific): Add.
20679
 
20680
2008-05-05  Andrew Pinski  
20681
 
20682
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
20683
        the same size types for the indirect reference on the rhs, then
20684
        create a VCE.
20685
 
20686
2008-05-05  Uros Bizjak  
20687
 
20688
        * config/i386/i386.md
20689
        (*float2_sse_interunit): Use only
20690
        one insn template instead of template series.
20691
        (*xordi_1_rex64): Ditto.
20692
        (*xordi_2_rex64): Ditto.
20693
 
20694
2008-05-05  Ira Rosen  
20695
 
20696
        PR tree-optimization/36119
20697
        * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
20698
        in case of SLP.
20699
 
20700
2008-06-04  Jan Hubicka  
20701
 
20702
        tree-optimization/36100
20703
        * tree-pass.h (pass_O0_always_inline): Declare.
20704
        * ipa-inline.c (inline_transform): Remove dead code.
20705
        (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
20706
        pass_O0_always_inline): New.
20707
        * passes.c (init_optimization_passes): Add pass_O0_always_inline.
20708
 
20709
2008-05-04  Kai Tietz  
20710
 
20711
        * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
20712
        mnemonic in this_param move for TARGET_64BIT.
20713
 
20714
2008-05-04  Uros Bizjak  
20715
 
20716
        * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
20717
        (*strmovsi_rex_1): Ditto.
20718
        (*strsetsi_1): Ditto.
20719
        (*strsetsi_rex_1): Ditto.
20720
 
20721
        (addcc): Macroize expander from addqicc, addhicc, addsicc and
20722
        adddicc expanders using SWI mode iterator.
20723
 
20724
2008-05-04  H.J. Lu  
20725
 
20726
        PR target/36121
20727
        * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
20728
        argument handling.
20729
 
20730
2008-05-04  David S. Miller  
20731
 
20732
        * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
20733
        (sparc*-*-linux*): Use linux.h in tm_file.
20734
        (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
20735
        compiler defaulting to 32-bit.
20736
        (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
20737
        no longer needed.
20738
        * config/sparc/linux.h: Remove definitions now obtained
20739
        properly from linux.h
20740
        * config/sparc/linux64.h: Likewise.
20741
        (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
20742
        don't want this setting for 32-bit builds in a biarch compiler.
20743
        * doc/install.texi: Add sparc-linux to list of targets
20744
        supporting --enable-targets=all.
20745
 
20746
2008-05-03  Andrew Pinski  
20747
 
20748
        * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
20749
 
20750
2008-05-03  H.J. Lu  
20751
 
20752
        * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
20753
        after V4SI_FTYPE_V8HI.
20754
        (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
20755
        case V4SI_FTYPE_V2DF.
20756
 
20757
2008-05-03  Kenneth Zadeck  
20758
 
20759
        * doc/invoke.texi (max-flow-memory-locations): Removed.
20760
        * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
20761
 
20762
2008-05-03  Richard Guenther  
20763
 
20764
        PR middle-end/34973
20765
        * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
20766
 
20767
2008-05-02  David S. Miller  
20768
 
20769
        * config.gcc (need_64bit_hwint): Document libcpp dependency.
20770
 
20771
2008-05-02  Simon Baldwin  
20772
 
20773
        PR bootstrap/36108
20774
        * c-common.h (warn_array_subscript_range): Removed.
20775
        * c-common.c (warn_array_subscript_range): Ditto.
20776
        * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
20777
        * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
20778
 
20779
2008-05-02  H.J. Lu  
20780
 
20781
        * config/i386/i386.c (ix86_special_builtin_type): New.
20782
        (bdesc_special_args): Likewise.
20783
        (ix86_expand_special_args_builtin): Likewise.
20784
        (ix86_init_mmx_sse_builtins): Updated.
20785
        (ix86_expand_builtin): Updated.
20786
        (ix86_expand_store_builtin): Removed.
20787
        (ix86_expand_unop_builtin): Likewise.
20788
 
20789
        * config/i386/mm3dnow.h (__v2sf): Moved to ...
20790
        * config/i386/mmintrin.h (__v2sf): Here.
20791
 
20792
        * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
20793
        const __v2sf.
20794
        (_mm_loadl_pi): Likewise.
20795
        (_mm_storeh_pi): Replace __v2si with __v2sf.
20796
        (_mm_storel_pi): Likewise.
20797
 
20798
        * doc/extend.texi: Correct __builtin_ia32_loadhps,
20799
        __builtin_ia32_loadlps, __builtin_ia32_storehps,
20800
        __builtin_ia32_storelps, __builtin_ia32_loadhpd and
20801
        __builtin_ia32_loadlpd.
20802
 
20803
2008-05-02  H.J. Lu  
20804
 
20805
        * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
20806
        V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
20807
        (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
20808
        (ix86_init_mmx_sse_builtins): Updated.
20809
        (ix86_expand_args_builtin): Likewise.
20810
        (ix86_expand_builtin): Likewise.
20811
        (ix86_expand_unop1_builtin): Renamed to ...
20812
        (ix86_expand_unop_vec_merge_builtin): This.
20813
 
20814
2008-05-01  Jan Hubicka  
20815
 
20816
        PR bootstrap/36100
20817
        * ipa-inline.c (inline_generate_summary): Make static.
20818
        (inline_transform): Do not call inlining at -O0; make static.
20819
        * passes.c (execute_todo): Add sanity check.
20820
        (execute_one_ipa_transform_pass): Execute proper flags.
20821
 
20822
2008-05-01  Eric Botcazou  
20823
 
20824
        * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
20825
        (DECL_NONADDRESSABLE_P): Likewise.
20826
        * alias.c (record_component_aliases): Fix comment.
20827
 
20828
2008-05-01  Simon Baldwin  
20829
 
20830
        * c-common.h (warn_array_subscript_range): New function.
20831
        * c-common.c (warn_array_subscript_range): Ditto.
20832
        * tree-vrp.c (check_array_ref): Corrected code to agree with
20833
        comment, ignoring only arrays of size 0 or size 1.
20834
        * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
20835
 
20836
2008-05-01  H.J. Lu  
20837
 
20838
        * config/i386/i386.c (ix86_builtin_type): Replace
20839
        DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
20840
        (bdesc_args): Updated.
20841
        (ix86_init_mmx_sse_builtins): Likewise.
20842
        (ix86_expand_args_builtin): Likewise.
20843
 
20844
        * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
20845
        with __v1di.
20846
 
20847
        * doc/extend.texi: Correct __builtin_ia32_palignr.
20848
 
20849
2008-05-01  H.J. Lu  
20850
 
20851
        PR target/36095
20852
        * config/i386/i386.c (bdesc_crc32): Removed.
20853
        (ix86_expand_crc32): Likewise.
20854
        (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
20855
        V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
20856
        V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
20857
        UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
20858
        UINT_FTYPE_UINT_UCHAR.
20859
        (bdesc_args): Updated. Add crc32 builtins.
20860
        (ix86_init_mmx_sse_builtins): Updated.
20861
        (ix86_expand_args_builtin): Updated to support subreg.
20862
 
20863
        * doc/extend.texi: Correct __builtin_ia32_crc32di.
20864
 
20865
2008-05-01  Jan Hubicka  
20866
 
20867
        * tree-pass.h (opt_pass): Add IPA_PASS.
20868
        (varpool_node, cgraph_node): Forward declare.
20869
        (ipa_opt_pass): Define.
20870
        (pass_ipa_inline): Turn into ipa_opt_pass.
20871
        (pass_apply_inline): Remove.
20872
        * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
20873
        (apply_inline): Turn into ....
20874
        (inline_transform): ... this one.
20875
        (inline_generate_summary): New function.
20876
        (pass_apply_inline): Remove.
20877
        * function.h (ipa_opt_pass): Forward declare structure; typedef;
20878
        vector.
20879
        (struct function): Add ipa_transforms_to_apply.
20880
        * passes.c (register_one_dump_file): Work on IPA_PASS.
20881
        (init_optimization_passes): Remove pass_inline_parameters and
20882
        pass_apply_inline.
20883
        (pass_init_dump_file, pass_fini_dump_file): Break out from ....
20884
        (execute_one_pass) ... here; apply transforms when possible.
20885
        (add_ipa_transform_pass, execute_ipa_summary_asses,
20886
        execute_one_ipa_transform_pass): New.
20887
        (execute_ipa_pass_list): Update for IPA_PASS type.
20888
 
20889
2008-05-01  H.J. Lu  
20890
 
20891
        * config/i386/i386.c (ix86_builtin_type): Add
20892
        V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
20893
        V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
20894
        (bdesc_args): Add SSE4a builtins.
20895
        (ix86_init_mmx_sse_builtins): Updated.
20896
        (ix86_expand_args_builtin): Likewise.
20897
        (ix86_expand_builtin): Likewise.
20898
 
20899
2008-05-01  H.J. Lu  
20900
 
20901
        * config/i386/i386.c (ix86_builtin_type): Add
20902
        V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
20903
        V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
20904
        V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
20905
        V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
20906
        V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
20907
        V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
20908
        V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
20909
        V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
20910
        and DI_FTYPE_DI_DI_INT.
20911
        (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
20912
        (ix86_init_mmx_sse_builtins): Updated.
20913
        (ix86_expand_args_builtin): Likewise.
20914
        (ix86_expand_builtin): Likewise.
20915
        (ix86_expand_binop_imm_builtin): Removed.
20916
 
20917
        * doc/extend.texi: Correct __builtin_ia32_palignr128.
20918
 
20919
2008-04-30  Richard Guenther  
20920
 
20921
        PR tree-optimization/32921
20922
        * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
20923
 
20924
2008-04-30  Richard Sandiford  
20925
 
20926
        * config/arm/arm.c (arm_unwind_emit): Use
20927
        crtl->all_throwers_are_sibcalls instead of
20928
        cfun->all_throwers_are_sibcalls.
20929
        (arm_output_fn_unwind): Likewise.
20930
        * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
20931
        instead of cfun->uses_pic_offset_table.
20932
        (frv_expand_prologue): Likewise.
20933
        (frv_frame_pointer_required): Likewise.
20934
        (frv_expand_fdpic_call): Likewise.
20935
        (frv_emit_movsi): Likewise.
20936
        * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
20937
        cfun->returns_pcc_struct instead of
20938
        current_function_returns_pcc_struct.
20939
        * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
20940
        instead of cfun->calls_eh_return.
20941
        (m32c_pushm_popm): Likewise.
20942
        * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
20943
        "extern" declaration.
20944
 
20945
2008-04-30  Richard Guenther  
20946
 
20947
        PR tree-optimization/21636
20948
        * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
20949
        constant address.
20950
        (evaluate_stmt): Print the likely value.
20951
        (ccp_visit_stmt): Avoid excessive vertical spacing.
20952
 
20953
2008-04-30  Rafael Espíndola  
20954
 
20955
        * builtins.c (fold_call_expr): Return realret.
20956
        * tree-ssa-threadedge.c
20957
        (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
20958
        __builtin_object_size.
20959
 
20960
2008-04-30  Seongbae Park  
20961
 
20962
        * gcc.c (wrapper_string): New variable.
20963
        (insert_wrapper): New function.
20964
        (execute): New option -wrapper.
20965
        * doc/invoke.texi (Overall Options): New driver option -wrapper.
20966
 
20967
2008-04-30  Nathan Froyd  
20968
 
20969
        * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
20970
        config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
20971
        config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
20972
        from...
20973
        * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
20974
        * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
20975
        config/rs6000/e500crtres64gprctr.asm,
20976
        config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
20977
        config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
20978
        config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
20979
        config/rs6000/e500crtsav64gprctr.asm,
20980
        config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
20981
        config/rs6000/e500crtsavg64gprctr.asm: New files.
20982
        * config/rs6000/t-ppccomm: Add build rules for new files.
20983
        (LIB2FUNCS_STATIC_EXTRA): Add new files.
20984
        * config/rs6000/t-netbsd: Add build rules for new files.
20985
        (LIB2FUNCS_STATIC_EXTRA): New variable.
20986
        * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
20987
        (CRTSAVRES_DEFAULT_SPEC): Likewise.
20988
        * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
20989
 
20990
2008-04-30  H.J. Lu  
20991
 
20992
        * config/i386/i386.c (ix86_builtin_type): Add
20993
        FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
20994
        V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
20995
        V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
20996
        V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
20997
        V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
20998
        V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
20999
        V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
21000
        V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
21001
        V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
21002
        V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
21003
        V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
21004
        V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
21005
        V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
21006
        V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
21007
        V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
21008
        V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
21009
        V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
21010
        V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
21011
        V1DI_FTYPE_V2SI_V2SI.
21012
        (bdesc_2arg): Moved to ...
21013
        (bdesc_args): Here.
21014
        (ix86_init_mmx_sse_builtins): Updated.
21015
        (ix86_expand_args_builtin): Updated.  Take a pointer
21016
        to const struct builtin_description.  Handle comparison
21017
        builtin functions.
21018
        (ix86_expand_sse_compare): Take a new argument for swapping operands.
21019
        (ix86_expand_builtin): Updated.
21020
 
21021
        * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
21022
        (ssse3_pmaddubsw128): This.
21023
        (ssse3_pmaddubswv4hi3): Renamed to ...
21024
        (ssse3_pmaddubsw): This.
21025
 
21026
        * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
21027
        (__builtin_ia32_packssdw128): Likewise.
21028
        (__builtin_ia32_packuswb128): Likewise.
21029
        (__builtin_ia32_pmaddubsw): Likewise.
21030
        (__builtin_ia32_pmaddubsw128): Likewise.
21031
 
21032
2008-04-30  Richard Guenther  
21033
 
21034
        PR tree-optimization/14847
21035
        * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
21036
        (recognize_bits_test): Use it.
21037
        (recognize_single_bit_test): Likewise.
21038
 
21039
2008-04-30  Martin Jambor  
21040
 
21041
        * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
21042
        instead of setting number of formal parameters to zero.
21043
        (ipcp_init_stage): Do not set the number of actual parameters to zero
21044
        either.
21045
        (ipcp_propagate_stage): Explicitly skipping all calls to nodes
21046
        which are called with variable number of arguments.
21047
        (ipcp_insert_stage): Explicitely skipping all nodes which are
21048
        called with variable number of arguments.
21049
        (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
21050
        number of parameters.
21051
 
21052
        * ipa-prop.h (struct ipa_node_params): Added flag
21053
        called_with_var_arguments
21054
        (ipa_set_param_count): Added.  Changed sole setter to use it.
21055
        (ipa_get_param_count): Added.  All readers of param_count
21056
        converted to use it instead.
21057
        (ipa_set_called_with_variable_arg): Added.
21058
        (ipa_is_called_with_var_arguments): Added.
21059
        (ipa_get_ith_param): Added.  All readers of param_decls converted
21060
        to use it instead.
21061
        (ipa_set_cs_argument_count): Added, sole writer to argument_count
21062
        changed to use it.
21063
        (ipa_get_cs_argument_count): Added, all readers of argument_count
21064
        changed to cal it.
21065
        (ipa_get_ith_jump_func): Added. Accessors of jump values changed
21066
        to use it.
21067
 
21068
        * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
21069
        (struct ipcp_lattice): Renamed cval_type to type
21070
        (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
21071
 
21072
        * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
21073
        (ipcp_cval_set_cvalue): Changed type of parameter value to tree
21074
        (ipcp_insert_stage): Changed the type of variable cvalue to tree
21075
        (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
21076
        (build_const_val): Changed the type of parameter cvalue to tree
21077
        (ipcp_propagate_const): Changed the type of parameter cvalue to tree
21078
        (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
21079
 
21080
        * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
21081
        constant
21082
 
21083
        * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
21084
        (ipa_methodlist_not_empty): Removed, the sole user now checks directly
21085
        (ipa_add_method): Renamed to ipa_push_func_to_list
21086
        (ipa_remove_method): Renamed to ipa_pop_func_from_list
21087
        (ipa_callsite_param_count): Removed.
21088
        (ipa_callsite_param_count_set): Removed.
21089
        (ipa_callsite_param): Removed.
21090
        (ipa_callsite_callee): Removed.
21091
        (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
21092
        (ipa_callsite_compute_count): Renamed to ipa_count_arguments
21093
        (ipa_method_formal_count): Removed.
21094
        (ipa_method_formal_count_set): Removed.
21095
        (ipa_method_get_tree): Removed.
21096
        (ipa_method_tree_map_create): Removed.
21097
        (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
21098
        (ipa_create_param_decls_array): Creates the array itself
21099
        (ipa_create_param_decls_array): Temporary variable info instead of
21100
        a few dereferences.
21101
        (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
21102
        (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
21103
        (get_type): Removed.
21104
        (ipa_jf_get_info_type): Removed.
21105
        (ipa_node_create): Renamed to ipa_create_node_params
21106
        (ipa_free): Renamed to ipa_free_all_node_params
21107
        (ipa_nodes_create): Renamed to ipa_create_all_node_params
21108
        (ipa_edges_create): Renamed to ipa_create_all_edge_args
21109
        (ipa_edges_free): Renamed to ipa_free_all_edge_args
21110
        (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
21111
        (ipa_free_all_node_params): Deallocation to jump_functions moved to
21112
        ipa_free_all_edge_args
21113
        (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
21114
        (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
21115
        (ipa_create_methodlist_node): Removed.
21116
        (ipa_methodlist_method): Removed.
21117
        (ipa_methodlist_method_set): Removed.
21118
        (ipa_methodlist_next_method): Removed.
21119
        (ipa_methodlist_next_method_set): Removed.
21120
        (ipa_method_is_modified): Removed.
21121
        (ipa_method_modify_create): Removed.
21122
        (ipa_method_modify_init): Temporary variable info instead of a few
21123
        dereferences.
21124
        (ipa_detect_param_modifications): Temporary variable info instead of
21125
        a few dereferences.
21126
        (ipa_compute_jump_functions): Temporary variable info instead of
21127
        a few dereferences.
21128
        (ipa_method_modify_set): Removed.
21129
        (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
21130
        (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
21131
        than craph_node as the first parameter.
21132
        (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
21133
        (ipa_method_modify_init): Removed.
21134
        (ipa_compute_jump_functions): Added a temp variable instead of
21135
        repeatadly dereferencing the cgraph_edge.aux pointer
21136
        (ipa_callsite_param_set_type): Removed.
21137
        (ipa_compute_jump_functions): i renamed to index and moved to
21138
        an inner block
21139
        (ipa_callsite_param_set_info_type_formal): Removed.
21140
        (ipa_callsite_param_set_info_type): Removed.
21141
        (ipa_callsite_param_map_create): Removed.
21142
        (ipa_callsite_tree): Removed.
21143
        (ipa_callsite_caller): Removed.
21144
        (ipa_pop_func_from_list): return_method removed to return_func
21145
 
21146
        * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
21147
        prefixed all values with IPA_. Changed all users.
21148
        (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
21149
        CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
21150
        and FORMAL_IPATYPE IPA_PASS_THROUGH.
21151
        (union parameter_info): Renamed to jump_func_value.
21152
        (union jump_func_value): Renamed value to constant
21153
        (struct ipa_jump_func): Renamed info_type to value
21154
        (struct ipa_node): Renamed to ipa_node_params
21155
        (struct ipa_node_params): Renamed ipa_arg_num to param_count
21156
        (struct ipa_node_params): Renamed ipa_param_tree to param_decls
21157
        (struct ipa_node_params): Renamed ipa_mod to modified_flags
21158
        (struct ipa_edge): Renamed to ipa_edge_args
21159
        (struct ipa_edge_args): Renamed ipa_param_num to argument_count
21160
        (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
21161
        (struct ipa_methodlist): Renamed to ipa_func_list
21162
        (struct ipa_func_list): method_p renamed to node, next_method
21163
        renamed to next
21164
        (ipa_methodlist_p): Removed, switched all users to struct pointer
21165
        (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
21166
 
21167
2008-04-30  Alan Modra  
21168
 
21169
        * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
21170
        (rs6000_emit_epilogue): Use backchain to restore only when we
21171
        have a large frame.  Make use of frame pointer to restore if we
21172
        have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
21173
 
21174
2008-04-29  Paolo Bonzini  
21175
 
21176
        * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
21177
        Add mode to zero_extract.
21178
        (sign bit tests peepholes): (Ditto.).
21179
 
21180
2008-04-29  H.J. Lu  
21181
 
21182
        * config/i386/i386.c (ix86_builtins): Replace Prescott New
21183
        Instructions in comments with SSE3.
21184
        (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
21185
        INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
21186
        INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
21187
        V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
21188
        V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
21189
        V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
21190
        V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
21191
        V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
21192
        V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
21193
        V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
21194
        V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
21195
        V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
21196
        (bdesc_sse_args): Renamed to ...
21197
        (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
21198
        IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
21199
        IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
21200
        IX86_BUILTIN_FABSQ.
21201
        (bdesc_1arg): Moved to ...
21202
        (bdesc_args): Here.
21203
        (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
21204
        Instructions in comments with SSE3.
21205
        (ix86_expand_sse_operands_builtin): Renamed to ...
21206
        (ix86_expand_args_builtin): This.  Updated.
21207
        (ix86_expand_unop1_builtin): Update comments.
21208
        (ix86_expand_builtin): Updated.
21209
 
21210
2008-04-29  Richard Guenther  
21211
 
21212
        PR tree-optimization/36078
21213
        * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
21214
        Update virtual SSA form after cleaning up the CFG.
21215
 
21216
2008-04-29  Richard Guenther  
21217
 
21218
        PR middle-end/15255
21219
        * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
21220
 
21221
2008-04-29  Richard Guenther  
21222
 
21223
        * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
21224
        (compute_may_aliases): Do not call finalize_ref_all_pointers.
21225
        (compute_flow_insensitive_aliasing): Do not treat
21226
        PTR_IS_REF_ALL pointers special.
21227
        (get_smt_for): Likewise.
21228
        (may_alias_p): Re-structure.
21229
        (is_escape_site): A ref-all pointer conversion is not an escape site.
21230
        * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
21231
        PTR_IS_REF_ALL pointers special.
21232
        * tree-ssa-structalias.h (struct alias_info): Remove
21233
        ref_all_symbol_mem_tag field.
21234
        (PTR_IS_REF_ALL): Remove.
21235
 
21236
2008-04-29  Richard Guenther  
21237
 
21238
        PR middle-end/36077
21239
        * fold-const.c (extract_muldiv_1): In combining division constants
21240
        make sure to never overflow.
21241
 
21242
2008-04-29  Nick Clifton  
21243
 
21244
        * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
21245
 
21246
2008-04-28  Ralf Wildenhues  
21247
 
21248
        PR bootstrap/35169
21249
        * optc-gen.awk: Work around HP-UX/IA awk bug.
21250
 
21251
2008-04-28  Danny Smith  
21252
 
21253
        * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
21254
        2008-04-25 commit.
21255
 
21256
2008-04-28  Uros Bizjak  
21257
 
21258
        PR target/36073
21259
        * config/i386/i386.md
21260
        (*float2_mixed_interunit):
21261
        Change operand 1 predicate to nonimmediate_operand.
21262
 
21263
2008-04-28  Jakub Jelinek  
21264
 
21265
        PR debug/36060
21266
        * dwarf2out.c (struct die_struct): Mark as chain_circular through
21267
        die_sub field.
21268
        * gengtype.c (walk_type, write_func_for_structure): Handle
21269
        chain_circular.
21270
        * doc/gty.texi: Document chain_circular.
21271
 
21272
2008-04-28  Richard Guenther  
21273
 
21274
        PR tree-optimization/36066
21275
        * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
21276
        SCEV and loop.
21277
 
21278
2008-04-28  Uros Bizjak  
21279
 
21280
        PR target/36064
21281
        * config/i386/i386.md
21282
        (floatdi2_i387_with_xmm splitters):
21283
        Use match_scratch instead of match_operand for operands 3 and 4.
21284
 
21285
2008-04-27  Richard Guenther  
21286
 
21287
        PR tree-optimization/18754
21288
        PR tree-optimization/34223
21289
        * tree-pass.h (pass_complete_unrolli): Declare.
21290
        * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
21291
        loop size before and after unconditionally of UL_NO_GROWTH in effect.
21292
        Rewrite loop into loop closed SSA form if it is not already.
21293
        (tree_unroll_loops_completely): Re-structure to iterate over
21294
        innermost loops with intermediate CFG cleanups.
21295
        Unroll outermost loops only if requested or the code does not grow
21296
        doing so.
21297
        * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
21298
        loops are available.
21299
        (tree_vectorize): Instead do so here.
21300
        (tree_complete_unroll): Also unroll outermost loops.
21301
        (tree_complete_unroll_inner): New function.
21302
        (gate_tree_complete_unroll_inner): Likewise.
21303
        (pass_complete_unrolli): New pass.
21304
        * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
21305
        uses outside of the loop.
21306
        (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
21307
        form if it is available.
21308
        * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
21309
        * passes.c (init_optimization_passes): Schedule complete inner
21310
        loop unrolling pass before the first CCP pass after final inlining.
21311
 
21312
2008-04-27  Nathan Sidwell  
21313
 
21314
        * targhooks.h (default_emutls_var_fields,
21315
        default_emutls_var_init): Declare.
21316
        * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
21317
        * target.h (struct gcc_target): Add struct emutls member.
21318
        * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
21319
        TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
21320
        TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
21321
        TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
21322
        TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
21323
        TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
21324
        (TARGET_INITIALIZER): Add TARGET_EMUTLS.
21325
        * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
21326
        BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
21327
        * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
21328
        emit debug information.
21329
        * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
21330
        * varasm.c: Include targhooks.h.
21331
        (emutls_object_section, emutls_tmpl_section): New.
21332
        (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
21333
        (EMUTLS_SEPARATOR): New.
21334
        (prefix_name): New.
21335
        (get_emutls_object_name): New.
21336
        (default_emutls_var_fields): New, broken out of ...
21337
        (get_emutls_object_type): ... here.  Adjust to use target hooks.
21338
        (get_emutls_init_templ_addr): Adjust to use target hooks.
21339
        (emutls_decl): Adjust to use target hooks.
21340
        (emutls_finish): Likewise.
21341
        (default_emutls_var_init): New, broken out of ...
21342
        (assemble_variable): ... here.  Adjust to use target hooks.
21343
        * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
21344
        SECCAT_EMUTLS_TMPL.
21345
        * c-common.c (handle_section_attribute): Prevent overriding
21346
        sections for emulated tls with special sections.
21347
        * config/i386/i386.c (x86_64_elf_select_section): Add
21348
        SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
21349
        (x86_64_elf_unique_section): Likewise.
21350
        * config/vxworks.c: Include tree.h.
21351
        (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
21352
        (vxworks_override_options): Set TLS scheme.
21353
        * doc/tm.texi (Emulated TLS): New node.
21354
 
21355
2008-04-26  Simon Baldwin  
21356
 
21357
        PR c/35652
21358
        * builtins.c (c_strlen): Suppressed multiple warnings that can occur
21359
        with propagated string constants.
21360
 
21361
2008-04-26  Uros Bizjak  
21362
 
21363
        * config/i386/i386.md (fix_trunc_i387_fisttp_with_temp): Use 'X'
21364
        constraint for operand 2 when operand 0 is memory operand.
21365
        (fix_truncdi_i387_with_temp): Use 'X' constraint for operand 4 when
21366
        operand 0 is memory operand.
21367
        (fix_trunc_i387_with_temp): Ditto.
21368
        (*floatsi2_vector_mixed_with_temp): Use 'X' constraint for
21369
        operand 2 when operand 1 is memory operand.
21370
        (*float2_mixed_with_temp): Ditto.
21371
        (*floatsi2_vector_sse_with_temp): Ditto.
21372
        (*float2_sse_with_temp): Ditto.
21373
        (*float2_i387_with_temp): Ditto.
21374
        (floatdi2_i387_with_xmm): Use 'X' constraint for
21375
        operands 2,3 and 4 when operand 1 is memory operand.
21376
        (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
21377
        is memory operand.
21378
        (fistdi2_floor_with_temp): Ditto.
21379
        (fist2_floor_with_temp): Ditto.
21380
        (fistdi2_ceil_with_temp): Ditto.
21381
        (fist2_ceil_with_temp): Ditto.
21382
        (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
21383
 
21384
2008-04-26  David Daney  
21385
 
21386
        * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
21387
        unspec_volitile.
21388
        (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
21389
        UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
21390
        UNSPEC_UPDATE_GOT_VERSION): Renumber.
21391
        (sync_compare_and_swap): New expand for QI and HI modes.
21392
        (compare_and_swap_12): New insn.
21393
        * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
21394
        * config/mips/mips.c (mips_force_binary): New function.
21395
        (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
21396
        (mips_expand_compare_and_swap_12): New function.
21397
        * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
21398
 
21399
2008-04-25  Jan Hubicka  
21400
 
21401
        PR testsuite/35843
21402
        * cfgexpand.c (pass_expand): Turn into RTL pass.
21403
        * passes.c (execute_one_pass): Do pass typechecking after execution.
21404
        * tree-pass.h (pass_expand): Turn into RTL pass.
21405
 
21406
        * function.h (struct rtl_data): Move here fields
21407
        accesses_prior_frames, calls_eh_return, saves_all_registers,
21408
        has_nonlocal_goto, has_asm_statement, is_thunk,
21409
        all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
21410
        uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
21411
        arg_pointer_save_area_init from struct function; turn into bool.
21412
        (struct function): Move
21413
        calls_eh_return, saves_all_registers, has_nonlocal_goto,
21414
        has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
21415
        profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
21416
        tail_call_emit, arg_pointer_save_area_init
21417
        into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
21418
        (current_function_returns_struct, current_function_returns_pcc_struct,
21419
        current_function_calls_setjmp, current_function_calls_alloca,
21420
        current_function_accesses_prior_frames,
21421
        current_function_calls_eh_return, current_function_is_thunk,
21422
        current_function_stdarg, current_function_profile,
21423
        current_function_limit_stack, current_function_uses_pic_offset_table,
21424
        current_function_uses_const_pool, current_function_has_nonlocal_label,
21425
        current_function_saves_all_registers,
21426
        current_function_has_nonlocal_goto,
21427
        current_function_has_asm_statement): Remove accesor macros.
21428
        * ra-conflict.c (global_conflicts): Update.
21429
        * tree-tailcall.c (suitable_for_tail_opt_p): Update.
21430
        (suitable_for_tail_call_opt_p): Update.
21431
        * builtins.c (expand_builtin_return_addr): Update.
21432
        (expand_builtin_setjmp_setup): Update.
21433
        (expand_builtin_nonlocal_goto): Update.
21434
        * final.c (final_start_function): Update.
21435
        (profile_function): Update.
21436
        (leaf_function_p): Update.
21437
        (only_leaf_regs_used): Update.
21438
        * df-scan.c (df_get_exit_block_use_set): Update.
21439
        * dojump.c (clear_pending_stack_adjust): Update.
21440
        * tree-stdarg.c (gate_optimize_stdarg): Update.
21441
        * gimple-low.c (lower_function_body): Update.
21442
        * global.c (compute_regsets): Update.
21443
        (global_alloc): Update.
21444
        * dwarf2out.c (dwarf2out_begin_prologue): Update.
21445
        * expr.c (expand_assignment): Update.
21446
        * dse.c (dse_step0): Update.
21447
        (dse_step1): Update.
21448
        * c-decl.c (store_parm_decls): Update.
21449
        * local-alloc.c (combine_regs): Update.
21450
        (find_free_reg): Update.
21451
        * function.c (assign_parms_augmented_arg_list): Update.
21452
        (assign_parm_find_data_types): Update.
21453
        (assign_parms): Update.
21454
        (allocate_struct_function): Update.
21455
        (expand_function_start): Update.
21456
        (expand_function_end): Update.
21457
        (get_arg_pointer_save_area): Update.
21458
        (thread_prologue_and_epilogue_insns): Update.
21459
        (rest_of_match_asm_constraints): Update.
21460
        * stor-layout.c (variable_size): Update.
21461
        * gcse.c (gcse_main): Update.
21462
        (bypass_jumps): Update.
21463
        * gimplify.c (gimplify_function_tree): Update.
21464
        * calls.c (emit_call_1): Update.
21465
        (expand_call): Update.
21466
        * bt-load.c (compute_defs_uses_and_gen): Update.
21467
        * except.c (sjlj_assign_call_site_values): Update.
21468
        (sjlj_emit_function_enter): Update.
21469
        (can_throw_external): Update.
21470
        (set_nothrow_function_flags): Update.
21471
        (expand_builtin_unwind_init): Update.
21472
        (expand_eh_return): Update.
21473
        (convert_to_eh_region_ranges): Update.
21474
        (output_function_exception_table): Update.
21475
        * emit-rtl.c (gen_tmp_stack_mem): Update.
21476
        * cfgexpand.c (expand_used_vars): Update.
21477
        (tree_expand_cfg): Update.
21478
        * cfgcleanup.c (rest_of_handle_jump): Update.
21479
        * explow.c (allocate_dynamic_stack_space): Update.
21480
        * varasm.c (assemble_start_function): Update.
21481
        (force_const_mem): Update.
21482
        (mark_constant_pool): Update.
21483
        * tree-optimize.c (tree_rest_of_compilation): Update.
21484
        * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
21485
        * tree-cfg.c (notice_special_calls): Update.
21486
        (is_ctrl_altering_stmt): Update.
21487
        (tree_can_make_abnormal_goto): Update.
21488
        (tree_purge_dead_abnormal_call_edges): Update.
21489
        * config/alpha/predicates.md: Update.
21490
        * config/alpha/alpha.c (alpha_sa_mask): Update.
21491
        (alpha_sa_size): Update.
21492
        (alpha_does_function_need_gp): Update.
21493
        (alpha_expand_prologue): Update.
21494
        (alpha_start_function): Update.
21495
        (alpha_output_function_end_prologue): Update.
21496
        (alpha_expand_epilogue): Update.
21497
        * config/frv/frv.c (frv_stack_info): Update.
21498
        (frv_expand_epilogue): Update.
21499
        * config/s390/s390.c (s390_regs_ever_clobbered): Update.
21500
        (s390_register_info): Update.
21501
        (s390_frame_info): Update.
21502
        (s390_init_frame_layout): Update.
21503
        (s390_can_eliminate): Update.
21504
        (save_gprs): Update.
21505
        * config/spu/spu.c (spu_split_immediate): Update.
21506
        (need_to_save_reg): Update.
21507
        (spu_expand_prologue): Update.
21508
        (spu_expand_epilogue): Update.
21509
        * config/sparc/sparc.md: Update.
21510
        * config/sparc/sparc.c (eligible_for_return_delay): Update.
21511
        (sparc_tls_got): Update.
21512
        (legitimize_pic_address): Update.
21513
        (sparc_emit_call_insn): Update.
21514
        (sparc_expand_prologue): Update.
21515
        (output_return): Update.
21516
        (print_operand): Update.
21517
        (sparc_function_ok_for_sibcall): Update.
21518
        * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
21519
        * config/m32r/m32r.md: Update.
21520
        * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
21521
        (m32r_compute_frame_size): Update.
21522
        (m32r_expand_prologue): Update.
21523
        (m32r_expand_epilogue): Update.
21524
        (m32r_legitimize_pic_address): Update.
21525
        * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
21526
        * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
21527
        * config/i386/i386.c (ix86_frame_pointer_required): Update.
21528
        (gen_push): Update.
21529
        (ix86_save_reg): Update.
21530
        (ix86_compute_frame_layout): Update.
21531
        (ix86_expand_prologue): Update.
21532
        (ix86_expand_epilogue): Update.
21533
        * config/sh/sh.c (output_stack_adjust): Update.
21534
        (calc_live_regs): Update.
21535
        (sh5_schedule_saves): Update.
21536
        (sh_expand_prologue): Update.
21537
        (sh_expand_epilogue): Update.
21538
        (sh_setup_incoming_varargs): Update.
21539
        (sh_allocate_initial_value): Update.
21540
        (sh_get_pr_initial_val): Update.
21541
        * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
21542
        * config/sh/sh.md (label:): Update.
21543
        * config/avr/avr.c (out_movhi_mr_r): Update.
21544
        * config/crx/crx.h (enum): Update.
21545
        * config/xtensa/xtensa.h (along): Update.
21546
        * config/stormy16/stormy16.c Update.
21547
        (xstormy16_compute_stack_layout): Update.
21548
        * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
21549
        (fr30_expand_prologue): Update.
21550
        * config/cris/cris.c (cris_conditional_register_usage): Update.
21551
        (cris_reg_saved_in_regsave_area): Update.
21552
        (cris_initial_frame_pointer_offset): Update.
21553
        (cris_simple_epilogue): Update.
21554
        (cris_expand_prologue): Update.
21555
        (cris_expand_epilogue): Update.
21556
        (cris_expand_pic_call_address): Update.
21557
        (cris_asm_output_symbol_ref): Update.
21558
        (cris_asm_output_label_ref): Update.
21559
        * config/cris/cris.md Update.
21560
        * config/iq2000/iq2000.c (compute_frame_size): Update.
21561
        (iq2000_expand_epilogue): Update.
21562
        * config/mt/mt.h (save_direction): Update.
21563
        * config/mn10300/mn10300.c (mn10300_function_value): Update.
21564
        * config/ia64/ia64.c (ia64_compute_frame_size): Update.
21565
        (ia64_secondary_reload_class): Update.
21566
        * config/m68k/m68k.c (m68k_save_reg): Update.
21567
        (m68k_expand_prologue): Update.
21568
        (m68k_expand_epilogue): Update.
21569
        (legitimize_pic_address): Update.
21570
        * config/rs6000/rs6000.c (rs6000_got_register): Update.
21571
        (first_reg_to_save): Update.
21572
        (first_altivec_reg_to_save): Update.
21573
        (compute_vrsave_mask): Update.
21574
        (compute_save_world_info): Update.
21575
        (rs6000_stack_info): Update.
21576
        (spe_func_has_64bit_regs_p): Update.
21577
        (rs6000_ra_ever_killed): Update.
21578
        (rs6000_emit_eh_reg_restore): Update.
21579
        (rs6000_emit_allocate_stack): Update.
21580
        (rs6000_emit_prologue): Update.
21581
        (rs6000_emit_epilogue): Update.
21582
        (rs6000_output_function_epilogue): Update.
21583
        (output_profile_hook): Update.
21584
        (rs6000_elf_declare_function_name): Update.
21585
        * config/rs6000/rs6000.h (rs6000_args): Update.
21586
        * config/rs6000/rs6000.md: Update.
21587
        * config/mcore/mcore.c (mcore_expand_prolog): Update.
21588
        * config/arc/arc.c (arc_output_function_epilogue): Update.
21589
        * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
21590
        * config/darwin.c (machopic_function_base_name): Update.
21591
        * config/score/score3.c (score3_compute_frame_size): Update.
21592
        (rpush): Update.
21593
        (rpop): Update.
21594
        (score3_epilogue): Update.
21595
        * config/score/score7.c (score7_compute_frame_size): Update.
21596
        (score7_prologue): Update.
21597
        (score7_epilogue): Update.
21598
        * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
21599
        * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
21600
        * config/arm/arm.c (use_return_insn): Update.
21601
        (require_pic_register): Update.
21602
        (arm_load_pic_register): Update.
21603
        (arm_compute_save_reg0_reg12_mask): Update.
21604
        (arm_compute_save_reg_mask): Update.
21605
        (thumb1_compute_save_reg_mask): Update.
21606
        (output_return_instruction): Update.
21607
        (arm_output_function_prologue): Update.
21608
        (arm_output_epilogue): Update.
21609
        (arm_get_frame_offsets): Update.
21610
        (arm_expand_prologue): Update.
21611
        (thumb_pushpop): Update.
21612
        (thumb_exit): Update.
21613
        (thumb1_expand_prologue): Update.
21614
        (thumb1_expand_epilogue): Update.
21615
        (arm_unwind_emit): Update.
21616
        (arm_output_fn_unwind): Update.
21617
        * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
21618
        * config/arm/arm.md: Update.
21619
        * config/pa/pa.md: Update.
21620
        * config/pa/pa.c (legitimize_pic_address): Update.
21621
        (compute_frame_size): Update.
21622
        (hppa_expand_prologue): Update.
21623
        (hppa_expand_epilogue): Update.
21624
        (borx_reg_operand): Update.
21625
        * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
21626
        (HARD_REGNO_RENAME_OK): Update.
21627
        * config/mips/mips.c (mips_global_pointer): Update.
21628
        (mips_save_reg_p): Update.
21629
        (mips_compute_frame_info): Update.
21630
        (mips_frame_pointer_required): Update.
21631
        (mips_expand_prologue): Update.
21632
        (mips_expand_epilogue): Update.
21633
        (mips_can_use_return_insn): Update.
21634
        (mips_reorg_process_insns): Update.
21635
        * config/v850/v850.c (compute_register_save_size): Update.
21636
        * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
21637
        * config/mmix/mmix.c (along): Update.
21638
        (mmix_expand_epilogue): Update.
21639
        * config/bfin/bfin.c (legitimize_pic_address): Update.
21640
        (must_save_p): Update.
21641
        (stack_frame_needed_p): Update.
21642
        (add_to_reg): Update.
21643
        (bfin_expand_prologue): Update.
21644
        * stmt.c (expand_asm_operands): Update.
21645
        * reload1.c (reload): Update.
21646
        (init_elim_table): Update.
21647
 
21648
2008-04-25  Bob Wilson  
21649
 
21650
        * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
21651
 
21652
2008-04-25  H.J. Lu  
21653
 
21654
        * config/i386/sse.md (mov): Replace SSEMODEI with SSEMODE.
21655
        (*mov_internal): Likewise.  Support V4SF and V2DF.
21656
        (mov): Removed.
21657
        (*movv4sf_internal): Likewise.
21658
        (*movv2df_internal): Likewise.
21659
 
21660
2008-04-25  Pompapathi V Gadad  
21661
 
21662
        * config.gcc (crx-*-elf): Remove deprecation.
21663
 
21664
2008-04-25  Danny Smith  
21665
 
21666
        * config/i386/cygming-crtend.c (register_frame_ctor): Register
21667
        __gcc_deregister_frame with atexit.
21668
        (deregister_frame_dtor): Remove.
21669
 
21670
2008-04-24  Nathan Froyd  
21671
            Nathan Sidwell  
21672
 
21673
        * config/rs6000/rs6000.opt (mspe): Remove Var property.
21674
        (misel): Likewise.
21675
        * config/rs6000/rs6000.h (rs6000_spe): Declare.
21676
        (rs6000_isel): Likewise.
21677
        * config/rs6000/rs6000.c (rs6000_spe): New variable.
21678
        (rs6000_isel): New variable.
21679
        (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
21680
 
21681
2008-04-24  Jakub Jelinek  
21682
 
21683
        PR c++/35758
21684
        * c-common.c (handle_vector_size_attribute): Call
21685
        lang_hooks.types.reconstruct_complex_type instead of
21686
        reconstruct_complex_type.
21687
        * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
21688
        * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
21689
        * langhooks.h (struct lang_hooks_for_types): Add
21690
        reconstruct_complex_type hook.
21691
        * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
21692
        (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
21693
 
21694
2008-04-24  Richard Guenther  
21695
 
21696
        * c-common.h (check_builtin_function_arguments): Declare.
21697
        * c-common.c (validate_nargs): New function.
21698
        (check_builtin_function_arguments): Likewise.
21699
        * c-typeck.c (build_function_call): Call
21700
        check_builtin_function_arguments.
21701
        * builtins.c (fold_builtin_classify): Remove error reporting code.
21702
        (fold_builtin_unordered_cmp): Likewise.
21703
        (fold_builtin_1): Likewise.
21704
        (fold_builtin_n): Likewise.
21705
 
21706
2008-04-24  Jakub Jelinek  
21707
 
21708
        PR tree-optimization/36008
21709
        * fold-const.c (try_move_mult_to_index): If s == NULL, divide
21710
        the original op1, rather than delta by step.
21711
 
21712
2008-04-22  Antoniu Pop  
21713
            Sebastian Pop  
21714
 
21715
        * tree-parloops.c (take_address_of, eliminate_local_variables_1,
21716
        eliminate_local_variables_stmt, eliminate_local_variables,
21717
        separate_decls_in_loop_name, separate_decls_in_loop_stmt,
21718
        separate_decls_in_loop, gen_parallel_loop): Make them work on a region
21719
        of code delimited by two edges in the CFG.
21720
        (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
21721
        (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
21722
        (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
21723
        the case of parallelisation of reductions.
21724
        (expr_invariant_in_region_p): New.
21725
 
21726
        * tree-flow.h (gather_blocks_in_sese_region): Declared.
21727
        * tree-cfg.c (gather_blocks_in_sese_region): Extern.
21728
 
21729
2008-04-24  Ira Rosen  
21730
            Richard Guenther  
21731
 
21732
        PR tree-optimization/36034
21733
        * tree-vect-analyze.c (vect_analyze_group_access): SLP is
21734
        incapable of dealing with loads with gaps.
21735
 
21736
2008-04-24  Rafael Espíndola  
21737
 
21738
        * tree-flow.h (vrp_evaluate_conditional): Change signature.
21739
        * tree-ssa-propagate.c (fold_predicate_in): Update call to
21740
        vrp_evaluate_conditional.
21741
        * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
21742
        (vrp_evaluate_conditional): Split the cond argument.
21743
        (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
21744
        (simplify_stmt_for_jump_threading): Update call to
21745
        vrp_evaluate_conditional.
21746
 
21747
2008-04-24  Ira Rosen  
21748
 
21749
        PR tree-optimization/35982
21750
        * tree-vect-analyze.c (vect_check_interleaving): Check that the
21751
        interleaved data-refs are of the same type.
21752
 
21753
2008-04-24  Danny Smith  
21754
 
21755
        * c-format.c (check_format_info_main): Use strncmp rather than a
21756
        magic prefix to handle multichar length specs.
21757
        * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
21758
        Don't prefix "I64" and "I32" with '\0'.
21759
 
21760
2008-04-24  Jakub Jelinek  
21761
 
21762
        PR target/36015
21763
        * config/i386/i386.c (init_cumulative_args): Don't pass anything
21764
        in registers for -m32 only if stdarg_p (fntype).
21765
 
21766
2008-04-24  Uros Bizjak  
21767
 
21768
        PR rtl-optimization/36006
21769
        * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
21770
        temp to op0 in order to avoid invalid rtx sharing.
21771
 
21772
2008-04-23  Paolo Bonzini  
21773
 
21774
        * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
21775
        check TREE_INVARIANT.
21776
        * tree-gimple.c (is_gimple_address): New.
21777
        (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
21778
        * tree-gimple.h (is_gimple_address): New.
21779
        * tree.h (decl_address_invariant_p): New.
21780
        * tree.c (make_node_stat): Don't set TREE_INVARIANT.
21781
        (build_string): Likewise.
21782
        (decl_address_invariant_p): New, from is_gimple_invariant_address.
21783
        (tree_invariant_p_1): Likewise.
21784
        (save_expr): Use it.
21785
        (tree_invariant_p): New.
21786
        (skip_simple_arithmetic): Use it.
21787
        (stabilize_reference_1): Use it.
21788
        (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
21789
        simplify.
21790
        (build1_stat): Drop code to compute TREE_INVARIANT.
21791
        (build2_stat): Drop code to compute TREE_INVARIANT.
21792
        (build3_stat): Drop code to compute TREE_INVARIANT.
21793
        (build4_stat): Drop code to compute TREE_INVARIANT.
21794
        (build5_stat): Drop code to compute TREE_INVARIANT.
21795
        (build7_stat): Drop code to compute TREE_INVARIANT.
21796
        (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
21797
        * tree.h (struct tree_base): Remove invariant_flag.
21798
        (TREE_INVARIANT): Remove.
21799
        * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
21800
        (fold_builtin_expect): Check TREE_CONSTANT.
21801
        * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
21802
        * c-tree.h (c_expr_to_decl): Drop third parameter.
21803
        * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
21804
        (build_c_cast): Don't set TREE_INVARIANT.
21805
        (pop_init_level): Don't set TREE_INVARIANT.
21806
        (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
21807
        * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
21808
        TREE_CONSTANT.
21809
        (gimplify_init_constructor): Don't set TREE_INVARIANT.
21810
        (gimplify_addr_expr): Adjust comment.
21811
        * tree-mudflap.c (mf_build_string):
21812
        * print-tree.c (print_node): Don't print TREE_INVARIANT.
21813
        * tree-nested.c (convert_nonlocal_reference): Adjust comment.
21814
        * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
21815
        * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
21816
        * langhooks.c (lhd_expr_to_decl): Drop third parameter.
21817
        * langhooks.h (struct lang_hooks): Drop third parameter from
21818
        expr_to_decl.
21819
 
21820
2008-04-23  Richard Guenther  
21821
 
21822
        PR tree-optimization/27799
21823
        PR tree-optimization/32921
21824
        PR tree-optimization/32624
21825
        * tree-ssa-structalias.c (merge_smts_into): Only merge the
21826
        SMTs aliases and the tag itself into the solution.
21827
        * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
21828
        merge the points-to solution back into the SMT aliases.
21829
        (may_alias_p): Use alias_set_subset_of instead of
21830
        aliases_conflict_p.  A pointer which points to
21831
        memory with alias set zero may access any variable.
21832
 
21833
2008-04-23  Richard Guenther  
21834
 
21835
        * alias.c (alias_set_subset_of): Correctly handle asking
21836
        if zero is a subset of an alias set with zero child.
21837
        * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
21838
        (compute_flow_insensitive_aliasing): Correctly walk all
21839
        pointers.  Do not unnecessarily union sets.
21840
 
21841
2008-04-23  Richard Guenther  
21842
 
21843
        PR middle-end/36021
21844
        * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
21845
 
21846
2008-04-22  Tomas Bily  
21847
 
21848
        * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
21849
        unreachable case.
21850
        * tree-vrp.c (extract_range_from_unary_expr): Removed unused
21851
        NON_LVALUE_EXPR.
21852
        * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
21853
        * tree-ssa-structalias.c (get_constraint_for): Likewise.
21854
        * tree-inline.c (estimate_num_insns_1): Likewise.
21855
        * varasm.c (const_hash_1, compare_constant, copy_constant)
21856
        (compute_reloc_for_constant, output_addressed_constants): Likewise.
21857
        * emit-rtl.c (component_ref_for_mem_expr)
21858
        (set_mem_attributes_minus_bitpos): Likewise.
21859
        * expr.c (highest_pow2_factor, expand_expr_real_1)
21860
        (is_aligning_offset): Likewise.
21861
        * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
21862
        * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
21863
        * dojump.c (do_jump): Likewise.
21864
        * builtins.c (get_pointer_alignment, get_memory_rtx)
21865
        (integer_valued_real_p, fold_builtin_next_arg): Likewise.
21866
        * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
21867
 
21868
2008-04-23  Jakub Jelinek  
21869
 
21870
        PR rtl-optimization/36017
21871
        * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
21872
        expanding the library call.
21873
 
21874
2008-04-22  Ian Lance Taylor  
21875
 
21876
        * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
21877
        than size_in_bytes.
21878
 
21879
2008-04-22  Pat Haugen  
21880
 
21881
        * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
21882
        of LR/CTR moves for Power6.
21883
 
21884
2008-04-22  Kenneth Zadeck  
21885
 
21886
        PR middle-end/36003
21887
        * passes.c (init_optimization_passes): Remove
21888
        pass_fast_rtl_byte_dce.
21889
 
21890
2008-04-22  Uros Bizjak  
21891
 
21892
        PR target/29096
21893
        * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
21894
        builtin functions to generate faster code.
21895
        (_mm_cvtpu16_ps): Ditto.
21896
        (_mm_cvtpi32x2_ps): Ditto.
21897
 
21898
2008-04-22  Nick Clifton  
21899
 
21900
        * common.opt (ftree-loop-distribution): Add Optimization
21901
        attribute.
21902
 
21903
        * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
21904
        (frv_expand_builtin_va_start): Likewise.
21905
 
21906
        * config/arm/arm.c (thumb_find_work_register): Fix location of
21907
        argument register count.
21908
 
21909
2008-04-22  Maxim Kuvyrkov  
21910
 
21911
        Support scheduling for ColdFire V1 and V3 microarchitecture.
21912
        Improve scheduling of multiplication instructions.
21913
 
21914
        * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
21915
        (mac): New instruction attribute.
21916
        * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
21917
        (m68k_sched_mac): New variable.
21918
        (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
21919
        Handle cfv1 and cfv3.
21920
        (max_insn_size): New static variable.
21921
        (struct _sched_ib): New type.
21922
        (sched_ib): New static variable.
21923
        (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
21924
        to fields of 'struct _sched_ib sched_ib'.  Update all uses.
21925
        (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
21926
        Update.
21927
        (m68k_sched_md_init_global, m68k_sched_md_finish_global,
21928
        m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
21929
        new variables.  Update.
21930
        (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
21931
        Add modeling of cfv3 instruction buffer.  Update.
21932
        * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
21933
        * config/m68k/m68k.h (TUNE_CFV3): New macro.
21934
        * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
21935
        (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
21936
        a particular reservation applies to.
21937
        (type2): Reorganize attribute values.  Rename alu to alu_reg,
21938
        alu_l to alu, move_l to omove.  Join move to alu.  Split mul
21939
        to mul_l and mul_w.
21940
        (cf_ib_*): Simplify description of instruction buffer.
21941
        (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
21942
        (cf_mem): Split into cf_mem1 and cf_mem2.
21943
        (cf_v2_move_??): Rename to cfv12_alu_??.
21944
        (cf_v2_move_l_??): Rename to cfv12_omove_??.
21945
        (cf_v2_mul_??): Remove reservations.
21946
        (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
21947
        cfv12_emac_??, cfv12_emac_w_i0): New reservations.
21948
        (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
21949
        appropriate place.
21950
        (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
21951
        cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
21952
        cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
21953
        cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
21954
        cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
21955
        cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
21956
        (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
21957
        expansions of the above reservations for instructions of sizes
21958
        1, 2 and 3 words.
21959
 
21960
2008-04-22  Maxim Kuvyrkov  
21961
 
21962
        * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
21963
 
21964
2008-04-21  Adam Nemet  
21965
 
21966
        * coverage.c: Include tree-pass.h.
21967
        (coverage_counter_alloc): Print da_file_name to the dump file.
21968
 
21969
2008-04-21  Kenneth Zadeck  
21970
 
21971
        * sbitmap.c (sbitmap_range_empty_p): New function.
21972
        * sbitmap.h (sbitmap_range_empty_p): New function.
21973
        * bitmap.h: Now includes obstack.h.
21974
 
21975
2008-04-21  Richard Sandiford  
21976
            Kenneth Zadeck  
21977
 
21978
        * dbgcnt.def (ra_byte_scan): Added.
21979
        * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
21980
        when the last hit happens for a counter.
21981
        * timevar.def (TV_DF_BYTE_LR): New variable.
21982
        * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
21983
        * passes.c (pass_fast_rtl_byte_dce): New pass.
21984
        * fwprop.c (update_df): Added mode to call df_ref_create.
21985
        Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
21986
        DF_REF_EXTRACT_OFFSET.
21987
        * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
21988
        DF_BYTE_LR_OUT, df_byte_lr): New macro.
21989
        (df_mm): New enum.
21990
        (df_ref_extract): Added mode field.
21991
        (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
21992
        DF_REF_EXTRACT_OFFSET.
21993
        (DF_REF_EXTRACT_MODE): New macro.
21994
        (df_byte_lr_bb_info): New structure.
21995
        (df_print_byte_regset, df_compute_accessed_bytes,
21996
        df_byte_lr_add_problem, df_byte_lr_get_regno_start,
21997
        df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
21998
        df_byte_lr_simulate_uses,
21999
        df_byte_lr_simulate_artificial_refs_at_top,
22000
        df_byte_lr_simulate_artificial_refs_at_end,
22001
        df_compute_accessed_bytes): New function.
22002
        (df_ref_create): Add parameter.
22003
        (df_byte_lr_get_bb_info): New inline function.
22004
        * df-scan.c (df_ref_record, df_uses_record,
22005
        df_ref_create_structure): Added mode parameter.
22006
        (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
22007
        df_defs_record, df_uses_record, df_get_conditional_uses,
22008
        df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
22009
        df_entry_block_defs_collect, df_exit_block_uses_collect):
22010
        Added mode parameter to calls to df_ref_record, df_uses_record,
22011
        df_ref_create_structure.
22012
        (df_ref_equal_p, df_ref_compare): Added test for modes.
22013
        (df_ref_create_structure): Added code to set mode.  Renamed
22014
        DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
22015
        DF_REF_EXTRACT_OFFSET.
22016
        * df-core.c (df_print_byte_regset): New function.
22017
        * df-byte-scan.c: New file.
22018
        * df-problems.c (df_rd_transfer_function): Removed unnecessary
22019
        calls to BITMAP_FREE.
22020
        (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
22021
        (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
22022
        df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
22023
        df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
22024
        df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
22025
        df_byte_lr_local_compute, df_byte_lr_init,
22026
        df_byte_lr_confluence_0, df_byte_lr_confluence_n,
22027
        df_byte_lr_transfer_function, df_byte_lr_free,
22028
        df_byte_lr_top_dump, df_byte_lr_bottom_dump,
22029
        df_byte_lr_add_problem, df_byte_lr_simulate_defs,
22030
        df_byte_lr_simulate_uses,
22031
        df_byte_lr_simulate_artificial_refs_at_top,
22032
        df_byte_lr_simulate_artificial_refs_at_end): New function.
22033
        * dce.c (byte_dce_process_block): New function.
22034
        (dce_process_block): au is now passed in rather than computed
22035
        locally.  Changed loops that look at artificial defs to not look
22036
        for conditional or partial ones, because there never are any.
22037
        (fast_dce): Now is able to drive byte_dce_process_block or
22038
        dce_process_block depending on the kind of dce being done.
22039
        (rest_of_handle_fast_dce): Add parameter to fast_dce.
22040
        (rest_of_handle_fast_byte_dce): New function.
22041
        (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
22042
        * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
22043
 
22044
2008-04-21  Daniel Franke  
22045
 
22046
        PR fortran/35019
22047
        * gcc.h: Added fortran options that take arguments to
22048
        DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
22049
        macros.
22050
 
22051
2008-04-20  Eric Botcazou  
22052
 
22053
        * tree-sra.c (sra_walk_expr) : Disable
22054
        scalarization if on the LHS and not a full access.
22055
 
22056
2008-04-20  Ralf Wildenhues  
22057
 
22058
        * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
22059
 
22060
2008-04-18  Rafael Espíndola  
22061
 
22062
        * tree-vrp.c (find_case_label_index): Fix the binary search.
22063
        (find_case_label_range): New.
22064
        (vrp_visit_switch_stmt): Use find_case_label_range.
22065
        (simplify_switch_using_ranges): Use find_case_label_range.
22066
 
22067
2008-04-18  Eric Botcazou  
22068
 
22069
        * gimplify.c (gimplify_modify_expr_rhs) : Gimplify the LHS
22070
        using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
22071
 
22072
2008-04-18  Tom Tromey  
22073
 
22074
        PR libcpp/15500:
22075
        * doc/cpp.texi (Implementation-defined behavior): Mention
22076
        -finput-charset.
22077
 
22078
2008-04-18  Ian Lance Taylor  
22079
 
22080
        * fold-const.c (pointer_may_wrap_p): New static function.
22081
        (fold_comparison): Add another test for pointer overflow.  Use
22082
        pointer_may_wrap_p to disable some false positives.
22083
 
22084
2008-04-18  Kris Van Hees  
22085
 
22086
        * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
22087
        (fname_as_string): Match updated cpp_interpret_string prototype.
22088
        (fix_string_type): Support char16_t* and char32_t*.
22089
        (c_common_nodes_and_builtins): Add char16_t and char32_t (and
22090
        derivative) nodes.  Register as builtin if C++0x.
22091
        (c_parse_error): Support CPP_CHAR{16,32}.
22092
        * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
22093
        (enum c_tree_index) 
22094
        CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
22095
        CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
22096
        CTI_CHAR32_ARRAY_TYPE>: New elements.
22097
        (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
22098
        char32_type_node, signed_char32_type_node, char16_array_type_node,
22099
        char32_array_type_node): New defines.
22100
        * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
22101
        (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
22102
        (lex_string): Support CPP_STRING{16,32}, match updated
22103
        cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
22104
        (lex_charconst): Support CPP_CHAR{16,32}.
22105
        * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
22106
        and CPP_STRING{16,32}.
22107
 
22108
2008-04-18  Paolo Bonzini  
22109
 
22110
        PR bootstrap/35457
22111
        * aclocal.m4: Regenerate.
22112
        * configure: Regenerate.
22113
 
22114
2008-04-18  Jan Hubicka  
22115
 
22116
        * except.c (dw2_size_of_call_site_table,
22117
        sjlj_size_of_call_site_table): Use vector API for call_site_record.
22118
 
22119
        * cgraphbuild.c (build_cgraph_edges): Update.
22120
        * tree-pass.h: Update comment.
22121
        * final.c (leaf_function_p): Update.
22122
        (leaf_renumber_regs): Update.
22123
        (rest_of_clean_state): Update.
22124
        * omp-low.c (expand_omp_parallel): Update.
22125
        * ipa-reference.c (analyze_function): Update.
22126
        * reorg.c (find_end_label): Update.
22127
        (optimize_skip): Update.
22128
        (fill_simple_delay_slots): Update.
22129
        (fill_simple_delay_slots): Update.
22130
        (make_return_insns): Update.
22131
        (dbr_schedule): Update.
22132
        * gimple-low.c (record_vars_into): Update.
22133
        * cfgbuild.c (make_edges): Update.
22134
        * function.c (assign_stack_local): Update.
22135
        (assign_parm_adjust_stack_rtl): Update.
22136
        (locate_and_pad_parm): Update.
22137
        (allocate_struct_function): Do not initialize stack_alignment_needed
22138
        and preferred_stack_boundary here.
22139
        (stack_protect_prologue): Update.
22140
        (stack_protect_epilogue): Update.
22141
        (expand_function_start): Initialize stack_alignment_needed,
22142
        preferred_stack_boundary and max_jumptable_ents.
22143
        (expand_function_end): Update.
22144
        (free_after_compilation): Do not NULLify epilogue_delay_list.
22145
        * function.h (struct rtl_data): Add stack_protect_guard,
22146
        stack_alignment_needed,
22147
        preferred_stack_boundary, epilogue_delay_list.
22148
        (struct function): Remove value_histograms, stack_alignment_needed,
22149
        preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
22150
        last_label_uid,
22151
        unexpanded_var_list, stack_protect_guard.
22152
        (current_function_epilogue_delay_list): Remove.
22153
        * ipa-type-escape.c (analyze_function): Update.
22154
        * gimplify.c (pop_gimplify_context): Update comment.
22155
        * calls.c (expand_call): Update.
22156
        (emit_library_call_value_1): Update.
22157
        * except.c (set_nothrow_function_flags): Update.
22158
        * cfgexpand.c (get_decl_align_unit): Update.
22159
        (create_stack_guard): Update.
22160
        (estimated_stack_frame_size): Update.
22161
        (expand_used_vars): Update.
22162
        (tree_expand_cfg): Free histogram earliers, init expansion variables.
22163
        * explow.c (allocate_dynamic_stack_space): Update.
22164
        * tree-ssa-live.c (remove_unused_locals): Update.
22165
        * varasm.c (mark_constant_pool): Update.
22166
        * tree-inline.c (remap_decls): Update.
22167
        (initialize_cfun): Update.
22168
        (declare_return_variable): Update.
22169
        (inline_forbidden_p): Update.
22170
        (expand_call_inline): Update.
22171
        (declare_inline_vars): Update.
22172
        (tree_function_versioning): Update.
22173
        * tree-flow.h (value_histograms): New.
22174
        (VALUE_HISTOGRAMS): New macro.
22175
        * basic-block.h (control_flow_graph): Add max_jumptable_ents,
22176
        last_label_uid.
22177
        * tree-cfg.c (set_bb_for_stmt): Update.
22178
        (replace_by_duplicate_decl): Update.
22179
        (move_block_to_fn): Update.
22180
        (new_label_mapper): Update.
22181
        (dump_function_to_file): Update.
22182
        * ipa-struct-reorg.c (build_data_structure): Update.
22183
        * cfgrtl.c (print_rtl_with_bb): Update.
22184
        * reload1.c (reload): Update.
22185
        (reload): Update.
22186
        * config/i386/i386.c (setup_incoming_varargs_64,
22187
        ix86_compute_frame_layout): Update.
22188
        * config/arc/arc.c (arc_output_function_epilogue): Update.
22189
 
22190
2008-04-18  Marius Strobl  
22191
 
22192
        * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
22193
        for FreeBSD as well.
22194
        * gthr-posix95.h: Likewise.
22195
 
22196
2008-04-17  Richard Sandiford  
22197
 
22198
        PR rtl-optimization/35838
22199
        * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
22200
        out the byte offset of the first subreg.
22201
 
22202
2008-04-17  Uros Bizjak  
22203
 
22204
        * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
22205
        to split_ti instead of three separate calls with single member arrays.
22206
        (subti3 splitter): Ditto.
22207
        (adddi3 splitter): Ditto with split_di.
22208
        (subdi3 splitter): Ditto.
22209
        (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
22210
        two separate calls with single member arrays.  Swap match_dup
22211
        operands 1 and 2 to better fit into the array.
22212
        (negdi2 splitter): Ditto with split_di.
22213
        (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
22214
        two separate calls with single member arrays.  Swap match_dup operands
22215
        6 and 7 to better fit into the array.
22216
 
22217
2008-04-17  H.J. Lu  
22218
 
22219
        * config/i386/i386.c (sse_builtin_type): New.
22220
        (bdesc_sse_args): Likewise.
22221
        (bdesc_sse_3arg): Removed.
22222
        (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
22223
        (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
22224
        IX86_BUILTIN_ROUNDPS.
22225
        (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
22226
        bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
22227
        IX86_BUILTIN_ROUNDPS.
22228
        (ix86_expand_sse_4_operands_builtin): Removed.
22229
        (ix86_expand_sse_operands_builtin): New.
22230
        (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
22231
        and CODE_FOR_sse4_1_roundps.
22232
        (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
22233
        Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
22234
 
22235
2008-04-17  Alan Modra  
22236
 
22237
        PR target/35907
22238
        * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
22239
        regs before frame pop when needed.  If use_backchain_to_restore_sp
22240
        then load backchain into a temp reg to restore vr and vrsave.  Add
22241
        code to restore vr after frame pop if possible.
22242
 
22243
2008-04-17  Richard Guenther  
22244
 
22245
        * tree-vn.c (expressions_equal_p): Do not check type
22246
        equality or compatibility before calling operand_equal_p.
22247
        * fold-const.c (operand_equal_p): Check equivalence of
22248
        integer constants before bailing out due to signedness or
22249
        precision differences.
22250
        * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
22251
        spurious differences in type qualification.  Ignore types
22252
        for COMPONENT_REFs at all.
22253
 
22254
2008-04-17  Christian Bruel  
22255
 
22256
        * config/sh/sh.c (expand_cbranchdi4): Use original operands for
22257
        msw_skip comparison.
22258
 
22259
2008-04-16  Jakub Jelinek  
22260
 
22261
        PR c/35739
22262
        * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
22263
        reg type.
22264
 
22265
        PR tree-optimization/35899
22266
        * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
22267
        rather than TREE_OPERAND.
22268
 
22269
2008-04-16  Uros Bizjak  
22270
 
22271
        PR target/35944
22272
        * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
22273
        temporary registers.  Change operand predicate to general_operand.
22274
        (remainderxf3): Ditto.
22275
 
22276
2008-04-16  Richard Guenther  
22277
 
22278
        * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
22279
        * tree-affine.c (aff_combination_expand): Look through some
22280
        conversions.
22281
 
22282
2008-04-15  Doug Kwan  
22283
 
22284
        * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
22285
        for hex printing.
22286
        * tree-pretty-print.c (dump_generic_node): Ditto.
22287
        * final.c (output_addr_const): Ditto.
22288
        * dwarf2out.c (output_cfi): Ditto.
22289
        * c-pretty-print.c (pp_c_integer_constant): Ditto.
22290
        * print-rtl.c (print_rtx): Ditto.
22291
        * print-tree.c (print_node_brief, print_node): Ditto.
22292
        * c-common.c (match_case_to_enum_1): Ditto.
22293
        * sched-vis.c (print_value): Ditto.
22294
        * config/i386/i386.c (print_operand): Cast to long unsigned int
22295
        for hex printing.
22296
 
22297
2008-04-15  Danny Smith  
22298
        * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
22299
        MS Windows VirtualProtect function.
22300
 
22301
2008-04-15  Jan Hubicka  
22302
 
22303
        * gengtype.c (write_root): Param_is argument is OK.
22304
        * expr.c (expand_expr_real_1): Update call of get_exception_*.
22305
        * function.h: Include varray.h
22306
        (rtl_eh): New stucture based on except.c one.
22307
        (call_site_record): New forward declaration and vector type.
22308
        * calls.c (emit_call_1): Do not call
22309
        note_current_region_may_contain_throw.
22310
        * except.c (eh_status): Remove cur_region, try_region since they are
22311
        unused.
22312
        Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
22313
        exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
22314
        sjlj_fc, sjlj_exit_after to rth_eh in function.h.
22315
        Remove call_site_data_used, call_site_data_size.
22316
        Turn call_site_record into vector in function.h.
22317
        (note_current_region_may_contain_throw): Remove.
22318
        (get_exception_pointer, get_exception_filter): Do not take struct
22319
        function argument; update.
22320
        (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
22321
        add_ttypes_entry, add_ehspec_entry, assign_filter_values,
22322
        build_post_landing_pads, dw2_build_landing_pads,
22323
        sjlj_assign_call_site_values, sjlj_mark_call_sites,
22324
        sjlj_emit_function_enter, sjlj_emit_function_enter,
22325
        sjlj_emit_function_exit, sjlj_emit_dispatch_table,
22326
        sjlj_build_landing_pads, finish_eh_generation,
22327
        remove_exception_handler_label, remove_eh_handler,
22328
        maybe_remove_eh_handler, add_reachable_handler,
22329
        reachable_handlers, expand_builtin_eh_return, expand_eh_return,
22330
        add_action_record, collect_one_action_chain, add_call_site,
22331
        convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
22332
        sjlj_output_call_site_table, output_function_exception_table,
22333
        * except.h (note_current_region_may_contain_throw): Remove
22334
        (get_exception_pointer, get_exception_filter): Do not take struct
22335
        function argument.
22336
        * Makefile.in (GTFILES): Put varargs before struct function.
22337
 
22338
2008-04-15  Eric Botcazou  
22339
 
22340
        * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
22341
        punt for STRING_CST.
22342
        (get_constraint_for): Deal with STRING_CST here instead.
22343
 
22344
2008-04-15  Richard Guenther  
22345
 
22346
        * tree-ssa-propagate.c (substitute_and_fold): Substitute
22347
        statements in a basic-block with a backward walk.  Do not
22348
        substitute into dead statements but instead remove those.
22349
 
22350
2008-04-15  Richard Guenther  
22351
 
22352
        * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
22353
        to zero, thus disable creation of SFTs.
22354
 
22355
2008-04-15  Eric Botcazou  
22356
 
22357
        * tree-predcom.c (suitable_reference_p): Return false if the
22358
        reference can throw.
22359
 
22360
2008-04-15  Jakub Jelinek  
22361
 
22362
        PR c/35751
22363
        * c-decl.c (finish_decl): If extern or static var has variable
22364
        size, set TREE_TYPE (decl) to error_mark_node.
22365
 
22366
2008-04-15  Rafael Espíndola  
22367
 
22368
        * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
22369
        variable arg1.
22370
 
22371
2008-04-15  Richard Guenther  
22372
 
22373
        * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
22374
        * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
22375
        (visit_reference_op_load): Do walk vuse-vdef chains on
22376
        vn_reference_lookup.
22377
        (visit_reference_op_store): But do not here.
22378
        * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
22379
        vn_reference_lookup.
22380
        (vn_lookup_with_vuses): But do so here.
22381
 
22382
2008-04-14  Ian Lance Taylor  
22383
 
22384
        * fold-const.c (fold_overflow_warning): Remove assertion.
22385
 
22386
2008-04-15  Ben Elliston  
22387
 
22388
        * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
22389
        temp1 local variables.
22390
 
22391
2008-04-15  Zuxy Meng  
22392
 
22393
        PR target/35661
22394
        * config/i386/winnt.c (i386_pe_section_type_flags): Mark
22395
        ".text.unlikely" section as executable.
22396
 
22397
2008-04-14  James E. Wilson  
22398
 
22399
        * config/ia64/ia64.c (rtx_needs_barrier): Handle
22400
        UNSPEC_FR_SQRT_RECIP_APPROX_RES.
22401
        * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
22402
        (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
22403
        divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
22404
        divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
22405
        divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
22406
 
22407
2008-04-14  Ian Lance Taylor  
22408
 
22409
        * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
22410
        * fold-const.c (fold_comparison): If appropriate, test
22411
        POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
22412
        (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
22413
        reassociating a pointer type.
22414
        * doc/invoke.texi (Optimize Options): Document that
22415
        -fstrict-overflow applies to pointer wraparound.
22416
 
22417
2008-04-13  Jan Hubicka  
22418
 
22419
        * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
22420
 
22421
2008-04-12  Andrew Pinski  
22422
 
22423
        * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
22424
        we are going to "save the world".
22425
 
22426
2008-04-13  Hans-Peter Nilsson  
22427
 
22428
        * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
22429
        ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
22430
        operand 0 constraint, not "=".
22431
 
22432
2008-04-11  James E. Wilson  
22433
 
22434
        * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
22435
 
22436
2008-04-11  H.J. Lu  
22437
 
22438
        * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
22439
        of size of positions_needed * CHAR_BIT.
22440
 
22441
2008-04-11  H.J. Lu  
22442
 
22443
        PR middle-end/35897
22444
        * dse.c (store_info): Change positions_needed to unsigned
22445
        HOST_WIDE_INT.
22446
        (lowpart_bitmask): New.
22447
        (record_store): Cast to unsigned HOST_WIDE_INT for
22448
        positions_needed.  Assert width <= size of positions_needed *
22449
        CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
22450
        (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
22451
        lowpart_bitmask to set mask.
22452
 
22453
2008-04-11  Bernd Schmidt  
22454
 
22455
        * config/bfin/constraints.md: New file.
22456
        * config/bfin/bfin.md: Include it.
22457
        (adddi3): Use satisfies_constraint functions instead of the old macros.
22458
        * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
22459
        CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
22460
        CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
22461
        CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
22462
        CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
22463
        CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
22464
        EXTRA_CONSTRAINT): Delete.
22465
        * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
22466
        reg_or_neg7bit_operand): Use satisfies_constraint functions instead
22467
        of the old macros.
22468
        * config/bfin/bfin.c: Include "tm-constrs.h".
22469
        (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
22470
        Use satisfies_constraint functions instead of the old macros.
22471
        * doc/md.texi (Blackfin Constraints): Update file name reference.
22472
 
22473
2008-04-11  Richard Guenther  
22474
 
22475
        PR tree-optimization/35869
22476
        * tree-vrp.c (execute_vrp): Move switch statement update after
22477
        jump threading.  Schedule another cfg cleanup run.
22478
 
22479
2008-04-11  Volker Reichelt  
22480
 
22481
        PR c/35744
22482
        * attribs.c (decl_attributes): Return early on errorneous node.
22483
 
22484
2008-04-10  Oleg Ryjkov  
22485
 
22486
        * tree.h (struct tree_base): Added a new flag default_def_flag.
22487
        (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
22488
 
22489
2008-04-11  Kaz Kojima  
22490
 
22491
        * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
22492
 
22493
2008-04-10  John David Anglin  
22494
 
22495
        PR target/35768
22496
        * pa.md: Define mode iterator P.  Define mode attribute dwc.
22497
        (dcacheflush): Update pattern to use iterator P and attribute dwc.
22498
        (icacheflush): Likewise.
22499
        * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
22500
        !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
22501
 
22502
2008-04-11  Ben Elliston  
22503
 
22504
        * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
22505
 
22506
2008-04-10  Rafael Espíndola  
22507
 
22508
        * tree-vrp.c (extract_range_from_binary_expr): Don't handle
22509
        TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
22510
        (extract_range_from_expr): The same.
22511
 
22512
2008-04-10  Adam Nemet  
22513
 
22514
        * config/mips/mips.md (GPR2): New mode iterator.
22515
        (seq): Add comment.
22516
        (*seq_, *seq__mips16, *sne_, *sgt_,
22517
        *sgt__mips16, *sge_, *slt_,
22518
        *slt__mips16 *sle_, *sle__mips16):
22519
        Rewrite these to take two modes, the mode of comparison and the
22520
        mode of the destination.
22521
        * config/mips/mips.c (mips_expand_scc): Instead of having
22522
        paradoxical subreg as destination, expand "narrowing" scc if mode
22523
        of comparison is SI and target is requested in DI mode.
22524
        (mips_emit_int_order_test): Update comment.  Make mode of
22525
        comparison match CMP0 rather than TARGET.  When creating inverse
22526
        target use mode of TARGET.
22527
 
22528
2008-04-10  Adam Nemet  
22529
 
22530
        * gcov-dump.c (tag_summary): Only print summaries for the first
22531
        GCOV_COUNTERS_SUMMABLE counters.
22532
 
22533
2008-04-10  Uros Bizjak  
22534
 
22535
        * config/i386/i386.md (absneg): New code iterator.
22536
        (absnegprefix): New code attribute.
22537
        (2): Macroize expander from abs2 and neg2
22538
        patterns using absneg code iterator.
22539
        (tf2): Macroize expander from abstf2 and negtf2 patterns
22540
        using absneg code iterator.
22541
        (*2_1): Macroize insn pattern from *abs2_1 and
22542
        *neg2 patterns using absneg code iterator.
22543
        (*extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
22544
        *negextendsfdf2 patterns using absneg code iterator.
22545
        (*extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
22546
        *negextendsfxf2 patterns using absneg code iterator.
22547
        (*extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
22548
        *negextendsfdf2 patterns using absneg code iterator.
22549
        * config/i386/sse.md (2): Macroize expander from
22550
        abs2 and neg2 patterns using absneg code iterator.
22551
 
22552
2008-04-10  Andreas Krebbel  
22553
 
22554
        * config/s390/s390.h: Remove the remains of the recent search
22555
        & replace action of current_function_outgoing_args_size.
22556
 
22557
2008-04-10  Ira Rosen  
22558
 
22559
        PR tree-optimization/35821
22560
        * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
22561
        NEW_STMT_LIST is not NULL.
22562
 
22563
2008-04-09  David Edelsohn  
22564
 
22565
        PR libstdc++/35597
22566
        * toplev.c (process_options): Remove -ffunction-sections debugging
22567
        warning.
22568
 
22569
2008-04-09  Peter Bergner  
22570
 
22571
        PR middle-end/PR28690
22572
        * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
22573
        than gen_rtx_fmt_ee to perform more canonicalizations.
22574
 
22575
2008-04-08  John David Anglin  
22576
 
22577
        PR driver/35665
22578
        * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
22579
 
22580
2008-04-09  Richard Guenther  
22581
 
22582
        * tree-cfg.c (verify_stmt): Print complete bogus stmt.
22583
        (dump_function_to_file): Dump function arguments with types.
22584
 
22585
2008-04-08  Richard Guenther  
22586
 
22587
        * fold-const.c (fold_widened_comparison): Do not allow
22588
        sign-changes that change the result.
22589
 
22590
2008-04-08  Janis Johnson  
22591
 
22592
        PR target/35839
22593
        * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
22594
        kinds of indirect references.
22595
 
22596
2008-04-08  David Edelsohn  
22597
 
22598
        * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
22599
        GNU Fortran language string.
22600
 
22601
2008-04-08  Rafael Espíndola  
22602
 
22603
        * fold-canst.c (tree_call_nonnegative_warnv_p): New.
22604
        (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
22605
        * tree.h (tree_call_nonnegative_warnv_p): New.
22606
 
22607
2008-04-08  Jan Hubicka  
22608
 
22609
        * function.c (free_after_compilation): Clear out regno_reg_rtx
22610
        pointer.
22611
 
22612
2008-04-08  Peter Bergner  
22613
 
22614
        Revert
22615
        2008-04-07  Peter Bergner  
22616
 
22617
        PR middle-end/PR28690
22618
        * rtlanal.c (commutative_operand_precedence): Give SYMBOL_REF's the
22619
        same precedence as REG_POINTER and MEM_POINTER operands.
22620
 
22621
2008-04-08  Richard Guenther  
22622
 
22623
        PR middle-end/35834
22624
        * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
22625
        for adding index to base.
22626
 
22627
2008-04-08  Kai Tietz  
22628
 
22629
        * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
22630
        (MINGW_ENABLE_EXECUTE_STACK): New.
22631
        (IN_LIBGCC2): For libgcc include windows.h file for
22632
        function declarations.
22633
 
22634
2008-04-08  Hans-Peter Nilsson  
22635
 
22636
        * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
22637
        and tem2 if tem1 is not a REG or MULT.
22638
 
22639
2008-04-08  Jan Hubicka  
22640
 
22641
        * function.h (incomming_args): Break out of struct function.
22642
        (function_subsections): Break out of struct function.
22643
        (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
22644
        return_rtx and hard_reg_initial_vals from struct function.
22645
        Kill inl_max_label_num.
22646
        (current_function_pops_args, current_function_args_info,
22647
        current_function_args_size, current_function_args_size,
22648
        current_function_pretend_args_size,
22649
        current_function_outgoing_args_size,
22650
        current_function_internal_arg_pointer, current_function_return_rtx):
22651
        Kill compatibility accestor macros.
22652
        * builtins.c (expand_builtin_apply_args_1): Update.
22653
        (expand_builtin_next_arg): Update.
22654
        * df-scan.c (df_get_call_refs): Update.
22655
        * dbxout.c (dbxout_function_end): Update.
22656
        * dwarf2out.c (dwarf2out_switch_text_section): Update.
22657
        (output_line_info): Update.
22658
        (secname_for_decl): Update.
22659
        (dwarf2out_var_location): Update.
22660
        * function.c (free_after_compilation): Update.
22661
        (assign_parm_find_stack_rtl): Update.
22662
        (assign_parms): Update.
22663
        (expand_dummy_function_end): Update.
22664
        (expand_function_end): Update.
22665
        * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
22666
        (expand_call): Update.
22667
        (emit_library_call_value_1): Update.
22668
        (store_one_arg): Update.
22669
        * varasm.c (initialize_cold_section_name): Update.
22670
        (unlikely_text_section): Update.
22671
        (unlikely_text_section_p): Update.
22672
        (assemble_start_function): Update.
22673
        (assemble_end_function): Update.
22674
        (default_section_type_flags): Update.
22675
        (switch_to_section): Update.
22676
        * integrate.c (set_decl_abstract_flags): Update.
22677
        (get_hard_reg_initial_val): Update.
22678
        (has_hard_reg_initial_val): Update.
22679
        (allocate_initial_values): Update.
22680
        * resource.c (init_resource_info): Update.
22681
        * config/alpha/alpha.c (NUM_ARGS): Update.
22682
        (direct_return): Update.
22683
        (alpha_va_start): Update.
22684
        (alpha_sa_size): Update.
22685
        (alpha_initial_elimination_offset): Update.
22686
        (alpha_expand_prologue): Update.
22687
        (alpha_start_function): Update.
22688
        (alpha_expand_epilogue): Update.
22689
        (unicosmk_initial_elimination_offset):
22690
        * config/alpha/alpha.md (call expander): Update.
22691
        * config/s390/s390.c (s390_register_info): Update.
22692
        (s390_register_info): Update.
22693
        (s390_frame_info): Update.
22694
        (s390_initial_elimination_offset): Update.
22695
        (s390_build_builtin_va_list): Update.
22696
        (s390_va_start): Update.
22697
        * config/spu/spu.c (direct_return): Update.
22698
        (spu_expand_prologue): Update.
22699
        (spu_initial_elimination_offset): Update.
22700
        (spu_build_builtin_va_list): Update.
22701
        (spu_va_start): Update.
22702
        * config/sparc/sparc.c (sparc_init_modes): Update.
22703
        (sparc_compute_frame_size): Update.
22704
        (function_value): Update.
22705
        * config/m32r/m32r.c (m32r_compute_frame_size): Update.
22706
        * config/i386/i386.md (return expander): Update.
22707
        * config/i386/i386.c (ix86_va_start): Update.
22708
        (ix86_can_use_return_insn_p): Update.
22709
        (ix86_compute_frame_layout): Update.
22710
        (ix86_expand_epilogue): Update.
22711
        * config/sh/sh.c (output_stack_adjust): Update.
22712
        (calc_live_regs): Update.
22713
        (sh_expand_prologue): Update.
22714
        (sh_builtin_saveregs): Update.
22715
        (sh_va_start): Update.
22716
        (initial_elimination_offset): Update.
22717
        (sh_allocate_initial_value): Update.
22718
        (sh_function_ok_for_sibcall): Update.
22719
        (sh_get_pr_initial_val): Update.
22720
        * config/sh/sh.md (return expander): Update.
22721
        * config/avr/avr.c (frame_pointer_required_p): UPdate.
22722
        * config/crx/crx.c (crx_compute_frame): UPdate.
22723
        (crx_initial_elimination_offset): UPdate.
22724
        * config/xtensa/xtensa.c (compute_frame_size): Update
22725
        (xtensa_builtin_saveregs): Update.
22726
        (xtensa_va_start): Update.
22727
        (order_regs_for_local_alloc): Update.
22728
        * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
22729
        (xstormy16_expand_builtin_va_start): Update.
22730
        * config/fr30/fr30.c (fr30_compute_frame_size): Update.
22731
        * config/m68hc11/m68hc11.md (return expanders): Update.
22732
        * config/m68hc11/m68hc11.c (expand_prologue): Update.
22733
        (expand_epilogue): Update.
22734
        * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
22735
        (cris_simple_epilogue): Update.
22736
        (cris_expand_prologue): Update.
22737
        (cris_expand_epilogue): Update.
22738
        * config/iq2000/iq2000.c (iq2000_va_start): Update.
22739
        (compute_frame_size): Update.
22740
        * config/mt/mt.c (mt_compute_frame_size): Update.
22741
        * config/mn10300/mn10300.c (expand_prologue): Update.
22742
        (expand_epilogue): Update.
22743
        (initial_offset): Update.
22744
        (mn10300_builtin_saveregs):
22745
        * config/mn10300/mn10300.md (return expander): Update.
22746
        * config/ia64/ia64.c (ia64_compute_frame_size): Update.
22747
        (ia64_initial_elimination_offset): Update.
22748
        (ia64_initial_elimination_offset): Update.
22749
        (ia64_expand_prologue): Update.
22750
        * config/m68k/m68k.md (return expander): Update.
22751
        * config/rs6000/rs6000.c (rs6000_va_start): Update.
22752
        (rs6000_stack_info): Update.
22753
        * config/mcore/mcore.c (layout_mcore_frame): Update.
22754
        (mcore_expand_prolog): Update.
22755
        * config/arc/arc.c (arc_compute_frame_size): Update.
22756
        * config/score/score3.c (score3_compute_frame_size): Update.
22757
        * config/score/score7.c (score7_compute_frame_size): Update.
22758
        * config/arm/arm.c (use_return_insn): Update.
22759
        (thumb_find_work_register): Update.
22760
        (arm_compute_save_reg_mask): Update.
22761
        (arm_output_function_prologue): Update.
22762
        (arm_output_epilogue): Update.
22763
        (arm_size_return_regs): Update.
22764
        (arm_get_frame_offsets): Update.
22765
        (arm_expand_prologue): Update.
22766
        (thumb_exit): Update.
22767
        (thumb_unexpanded_epilogue): Update.
22768
        (thumb1_output_function_prologue): Update.
22769
        * config/pa/pa.md (return expander): Update.
22770
        * config/pa/pa.c (compute_frame_size): Update.
22771
        (hppa_builtin_saveregs): Update.
22772
        * config/mips/mips.c (mips_va_start): Update.
22773
        (mips16_build_function_stub): Update.
22774
        (mips_compute_frame_info): Update.
22775
        (mips_restore_gp): Update.
22776
        (mips_output_function_prologue): Update.
22777
        (mips_expand_prologue): Update.
22778
        * config/v850/v850.c (compute_frame_size): Update.
22779
        (expand_prologue): * config/mmix/mmix.c (along): update.
22780
        (mmix_initial_elimination_offset): update.
22781
        (mmix_reorg): update.
22782
        (mmix_use_simple_return): update.
22783
        (mmix_expand_prologue): update.
22784
        (mmix_expand_epilogue): Update.
22785
        * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
22786
        (emit_link_insn): Update.
22787
 
22788
2008-04-08  Anatoly Sokolov  
22789
 
22790
        * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
22791
        __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
22792
        instructions.
22793
        * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
22794
        atmega103 device.
22795
 
22796
2008-04-07  Jan Hubicka  
22797
 
22798
        * function.h (rtl): Rename to x_rtl.
22799
        (crtl): New define.
22800
        (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
22801
        frame_offset, stack_check_probe_note, arg_pointer_save_area,
22802
        used_temp_slots avail_temp_slots, temp_slot_level,
22803
        nonlocal_goto_handler_labels): Update accesstors.
22804
        (rtl): New global variable.
22805
        (struct function): Move some fileds to rtl_data.
22806
        (get_arg_pointer_save_area): Update prototype.
22807
        * builtins.c (expand_builtin_setjmp_receiver): Update call of
22808
        get_arg_pointer_save_area.
22809
        * expr.c (init_expr): Update
22810
        * function.c (get_frame_size): Update
22811
        (assign_stack_local): Update
22812
        (expand_function_end): Update.
22813
        (get_art_pointer_save_area): Update
22814
        * function.h
22815
        * emit-rtl.c (rtl): Declare.
22816
        (regno_reg_rtx): Declare.
22817
        (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
22818
        Update.
22819
        (gen_reg_rtx): Update.
22820
        * varasm.c (n_deferred_constatns): Update accestor.
22821
        (init_varasm_status): Do not allocate varasm_status.
22822
        (force_const_mem, get_pool_size, output_constant_pool): Update.
22823
        * stmt.c (force_label_rtx): Do not use x_ prefixes.
22824
        (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
22825
        * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
22826
        * sparc/sparc.h (INIT_EXPANDERS): Update.
22827
        * ia64/ia64.h (INIT_EXPANDERS): Update.
22828
 
22829
2008-04-07  James E. Wilson  
22830
 
22831
        * reload.c (push_secondary_reload): Add missing break to for loop.
22832
 
22833
2008-04-07  Peter Bergner  
22834
 
22835
        PR middle-end/PR28690
22836
        * rtlanal.c: Update copyright years.
22837
        (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
22838
        as REG_POINTER and MEM_POINTER operands.
22839
        * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
22840
        (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
22841
        * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
22842
        * gcse.c: Update copyright years.
22843
        (pre_delete): Call gen_reg_rtx_and_attrs.
22844
        (hoist_code): Likewise.
22845
        (build_store_vectors): Likewise.
22846
        (delete_store): Likewise.
22847
        * loop-invariant.c (move_invariant_reg): Likewise.
22848
        Update copyright years.
22849
 
22850
2008-04-07  Uros Bizjak  
22851
 
22852
        * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
22853
        control string instead of quoted.
22854
 
22855
2008-04-07  Kenneth Zadeck  
22856
 
22857
        * doc/rtl.texi: Rewrite of subreg section.
22858
 
22859
2008-04-07  Kai Tietz  
22860
 
22861
        PR/35842
22862
        * config/i386/i386.c (legitimize_pic_address): Add treating
22863
        of dllimport SYM_REF's.
22864
        (legitimize_dllimport_symbol): Add prototype.
22865
 
22866
2008-04-07  Eric Botcazou  
22867
 
22868
        * fold-const.c (fold) : New case.  Try to fold constant
22869
        reference in constructor with non self-referential type.
22870
 
22871
2008-04-07  Eric Botcazou  
22872
 
22873
        Removal of Return with Depressed Stack Pointer support
22874
        * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
22875
        (ECF_SP_DEPRESSED): Likewise.
22876
        (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
22877
        * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
22878
        (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22879
        (expand_call): Do not test ECF_SP_DEPRESSED.
22880
        * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22881
        * function.c (keep_stack_depressed): Delete.
22882
        (handle_epilogue_set): Likewise.
22883
        (update_epilogue_consts): Likewise.
22884
        (emit_equiv_load): Likewise.
22885
        (thread_prologue_and_epilogue_insns): Remove support for Return with
22886
        Depressed Stack Pointer.
22887
        * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22888
 
22889
2008-04-06  Richard Guenther  
22890
 
22891
        PR tree-optimization/35400
22892
        * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
22893
        information from SSA_NAMEs.
22894
 
22895
2008-04-06  Anatoly Sokolov  
22896
 
22897
        * config/avr/avr.h (avr_mega_p): Remove declaration.
22898
        (AVR_MEGA): Remove macro.
22899
        * config/avr/avr.c (avr_mega_p): Remove variable.
22900
        (avr_override_options): Remove inicializion of avr_mega_p.
22901
        Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
22902
        (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
22903
        (avr_jump_mode): (Ditto.).
22904
        (avr_output_progmem_section_asm_op): (Ditto.).
22905
        (avr_asm_init_sections): (Ditto.).
22906
        (avr_asm_init_sections): (Ditto.).
22907
        (avr_rtx_costs): (Ditto.).
22908
        * config/avr/avr.md: (Ditto.).
22909
        * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
22910
        '__AVR_MEGA__'.
22911
 
22912
2008-04-06  Richard Guenther  
22913
 
22914
        PR tree-optimization/35842
22915
        * tree-ssa-address.c (fixed_address_object_p): Adjust to match
22916
        is_gimple_invariant_address.
22917
 
22918
2008-04-06  Francois-Xavier Coudert  
22919
 
22920
        * gcc.c (default_compilers): Sync Fortran extensions list with
22921
        that in fortran/lang-specs.h.
22922
        * doc/invoke.texi: Likewise.
22923
        * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
22924
        * dwarf2out.c (gen_compile_unit_die): Likewise.
22925
 
22926
2008-04-06  Tom G. Christensen  
22927
 
22928
        * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
22929
 
22930
2008-04-05  Uros Bizjak  
22931
 
22932
        PR target/12329
22933
        * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
22934
        attribute is used for nested functions.
22935
 
22936
2008-04-05  Jan Hubicka  
22937
 
22938
        * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
22939
 
22940
        * tree-dump.c (dump_enable_all): Remove prototype; do not accept
22941
        letter argument.
22942
        (dump_files): Update.
22943
        (enable_rtl_dump_file): Do not accept letter argument.
22944
        * tree-pass.h (dump_file_info): Remove letter argument.
22945
        * toplev.c (decode_d_option): Update -da handling.
22946
        * toplev.h (enable_rtl_dump_file): Update prototype.
22947
        * passes.c (register_one_dump_file): Do not accept IPA argument; work
22948
        it out based on pass type.
22949
        (register_dump_files_1): Likewise.
22950
        (init_optimization_passes): Update register_one_dump_file calls.
22951
        (execute_one_pass): Sanity check that IPA passes are called at IPA
22952
        level and RTL passes at RTL level.
22953
        (execute_pass_list): IPA pass can not be after or subpass of
22954
        GIMPLE/RTL pass.
22955
        (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
22956
        disallov RTL subpasses of IPA subpasses.
22957
 
22958
2008-04-05  Ben Elliston  
22959
 
22960
        * tree-cfg.c (need_fake_edge_p): Return false for calls to
22961
        builtins that return exactly once and do not throw. Cache call to
22962
        call_expr_flags.
22963
 
22964
2008-04-04  Andy Hutchinson  
22965
 
22966
        PR rtl-optimization/34916
22967
        PR middle-end/35519
22968
        * combine.c (create_log_links): Do not create duplicate LOG_LINKS
22969
        between instruction pairs.
22970
 
22971
2008-04-04  Naveen.H.S  
22972
 
22973
        * doc/invoke.texi: Document -mbitops for SH.
22974
        * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
22975
        * config/sh/predicates.md (bitwise_memory_operand): New predicate.
22976
        * config/sh/sh.c (print_operand): Add %t operand code.
22977
        * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
22978
        * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
22979
        (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
22980
        (extendqihi2): Likewise.
22981
        (movqi_i): Likewise.
22982
        (insv): Use bset, bclr and bst instructions for SH2A if possible.
22983
        (extv): Use bld instruction for SH2A if possible.
22984
        (extzv): Likewise.
22985
        (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
22986
        bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
22987
        bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
22988
        (bset.b, bclr.b): Define peepholes.
22989
        * config/sh/sh.opt (mbitops): New option.
22990
 
22991
2008-04-04  Janis Johnson  
22992
 
22993
        PR target/35620
22994
        * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
22995
        and view convert expression.
22996
 
22997
2008-04-04  Jakub Jelinek  
22998
 
22999
        PR target/35364
23000
        * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
23001
 
23002
2008-04-04  H.J. Lu  
23003
 
23004
        * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
23005
 
23006
        * config/i386/cpuid.h (bit_AES): New.
23007
        (bit_PCLMUL): Likewise.
23008
 
23009
        * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
23010
        (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
23011
        SSE2 if AES or PCLMUL is enabled.
23012
        (ix86_builtins): Add IX86_BUILTIN_AESENC128,
23013
        IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
23014
        IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
23015
        IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
23016
        (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
23017
        (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
23018
        IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
23019
        IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
23020
        (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
23021
        (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
23022
        __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
23023
        __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
23024
        __builtin_ia32_aeskeygenassist128 and
23025
        __builtin_ia32_pclmulqdq128.
23026
        * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
23027
        (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
23028
        IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
23029
 
23030
        * config/i386/i386.h (TARGET_AES): New.
23031
        (TARGET_PCLMUL): Likewise.
23032
        (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
23033
 
23034
        * config/i386/i386.md (UNSPEC_AESENC): New.
23035
        (UNSPEC_AESENCLAST): Likewise.
23036
        (UNSPEC_AESDEC): Likewise.
23037
        (UNSPEC_AESDECLAST): Likewise.
23038
        (UNSPEC_AESIMC): Likewise.
23039
        (UNSPEC_AESKEYGENASSIST): Likewise.
23040
        (UNSPEC_PCLMUL): Likewise.
23041
 
23042
        * config/i386/i386.opt (maes): New.
23043
        (mpclmul): Likewise.
23044
 
23045
        * config/i386/sse.md (aesenc): New pattern.
23046
        (aesenclast): Likewise.
23047
        (aesdec): Likewise.
23048
        (aesdeclast): Likewise.
23049
        (aesimc): Likewise.
23050
        (aeskeygenassist): Likewise.
23051
        (pclmulqdq): Likewise.
23052
 
23053
        * config/i386/wmmintrin.h: New.
23054
 
23055
        * doc/extend.texi: Document AES and PCLMUL built-in function.
23056
 
23057
        * doc/invoke.texi: Document -maes and -mpclmul.
23058
 
23059
2008-04-04  Paolo Bonzini  
23060
 
23061
        * function.c (free_after_parsing): Replace with
23062
        cxx_push_function_context from C++ front-end.
23063
        (allocate_struct_function): Don't call langhook.
23064
        * langhooks.h (struct lang_hooks_for_functions): Delete.
23065
        (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
23066
        member "function".
23067
        * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
23068
        (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
23069
        LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
23070
        LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
23071
        (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
23072
        remove LANG_HOOKS_FUNCTION_INITIALIZER.
23073
        * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
23074
 
23075
        * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
23076
        Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
23077
 
23078
2008-04-04  Jakub Jelinek  
23079
 
23080
        PR c/35440
23081
        * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
23082
        for all types.
23083
 
23084
2008-04-04  Richard Guenther  
23085
 
23086
        PR middle-end/35823
23087
        * fold-const.c (optimize_minmax_comparison): Use the correct
23088
        type for the constant in the simplified comparison.
23089
 
23090
2008-04-04  Zuxy Meng  
23091
 
23092
        * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
23093
        Pass L2 size as "--param l2-cache-size" to the compiler.
23094
        (decode_l2_cache): New function to decode L2 cache parameters using
23095
        0x8000006 extended cpuid function.
23096
        (detect_caches_amd): Determine parameters of L2 cache using
23097
        decode_l2_caches function.
23098
        (decode_caches_intel): Decode L2 cache parameters.
23099
        (detect_caches_intel): Determine L2 cache parameters using
23100
        decode_caches_intel and decode_l2_caches functions.
23101
 
23102
2008-04-03  Bob Wilson  
23103
 
23104
        * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
23105
        secondary input reload for subword loads from the constant pool.
23106
 
23107
2008-04-03  Janis Johnson  
23108
 
23109
        PR target/35713
23110
        * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
23111
          constants of the appropriate size for runtime calculations.
23112
 
23113
        PR c/35712
23114
        * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
23115
          decimal-float literal constant zero.
23116
 
23117
2008-04-03  Jakub Jelinek  
23118
 
23119
        PR c/35738
23120
        * c-parser.c (c_parser_omp_atomic): Call
23121
        default_function_array_conversion on the RHS.
23122
 
23123
        PR middle-end/35818
23124
        * omp-low.c (scan_sharing_clauses) : Don't
23125
        call is_variable_sized if decl has incomplete type.
23126
 
23127
2008-04-03  H.J. Lu  
23128
 
23129
        * config/i386/i386-protos.h (ix86_aligned_p): Removed.
23130
 
23131
2008-04-03  Adam Nemet  
23132
 
23133
        * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
23134
        iterators.
23135
        (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
23136
        (sgt): Merge sgt and sgtu into new expander.
23137
        (sgt, sgtu): Remove expanders.
23138
        (*sgt_): Merge *sgt_ and *sgtu_ into new pattern.
23139
        (*sgt_, *sgtu_): Remove patterns.
23140
        (*sgt__mips16): Merge *sgt__mips16 and
23141
        *sgtu__mips16 into new pattern.
23142
        (*sgt__mips16, *sgtu__mips16): Remove patterns.
23143
        (sge): Merge sge and sgeu into new expander.
23144
        (sge, sgeu): Remove expanders.
23145
        (*sge_): Merge *sge_ and second *sge_ into
23146
        new pattern.
23147
        (*sge_, second *sge_): Remove patterns.
23148
        (slt): Merge slt and sltu into new expander.
23149
        (slt, sltu): Remove expanders.
23150
        (*slt_): Merge *slt_ and *sltu_ into new pattern.
23151
        (*slt_, *sltu_): Remove patterns.
23152
        (*slt__mips16): Merge *slt__mips16 and
23153
        *sltu__mips16 into new pattern.
23154
        (*slt__mips16, *sltu__mips16): Remove patterns.
23155
        (sle): Merge sle and sleu into new expander.
23156
        (sle, sleu): Remove expanders.
23157
        (*sle_): Merge *sle_ and *sleu_ into new pattern.
23158
        (*sle_, *sleu_): Remove patterns.
23159
        (*sle__mips16): Merge *sle__mips16 and
23160
        *sleu__mips16 into new pattern.
23161
        (*sle__mips16, *sleu__mips16): Remove patterns.
23162
 
23163
2008-04-03  Jan Hubicka  
23164
 
23165
        PR tree-optimization/35795
23166
        * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
23167
        * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
23168
        * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
23169
        * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
23170
        * score/score3.c (score3_output_mi_thunk): Likewise.
23171
        * score/score7.c (score7_output_mi_thunk): Likewise.
23172
        * mips/mips.c (mips_output_mi_thunk): Likewise.
23173
 
23174
2008-04-03  Richard Guenther  
23175
 
23176
        * tree-vrp.c (extract_range_from_unary_expr): Handle all
23177
        conversions.  Simplify code.
23178
 
23179
2008-04-03  Kaz Kojima  
23180
 
23181
        * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
23182
 
23183
2008-04-03  Tom Tromey  
23184
            Ralf Wildenhues  
23185
 
23186
        * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
23187
        * config/bfin/t-bfin-linux (generated_files): Add
23188
        linux-sysroot-suffix.h.
23189
        * doc/install.texi (Prerequisites): Require make 3.80.
23190
        * doc/sourcebuild.texi (Front End Directory): Document new
23191
        variable.
23192
        * Makefile.in (generated_files): New variable.
23193
        (ALL_HOST_OBJS): New variable.
23194
        ($(ALL_HOST_OBJS)): New target.
23195
 
23196
2008-04-03  Paolo Bonzini  
23197
 
23198
        * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
23199
        (remap_block): Call id->transform_lang_insert_block instead
23200
        of langhook.
23201
        (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
23202
        Set id.transform_lang_insert_block to NULL.
23203
        (clone_body): Move to cp/optimize.c
23204
        * tree-inline.h (struct copy_body_data): Change
23205
        transform_lang_insert_block to function pointer.
23206
        (copy_generic_body, copy_decl_no_change): Export.
23207
        * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
23208
        * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
23209
        (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
23210
 
23211
        * c-tree.h (insert_block): Kill.
23212
        * c-decl.c (insert_block): Kill.
23213
 
23214
2008-04-03  Paolo Bonzini  
23215
 
23216
        * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
23217
        LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
23218
        * c-tree.h (c_push_function_context, c_pop_function_context): Remove
23219
        argument.
23220
        * c-decl.c (c_push_function_context, c_pop_function_context): Remove
23221
        argument, call {push,pop}_function_context from here.
23222
        * c-parser.c: Use c_{push,pop}_function_context.
23223
 
23224
        * function.c (push_function_context_to): Move meat ...
23225
        (push_function_context): ... here.  Simplify.
23226
        * function.c (pop_function_context_from): Move meat ...
23227
        (pop_function_context): ... here.  Simplify.
23228
        * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
23229
        leave_nested).
23230
        * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
23231
        LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
23232
        (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
23233
        * tree.h (push_function_context_to, pop_function_context_from): Remove.
23234
 
23235
2008-04-03  Ben Elliston  
23236
 
23237
        * expmed.c (extract_force_align_mem_bit_field): Remove.
23238
 
23239
2008-04-03  Richard Guenther  
23240
 
23241
        PR middle-end/35800
23242
        * expr.h (try_casesi): Adjust prototype.
23243
        * expr.c (try_casesi): Take fallback label as extra parameter.
23244
        Use that for gen_casesi if default_label is NULL.
23245
        * stmt.c (expand_case): Pass fallback label to try_casesi,
23246
        make sure to fill gaps with a fallback label if default_label
23247
        is not present.
23248
 
23249
2008-04-03  Dominique d'Humières  
23250
 
23251
        PR target/35801
23252
        * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
23253
 
23254
2008-04-03  Ben Elliston  
23255
 
23256
        * expmed.c (extract_split_bit_field): Remove if (0) code.
23257
        * tree-ssa-structalias.c (do_sd_constraint): Likewise.
23258
        (do_ds_constraint): Likewise.
23259
 
23260
2008-04-02  Joseph Myers  
23261
 
23262
        * doc/cppopts.texi (-dU): Document.
23263
        * c-common.h (flag_dump_macros): Update comment.
23264
        * c-opts.c (handle_OPT_d): Handle -dU.
23265
        * c-ppoutput.c (macro_queue, define_queue, undef_queue,
23266
        dump_queued_macros, cb_used_define, cb_used_undef): New.
23267
        (init_pp_output): Handle -dU.
23268
        (cb_line_change): Call dump_queued_macros.
23269
        * toplev.c (decode_d_option): Accept -dU as preprocessor option.
23270
 
23271
2008-04-02  Anatoly Sokolov  
23272
 
23273
        * config/avr/predicates.md (io_address_operand): New predicate.
23274
        * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
23275
        * config/avr/avr.c (avr_io_address_p): Remove function.
23276
        (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
23277
        'avr_io_address_p' function.
23278
        (out_movhi_r_mr): (Ditto.).
23279
        (out_movqi_mr_r): (Ditto.).
23280
        (out_movhi_mr_r): (Ditto.).
23281
        (avr_address_cost): (Ditto.).
23282
 
23283
2008-04-02  Uros Bizjak  
23284
 
23285
        * config/i386/i386.md (*float2_1):
23286
        Emit gen_floatdi2_i387_with_xmm for DImode values
23287
        in 32bit mode when XMM registers are available to avoid store
23288
        forwarding stalls.
23289
        (floatdi2_i387_with_xmm): New insn pattern and
23290
        corresponding post-reload splitters.
23291
 
23292
2008-04-02  H.J. Lu  
23293
 
23294
        * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
23295
        and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
23296
        __builtin_ia32_roundss.
23297
        (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
23298
        __builtin_ia32_shufpd, __builtin_ia32_roundsd and
23299
        __builtin_ia32_roundss.
23300
        (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
23301
        IX86_BUILTIN_SHUFPD here.
23302
 
23303
2008-04-02  H.J. Lu  
23304
 
23305
        * config/i386/i386.md (plogic): New.
23306
        (plogicprefix): Likewise.
23307
 
23308
        * config/i386/mmx.md (mmx_3): New.
23309
        (mmx_and3): Removed.
23310
        (mmx_ior3): Likewise.
23311
        (mmx_xor3): Likewise.
23312
 
23313
        * config/i386/sse.md (3): New.
23314
        (*3): Likewise.
23315
        (*3): Likewise.
23316
        (3): Likewise.
23317
        (*sse_3): Likewise.
23318
        (*sse2_3): Likewise.
23319
        (tf3): Likewise.
23320
        (*tf3): Likewise.
23321
        (and3): Likewise.
23322
        (*and3): Likewise.
23323
        (ior3): Removed.
23324
        (*ior3): Likewise.
23325
        (xor3): Likewise.
23326
        (*xor3): Likewise.
23327
        (*and3): Likewise.
23328
        (*ior3): Likewise.
23329
        (*xor3): Likewise.
23330
        (and3): Likewise.
23331
        (*sse_and3): Likewise.
23332
        (*sse2_and3): Likewise.
23333
        (andtf3): Likewise.
23334
        (*andtf3): Likewise.
23335
        (ior3): Likewise.
23336
        (*sse_ior3): Likewise.
23337
        (*sse2_ior3): Likewise.
23338
        (iortf3): Likewise.
23339
        (*iortf3): Likewise.
23340
        (xor3): Likewise.
23341
        (*sse_xor3): Likewise.
23342
        (*sse2_xor3): Likewise.
23343
        (xortf3): Likewise.
23344
        (*xortf3): Likewise.
23345
 
23346
2008-04-02  Richard Guenther  
23347
 
23348
        PR tree-optimization/14495
23349
        PR tree-optimization/34793
23350
        * tree-vrp.c (struct switch_update): New structure.
23351
        (to_remove_edges, to_update_switch_stmts): New VECs.
23352
        (simplify_switch_using_ranges): New function.  Remove not taken
23353
        case labels and edges.
23354
        (simplify_stmt_using_ranges): Call it.
23355
        (identify_jump_threads): Mark edges we have queued for removal
23356
        so we don't thread them.
23357
        (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
23358
        case label vector.
23359
        * tree-cfg.c (group_case_labels): Deal with missing default label.
23360
        (tree_verify_flow_info): Allow missing default label.
23361
        * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
23362
        (emit_case_nodes): Likewise.
23363
        (expand_case): Do not rely on the default label to be present.
23364
        * expr.c (try_casesi): Deal with NULL default_label.
23365
        (do_tablejump): Likewise.
23366
 
23367
2008-04-02  Richard Guenther  
23368
 
23369
        PR tree-optimization/14495
23370
        * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
23371
        SWITCH_EXPR here ...
23372
        (vrp_visit_switch_stmt): ... but here (new function).
23373
        (find_case_label_index): New helper function.
23374
        (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
23375
 
23376
2008-04-02  Paolo Bonzini  
23377
 
23378
        * fwprop.c: Fix ISO-C99ism.
23379
 
23380
2008-04-02  Paolo Bonzini  
23381
 
23382
        PR bootstrap/35752
23383
        * Makefile.in (objdir): Set it here.
23384
        * configure.ac: Not here.  Find dynamic linker characteristics.
23385
        * exec-tool.in: Use them.
23386
        * aclocal.m4: Regenerate.
23387
        * configure: Regenerate.
23388
 
23389
2008-04-02  Paolo Bonzini  
23390
 
23391
        * expr.c (expand_var): Delete it.
23392
        * expr.h (expand_var): Delete prototype.
23393
        * function.c (expand_function_start): Use expand_decl instead.
23394
        * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
23395
        langhook.
23396
 
23397
2008-04-02  Andy Hutchinson  
23398
 
23399
        PR rtl-optimization/35542
23400
        * fwprop.c (forward_propagate_and_simplify): Replace
23401
        loc_reg_mentioned_in_p with reg_mentioned_p.
23402
 
23403
2008-04-02  Paolo Bonzini  
23404
 
23405
        PR rtl-optimization/35281
23406
        * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
23407
        (propagate_rtx_1): Handle PR_HANDLE_MEM.
23408
        (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
23409
        (varying_mem_p): Move above propagate_rtx.
23410
        (all_uses_available_at): Do not check MEMs.
23411
 
23412
2008-04-02  Rafael Espíndola  
23413
 
23414
        * tree-vrp.c (extract_code_and_val_from_cond): Remove.
23415
        (register_edge_assert_for_2): Split the cond argument.
23416
        (register_edge_assert_for_1): Adjust for the change in
23417
        register_edge_assert_for_2.
23418
        (register_edge_assert_for): Split the cond argument.
23419
        (find_switch_asserts): Adjust for the change in
23420
        register_edge_assert_for.
23421
 
23422
2008-04-02  Kai Tietz  
23423
 
23424
        * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
23425
        * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
23426
        offsets for 64-bit mingw.
23427
        * config/i386/i386.c (ix86_pass_by_reference): Correct calling
23428
        abi for x86_64-pc-mingw.
23429
 
23430
2008-04-02  Richard Guenther  
23431
 
23432
        * tree-vrp.c (extract_range_from_assert): Make sure to not
23433
        produce range min/max with TREE_OVERFOW set.
23434
        If merging a anti-range and a range keep the anti-range if
23435
        the range covers all values of the type.
23436
        (register_edge_assert_for_2): Only allow sign-changing
23437
        conversions in detecting canonical range checks.  Also
23438
        register an assert for the unsigned name if useful.
23439
 
23440
        PR tree-optimization/35787
23441
        * tree-vrp.c (vrp_val_max): New function.
23442
        (vrp_val_min): Likewise.
23443
        (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
23444
        (vrp_val_is_min): Likewise.
23445
        (supports_overflow_infinity): Use vrp_val_{min,max}.
23446
        (negative_overflow_infinity): Likewise.
23447
        (positive_overflow_infinity): Likewise.
23448
        (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
23449
        (is_positive_overflow_infinity): Likewise.
23450
        (is_overflow_infinity): Likewise.
23451
        (avoid_overflow_infinity): Use vrp_val_{min,max} and
23452
        vrp_val_is_{min,max}.
23453
        (set_and_canonicalize_value_range): Canonicalize anti-ranges
23454
        to ranges if possible.  Avoid empty ranges.
23455
 
23456
2008-04-01  John David Anglin  
23457
 
23458
        PR middle-end/35705
23459
        * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
23460
        the expression is a function address.
23461
 
23462
2008-04-01  George Helffrich  
23463
 
23464
        PR fortran/35154, fortran/23057
23465
        * dbxout.c: Emit .stabs debug info for Fortran COMMON block
23466
        variables as base symbol name + offset using N_BCOMM/N_ECOMM.
23467
        (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
23468
        (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
23469
        in common.
23470
        (dbxout_syms): Check for COMMON-based symbol and wrap in
23471
        N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
23472
        in bracket for efficiency.
23473
 
23474
        * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
23475
        using DW_TAG_common_block + member offset.
23476
        (add_pubname_string): New function.
23477
        (dw_expand_expr): New function to find block name and offset for
23478
        COMMON var.
23479
        (common_check): New function to check whether symbol in Fortran COMMON.
23480
        (gen_variable_die): If COMMON, use DW_TAG_common_block.
23481
 
23482
2008-04-01  Volker Reichelt  
23483
 
23484
        PR c/35436
23485
        * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
23486
 
23487
2008-04-02  Ben Elliston  
23488
 
23489
        * config/v850/v850.md (casesi): Remove if (0) code.
23490
        * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
23491
        * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
23492
 
23493
2008-04-01  Uros Bizjak  
23494
 
23495
        * config/i386/i386.md (rex64suffix): New mode attribute.
23496
        (floathi2): Disable expander for SSE math.
23497
        (*floathi2_1): New insn insn_and_split pattern.
23498
        (*floathi2_i387_with_temp): New macroized instruction pattern and
23499
        corresponding post-reload splitters.
23500
        (*floathi2_i387): New macroized insn pattern.
23501
        (float2): New macroized expander.
23502
        (*float2_1): New macroized
23503
        insn_and_split pattern.
23504
        (*floatsi2_vector_mixed_with_temp, *floatsi2_vector_mixed):
23505
        New macroized instruction patterns and corresponding post-reload
23506
        splitters.
23507
        (*floatsi2_mixed_with_temp): New macroized instruction pattern
23508
        and corresponding post-reload splitters.
23509
        (*floatsi2_mixed_interunit, *floatsi2_mixed_nointerunit):
23510
        New macroized instruction patterns.
23511
        (*floatsi2_vector_sse_with_temp, *floatsi2_vector_sse): New
23512
        macroized instruction patterns and corresponding post-reload splitters.
23513
        (*floatsi2_sse_with_temp): New macroized instruction pattern and
23514
        corresponding post-reload splitters.
23515
        (*floatsi2_sse_interunit, *floatsi2_mixed_nointerunit):
23516
        New macroized instruction patterns.
23517
        (*floatsi2_i387_with_temp): New macroized instruction pattern and
23518
        corresponding post-reload splitters.
23519
        (*floatsi2_i387): New macroized instruction patterns.
23520
 
23521
2008-04-01  H.J. Lu  
23522
 
23523
        * config/i386/i386.md (smaxmin): New.
23524
        (umaxmin): Likewise.
23525
        (maxminiprefix): Likewise.
23526
        (maxminfprefix): Likewise.
23527
        (3): Likewise.
23528
        (smin3): Removed.
23529
        (smax3): Likewise.
23530
 
23531
        * config/i386/mmx.md (mmx_v2sf3): New.
23532
        (mmx_v4hi3): Likewise.
23533
        (mmx_v8qi3): Likewise.
23534
        (mmx_smaxv2sf3): Removed.
23535
        (mmx_sminv2sf3): Likewise.
23536
        (mmx_umaxv8qi3): Likewise.
23537
        (mmx_smaxv4hi3): Likewise.
23538
        (mmx_uminv8qi3): Likewise.
23539
        (mmx_sminv4hi3): Likewise.
23540
 
23541
        * config/i386/sse.md (3): New.
23542
        (*3): Likewise.
23543
        (_vm3): Likewise.
23544
        (3): Likewise.
23545
        (*3_finite): Likewise.
23546
        (*3): Likewise.
23547
        (_vm3): Likewise.
23548
        (sse3_hv4sf3): Likewise.
23549
        (sse3_hv2df3): Likewise.
23550
        (v16qi3): Likewise.
23551
        (*v16qi3): Likewise.
23552
        (v8hi3): Likewise.
23553
        (*v8hi3): Likewise.
23554
        (*sse4_1_3): Likewise.
23555
        (*sse4_1_3): Likewise.
23556
        (add3): Removed.
23557
        (*add3): Likewise.
23558
        (_vmadd3): Likewise.
23559
        (sub3): Likewise.
23560
        (*sub3): Likewise.
23561
        (_vmsub3): Likewise.
23562
        (smin3): Likewise.
23563
        (*smin3_finite): Likewise.
23564
        (*smin3): Likewise.
23565
        (_vmsmin3): Likewise.
23566
        (smax3): Likewise.
23567
        (*smax3_finite): Likewise.
23568
        (*smax3): Likewise.
23569
        (_vmsmax3): Likewise.
23570
        (sse3_haddv4sf3): Likewise.
23571
        (sse3_haddv2df3): Likewise.
23572
        (sse3_hsubv4sf3): Likewise.
23573
        (sse3_hsubv2df3): Likewise.
23574
        (umaxv16qi3): Likewise.
23575
        (*umaxv16qi3): Likewise.
23576
        (smaxv8hi3): Likewise.
23577
        (*smaxv8hi3): Likewise.
23578
        (*sse4_1_smax3): Likewise.
23579
        (*sse4_1_umax3): Likewise.
23580
        (uminv16qi3): Likewise.
23581
        (*uminv16qi3): Likewise.
23582
        (sminv8hi3): Likewise.
23583
        (*sminv8hi3): Likewise.
23584
        (*sse4_1_smin3): Likewise.
23585
        (*sse4_1_umin3): Likewise.
23586
 
23587
2008-04-01  Rafael Espíndola  
23588
 
23589
        * tree-cfg.c (verify_expr): remove in_phi.
23590
        (verify_stmt): Don't call walk_tree with verify_expr. Use
23591
        is_gimple_min_invariant instead of is_gimple_val.
23592
 
23593
2008-04-01  Joseph Myers  
23594
 
23595
        * doc/include/gpl_v3.texi: Update for manpage generation.
23596
        * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
23597
        gpl.texi.
23598
        * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
23599
        * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
23600
        gpl_v3.texi instead of gpl.texi.
23601
        (gpl.pod): New.
23602
 
23603
2008-04-01  Jakub Jelinek  
23604
 
23605
        PR pch/13675
23606
        * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
23607
 
23608
2008-04-01  Rafael Espíndola  
23609
 
23610
        * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
23611
        (extract_code_and_val_from_cond): Use
23612
        extract_code_and_val_from_cond_with_ops.
23613
 
23614
2008-04-01  Jan Hubicka  
23615
 
23616
        * function.c (free_after_compilation): Free epilogue_delay_list.
23617
        (prepare_function_start): Assert that previous compilation was freed.
23618
 
23619
2008-04-01  Jan Hubicka  
23620
            Jim Wilson  
23621
            Andreas Tobler  
23622
 
23623
        PR middle-end/35781
23624
        * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
23625
        rtl.emit instead cfun->emit.
23626
        * sparc/sparc.h (INIT_EXPANDERS): Likewise.
23627
        * ia64/ia64.h (INIT_EXPANDERS): Likewise.
23628
 
23629
2008-04-01  Ben Elliston  
23630
 
23631
        * doc/c-tree.texi (Function Basics): Fix grammatical error.
23632
 
23633
2008-03-31  Seongbae Park  
23634
 
23635
        * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
23636
        New options
23637
        (fprofile-use): Add var flag_profile_use
23638
        * coverage.c (coverage_begin_output): Do not open a gcno file for
23639
        output only if -ftest-coverage is set.
23640
        Do not add getpwd() to gcda file path.
23641
        (build_gcov_info): Check the new flag
23642
        flag_profile_datafile_relative_path.
23643
        (coverage_init): Use profile_data_prefix.
23644
        Read profile counter only if flag_profile_use is set.
23645
        * opts.c (common_handle_option): New option fprofile-use=,
23646
        fprofile-dir=, fprofile-generate=.
23647
        * toplev.c (profile_data_prefix): New variable definition.
23648
        * toplev.h (profile_data_prefix): New declaration.
23649
        * doc/invoke.tex (Option Summary, Optimization Options):
23650
        Add new options.
23651
 
23652
2008-03-31  James E. Wilson  
23653
 
23654
        * varasm.c (output_constant_pool_1): In LABEL_REF check,
23655
        use tmp consistently.
23656
 
23657
        PR target/35695
23658
        * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
23659
        * config/ia64/ia64.c (rtx_needs_barrier): Handle
23660
        UNSPEC_FR_RECIP_APPROX_RES.
23661
        * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
23662
 
23663
2008-03-31  Volker Reichelt  
23664
 
23665
        PR c/35750
23666
        * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
23667
 
23668
2008-03-31  Andrew Pinski  
23669
 
23670
        PR middle-end/30186
23671
        * fold-const.c (fold_indirect_ref_1): Support accessing non first
23672
        element of the vector via a pointer.
23673
 
23674
2008-03-31  Ian Lance Taylor  
23675
 
23676
        * tlink.c (scan_linker_output): Look for symbol name in single quotes.
23677
 
23678
2008-03-31  Jan Hubicka  
23679
 
23680
        * builtins.c (expand_builtin_setjmp_receiver): Update call of
23681
        get_arg_pointer_save_area.
23682
        * expr.c (init_expr): Just clear out rtl.expr.
23683
        * function.c (free_after_compilation): Clear out whole RTL structure.
23684
        (get_func_frame_size): Merge into ...
23685
        (get_frame_size): ... this one.
23686
        (assign_stack_local_1): Merge into ...
23687
        (assign_stack_local): ... this one.
23688
        (expand_function_end): Update call of get_arg_pointer_save_area.
23689
        (get_art_pointer_save_area): Remove cfun argument.
23690
        * function.h (emit_status): regno_pointer_align does not need length
23691
        attribute. Move x_regno_reg_rtx to ...
23692
        (regno_reg_rtx): ... new global array.
23693
        (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
23694
        (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
23695
        apply_args_value, forced_labels, stack_pointer_delta):
23696
        Update accestors.
23697
        (struct varasm_status): Move here from varasm.c
23698
        (struct rtl_data): New. Move here some fields from struct function.
23699
        (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
23700
        frame_offset, stack_check_probe_note, arg_pointer_save_area,
23701
        used_temp_slots avail_temp_slots, temp_slot_level,
23702
        nonlocal_goto_handler_labels): Update accesstors.
23703
        (rtl): New global variable.
23704
        (struct function): Move some fileds to rtl_data.
23705
        (get_arg_pointer_save_area): Update prototype.
23706
        * emit-rtl.c (rtl): Declare.
23707
        (regno_reg_rtx): Declare.
23708
        (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
23709
        Update.
23710
        (gen_reg_rtx): Update.
23711
        (init_virtual_regs): Do not tate emit_status argument.
23712
        (init_emit): Do not allocate emit.
23713
        * varasm.c (varasm_statuc): Move to function.h.
23714
        (n_deferred_constatns): Update accestor.
23715
        (init_varasm_status): Do not allocate varasm_status.
23716
        (force_const_mem, get_pool_size, output_constant_pool): Update.
23717
        * stmt.c (force_label_rtx): Do not use x_ prefixes.
23718
        (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
23719
 
23720
2008-03-31  Zdenek Dvorak  
23721
 
23722
        PR rtl-optimization/35729
23723
        * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
23724
        references.
23725
 
23726
2008-03-31  H.J. Lu  
23727
 
23728
        PR target/32000
23729
        * config/i386/i386.md (*movti_internal): Emit unaligned SSE
23730
        load/store if memory is unaligned.
23731
        (*movti_rex64): Likewise.
23732
 
23733
        * config/i386/predicates.md (misaligned_operand): New.
23734
 
23735
2008-03-31  Andrew Pinski  
23736
 
23737
        PR tree-opt/35431
23738
        * tree-ssa-phiopt.c (conditional_replacement): Return early for
23739
        complex types.
23740
 
23741
2008-03-31  Jan Beulich  
23742
 
23743
        * config/ia64/constraints.md: Add 'j' constraint.
23744
        * config/ia64/ia64.md (movsi_internal): Add addp4 case.
23745
        (movdi_internal): Likewise.
23746
 
23747
2008-03-30  Volker Reichelt  
23748
 
23749
        PR c/35748
23750
        * c-typeck.c (build_c_cast): Skip invalid fields in unions.
23751
 
23752
2008-03-30  H.J. Lu  
23753
 
23754
        PR target/35757
23755
        * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
23756
        proper error message for the third argument on blendpd and
23757
        blendps.
23758
 
23759
        * config/i386/sse.md (blendbits): New.
23760
        (sse4_1_blendp): Use it.
23761
 
23762
2008-03-30  Eric Botcazou  
23763
 
23764
        * fold-const.c (fold_binary) : Add missing conversions.
23765
 
23766
2008-03-30  Richard Guenther  
23767
 
23768
        PR middle-end/31023
23769
        * fold-const.c (fold_sign_changed_comparison): Do leave
23770
        conversions to base-types alone.
23771
 
23772
2008-03-29  Andrew Pinski  
23773
 
23774
        * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
23775
        the link register if one altivec register is be saved.
23776
 
23777
2008-03-30  Ben Elliston  
23778
 
23779
        * final.c (final_scan_insn): Remove if (0) code.
23780
 
23781
2008-03-28  Volker Reichelt  
23782
 
23783
        * c-parser.c (c_parser_next_token_is_keyword): Simplify.
23784
 
23785
2008-03-28  H.J. Lu  
23786
 
23787
        * config/i386/sse.md (*and3): Pass mode instead
23788
        of V4SFmode to ix86_binary_operator_ok.
23789
 
23790
2008-03-28  Uros Bizjak  
23791
 
23792
        * config/i386/i386.c (override_options): Initialize
23793
        ix86_veclib_handler to ix86_veclibabi_svml when
23794
        -mveclibabi=svml is used.
23795
        (ix86_veclibabi_svml): New function for SVML ABI style
23796
        vectorization support.
23797
        * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
23798
 
23799
2008-03-28  Rafael Espíndola  
23800
 
23801
        * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
23802
        (tree_binary_nonnegative_warnv_p): Make it public.
23803
        (tree_single_nonnegative_warnv_p): Make it public.
23804
        (tree_invalid_nonnegative_warnv_p): Make it public.
23805
        (tree_unary_nonzero_warnv_p): Make it public.
23806
        (tree_binary_nonzero_warnv_p): Make it public
23807
        (tree_single_nonzero_warnv_p): Make it public.
23808
        * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
23809
        (extract_range_from_binary_expr): Split the expr argument.
23810
        (extract_range_from_unary_expr): Split the expr argument.
23811
        (extract_range_from_comparison): Split the expr argument.
23812
        (extract_range_from_expr): Use the new aux functions.
23813
        (vrp_evaluate_conditional_warnv): Use
23814
        vrp_evaluate_conditional_warnv_with_ops.
23815
        * tree.h (tree_unary_nonzero_warnv_p): Declare.
23816
        (tree_binary_nonzero_warnv_p): Declare.
23817
        (tree_single_nonzero_warnv_p): Declare.
23818
        (tree_expr_nonzero_warnv_p): Declare.
23819
        (tree_unary_nonnegative_warnv_p): Declare.
23820
        (tree_binary_nonnegative_warnv_p): Declare.
23821
        (tree_single_nonnegative_warnv_p): Declare.
23822
        (tree_invalid_nonnegative_warnv_p): Declare.
23823
 
23824
2008-03-28  Richard Guenther  
23825
 
23826
        PR tree-optimization/30317
23827
        PR tree-optimization/30911
23828
        PR tree-optimization/34793
23829
        * tree-vrp.c (set_and_canonicalize_value_range): New function.
23830
        (struct assert_locus_d): New member EXPR.
23831
        (register_new_assert_for): Add EXPR parameter to support
23832
        ASSERT_EXPR .
23833
        (register_edge_assert_for_1): Adjust callers.
23834
        (find_assert_locations): Likewise.
23835
        (process_assert_insertions_for): Build condition from expression.
23836
        (extract_range_from_assert): Handle ASSERT_EXPRs
23837
        of the form ASSERT_EXPR .
23838
        (register_edge_assert_for_2): New helper registering
23839
        asserts for comparisons.  Recognize range tests of the form
23840
        (unsigned)i - CST1 OP CST2.
23841
        (register_edge_assert_for_1): Use it.
23842
        (register_edge_assert_for): Likewise.
23843
        (needs_overflow_infinity): Integer sub-types
23844
        do not need overflow infinities.
23845
        (vrp_val_is_max): The extreme values of integer sub-types
23846
        are those of the base type.
23847
        (vrp_val_is_min): Likewise.
23848
        * tree.def (ASSERT_EXPR): Document extra allowed conditional
23849
        expressions.
23850
 
23851
2008-03-28  Nick Clifton  
23852
 
23853
        PR target/31110
23854
        * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
23855
        Return GENERAL_REGS for stack adjustment reloads.
23856
 
23857
2008-03-28  Andrew Pinski  
23858
 
23859
        PR target/31334
23860
        * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
23861
        const_vector when all the vectors are constant.
23862
 
23863
2008-03-27  Bob Wilson  
23864
 
23865
        * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
23866
        comparisons.
23867
        * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
23868
        (any_scc_sf): Add uneq, unlt, unle and unordered operators.
23869
        (scc_sf): New.
23870
        (s_sf): Use new scc_sf attribute for opcode names.
23871
 
23872
2008-03-27  Tom Tromey  
23873
 
23874
        * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
23875
        configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
23876
        config/spu/t-spu-elf, config/i386/t-interix,
23877
        config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
23878
        config/i386/x-darwin, config/i386/x-mingw32,
23879
        config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
23880
        config/sh/t-sh, config/sh/t-symbian, config/x-linux,
23881
        config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
23882
        config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
23883
        config/rs6000/x-rs6000, config/rs6000/x-darwin64,
23884
        config/rs6000/x-darwin, config/rs6000/t-rs6000,
23885
        config/score/t-score-elf, config/arm/t-strongarm-pe,
23886
        config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
23887
        config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
23888
        Revert automatic dependency patch.
23889
 
23890
2008-03-27  H.J. Lu  
23891
 
23892
        PR target/35657
23893
        * config/i386/i386.c (ix86_function_arg_boundary): Align
23894
        decimal floating point to its natural boundary.
23895
 
23896
2008-03-27  Richard Guenther  
23897
 
23898
        PR middle-end/35716
23899
        * fold-const.c (fold_comparison): Restrict distinct decl
23900
        comparison folding to VAR_DECLs and PARM_DECLs.  Do not
23901
        solely rely on operand_equal_p.
23902
 
23903
2008-03-27  Richard Guenther  
23904
 
23905
        PR c/32511
23906
        * c-common.c (handle_weak_attribute): Reject combination of
23907
        weak and inline.
23908
 
23909
2008-03-27  Richard Guenther  
23910
 
23911
        PR tree-optimization/32810
23912
        * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
23913
        conversions from DECL_INITIAL.
23914
        (fold_const_aggregate_ref): Likewise from constructor elements.
23915
 
23916
2008-03-27  Zdenek Dvorak  
23917
 
23918
        * tree-affine.h (aff_combination_expand): Declare.
23919
        (get_inner_reference_aff): Likewise.
23920
        * tree-affine.c (aff_combination_expand): Split out from
23921
        tree_to_aff_combination_expand.
23922
        (get_inner_reference_aff): New function.
23923
        * tree-parloops.c (loop_parallel_p): Free vectorizer info.
23924
        * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
23925
        (struct lim_aux_data): sm_done field removed.
23926
        (mem_ref_loc_p, mem_ref_locs_p): New types.
23927
        (struct mem_ref): Added id, stored, accesses_in_loop,
23928
        indep_loop, dep_loop, indep_ref, dep_ref fields.
23929
        Removed is_stored, locs and next fields.
23930
        (memory_accesses): New variable.
23931
        (movement_possibility): Do not allow moving statements
23932
        that store to memory.
23933
        (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
23934
        New functions.
23935
        (determine_max_movement): For statements with memory references,
23936
        find the outermost loop in that the reference is independent.
23937
        (move_computations_stmt): Mark the virtual operands for renaming.
23938
        (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
23939
        gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
23940
        vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
23941
        add_vop_ref_mapping, create_vop_ref_mapping_loop,
23942
        create_vop_ref_mapping, analyze_memory_references,
23943
        cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
23944
        get_all_locs_in_loop, ref_always_accessed_p,
23945
        refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
23946
        ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
23947
        store_motion_loop, store_motion): New functions.
23948
        (struct vop_to_refs_elt): New type.
23949
        (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
23950
        memref_hash, memref_eq, hoist_memory_references): Rewritten.
23951
        (schedule_sm): Replaced by...
23952
        (execute_sm): ... this.
23953
        (determine_lsm_ref, hoist_memory_references,
23954
        loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
23955
        find_more_ref_vops, free_mem_ref, free_mem_refs,
23956
        determine_lsm_loop, determine_lsm): Removed.
23957
        (tree_ssa_lim_finalize): Free data structures used by store motion.
23958
        (tree_ssa_lim): Call analyze_memory_references.  Use
23959
        store_motion instead of determine_lsm.
23960
 
23961
2008-03-27  Paolo Bonzini  
23962
 
23963
        * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
23964
        rename tmake_file to m68hc11/t-m68hc11.
23965
        (mcore): Set inhibit_libc to true.
23966
        * config.host (alpha*-dec-*vms*): Set extra_programs.
23967
        (interix3*): Don't use host_xmake_file.
23968
        * configure.ac: Let config.gcc override inhibit_libc.
23969
        * configure: Regenerate.
23970
 
23971
        * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
23972
        * config/t-openbsd-thread: Remove commented out lines.
23973
 
23974
        * config/x-interix: Remove.
23975
 
23976
        * config/m68hc11/t-m68hc11-gas: Rename to...
23977
        * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
23978
 
23979
        * config/mcore/t-mcore: Remove T_CFLAGS.
23980
        * config/mcore/t-mcore-pe: Likewise.
23981
 
23982
2008-03-27  Paolo Bonzini  
23983
 
23984
        * configure.ac: Replace custom __GNU_SOURCE test with
23985
        AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
23986
        * aclocal.m4: Regenerate.
23987
        * configure: Regenerate.
23988
        * config.in: Regenerate.
23989
 
23990
2008-03-27  Richard Guenther  
23991
 
23992
        * fold-const.c (target.h): Include.
23993
        (fold_comparison): Fold comparison of addresses of decls
23994
        that bind locally or of constants.  Consolidate address folding code.
23995
        * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
23996
        results from fold_binary_to_constant.
23997
        (compare_values_warnv): Likewise.
23998
 
23999
2008-03-27  Andrew Pinski  
24000
 
24001
        PR middle-end/35429
24002
        * fold-const.c (fold_truthop): Check for integeral types when folding
24003
        a == 0 && b == 0 and a != 0 || b != 0 .
24004
 
24005
2008-03-26  Eric Botcazou  
24006
 
24007
        * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
24008
 
24009
2008-03-26  Andreas Schwab  
24010
 
24011
        * doc/invoke.texi: Fix use of @item vs. @itemx.
24012
 
24013
2008-03-26  Tom Tromey  
24014
 
24015
        * Makefile.in (build/gensupport.o, build/print-rtl.o,
24016
        build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
24017
        build/genattrtab.o, build/genautomata.o, build/gencheck.o,
24018
        build/gencodes.o, build/genconditions.o, build/genconfig.o,
24019
        build/genconstants.o, build/genemit.o, build/genextract.o,
24020
        build/genflags.o, build/genmddeps.o, build/genopinit.o,
24021
        build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
24022
        options.h.
24023
 
24024
2008-03-26  Richard Guenther  
24025
 
24026
        Revert
24027
        2008-03-26  Richard Guenther  
24028
 
24029
        * fold-const.c (target.h): Include.
24030
        (fold_comparison): Fold comparison of addresses of two decls
24031
        that bind locally.  Consolidate address folding code.
24032
 
24033
2008-03-26  Kaveh R. Ghazi  
24034
 
24035
        * builtins.c (expand_builtin_pow, fold_builtin_cabs,
24036
        fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
24037
        fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
24038
        dconstsqrt2, dconstthird, dconste and/or dconst10.
24039
        * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
24040
        * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
24041
        dconstsqrt2, dconste): Delete.
24042
        (init_emit_once): Likewise.  Simplify initializing dconstm1.
24043
        Constify variable.
24044
        * real.c (get_real_const): New.
24045
        * real.h (dconst3, dconst10, dconstm2, dconstthird,
24046
        dconstsqrt2, dconste): Delete.
24047
        (real_value_const, get_real_const): New.
24048
 
24049
2008-03-26  H.J. Lu  
24050
 
24051
        * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
24052
 
24053
        * config/i386/i386.c (ix86_function_arg_boundary): Check
24054
        BIGGEST_ALIGNMENT instead of 128.
24055
        (setup_incoming_varargs_64): Likewise.
24056
 
24057
2008-03-26  Tom Tromey  
24058
 
24059
        * Makefile.in (DEPFILES): Add missing '/'.
24060
 
24061
2008-03-26  Richard Guenther  
24062
 
24063
        * fold-const.c (target.h): Include.
24064
        (fold_comparison): Fold comparison of addresses of two decls
24065
        that bind locally.  Consolidate address folding code.
24066
 
24067
2008-03-26  Nick Clifton  
24068
 
24069
        PR target/31232
24070
        * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
24071
        not allow INT+INT as a legitimate addressing mode.
24072
 
24073
2008-03-26  Richard Guenther  
24074
 
24075
        * tree-flow.h (widen_bitfield): Remove declaration.
24076
        * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
24077
        (widen_bitfield): Remove function.
24078
        * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
24079
        code.
24080
 
24081
2008-03-25  Andrew Pinski  
24082
 
24083
        PR target/31558
24084
        * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
24085
        error_mark_node's.
24086
 
24087
2008-03-25  Richard Sandiford  
24088
 
24089
        PR rtl-optimization/35232
24090
        * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
24091
        (forget_old_reloads_1, forget_marked_reloads): Don't clear
24092
        reg_reloaded_call_part_clobbered here.
24093
        (reload_regs_reach_end_p): New function.
24094
        (reload_reg_rtx_for_input): New variable.
24095
        (reload_reg_rtx_for_output): Likewise.
24096
        (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
24097
        when reassigning a pseudo register.  Load reloadreg from
24098
        reload_reg_rtx_for_input, moving the mode and register
24099
        calculation to...
24100
        (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
24101
        instead of the original when deciding whether an input reload
24102
        would be a no-op or whether an output reload can be deleted.
24103
        (emit_output_reload_insns): Use the mode-adjusted reg_rtx
24104
        when setting up new_spill_reg_store.  Load it from
24105
        reload_reg_rtx_for_output, moving the mode and register
24106
        calculation to...
24107
        (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
24108
        instead of the original when deciding whether an output reload
24109
        would be a no-op.  Do the same when modifying insn notes.
24110
        Use rtx_equal_p instead of == to compare the registers.
24111
        (inherit_piecemeal_p): Take a mode and two register numbers
24112
        as argument.
24113
        (emit_reload_insns): Clear new_spill_reg_store for every hard
24114
        register in the reload register.  Remove spill registers
24115
        from reg_reloaded_valid before considering whether to record
24116
        inheritance information for them.  Use reload_reg_rtx_for_output
24117
        instead of reg_rtx when recording output reloads.  Use
24118
        reload_reg_rtx_for_input instead of reg_rtx when recording
24119
        input reloads.  Set or clear reg_reloaded_call_part_clobbered
24120
        at the same time as setting reg_reloaded_valid.
24121
        (delete_output_reload): Add a new_reload_reg parameter and use it
24122
        instead of rld[j].reg_rtx.
24123
        (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
24124
        calls accordingly.
24125
 
24126
2008-03-25  Tom Tromey  
24127
 
24128
        * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
24129
        (build/genattr.o): Likewise.
24130
        (build/genattrtab.o): Likewise.
24131
        (build/gencodes.o): Likewise.
24132
        (build/genconfig.o): Likewise.
24133
        (build/genconstants.o): Likewise.
24134
        (build/genemit.o): Likewise.
24135
        (build/genextract.o): Likewise.
24136
        (build/genflags.o): Likewise.
24137
 
24138
2008-03-25  Bob Wilson  
24139
 
24140
        * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
24141
        instead of size_int for integer types.
24142
        (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
24143
        to match type of MINUS_EXPR.
24144
 
24145
2008-03-25  Tom Tromey  
24146
 
24147
        * configure: Rebuilt.
24148
        * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
24149
        Makefile.
24150
 
24151
2008-03-25  Tom Tromey  
24152
 
24153
        * config/x-solaris (host-solaris.o): Update.
24154
        * config/x-linux (host-linux.o): Update.
24155
        * config/x-hpux (host-hpux.o): Update.
24156
        * config/x-darwin (host-darwin.o): Update.
24157
        * config/v850/t-v850e (v850-c.o): Update.
24158
        * config/v850/t-v850 (v850-c.o): Update.
24159
        * config/t-vxworks (vxworks.o): Update.
24160
        * config/t-sol2 (sol2-c.o, sol2.o): Update.
24161
        * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
24162
        * config/spu/t-spu-elf (spu-c.o): Update.
24163
        (spu.o): Remove.
24164
        * config/sh/t-symbian (sh-c.o): Update.
24165
        (symbian.o): Update.
24166
        * config/sh/t-sh (sh-c.o): Update.
24167
        * config/score/t-score-elf (score7.o, score3.o): Update.
24168
        * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
24169
        * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
24170
        * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
24171
        * config/rs6000/t-rs6000 (rs6000-c.o): Update.
24172
        (rs6000.o): Remove.
24173
        * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
24174
        * config/m32c/t-m32c (m32c-pragma.o): Update.
24175
        * config/ia64/t-ia64 (ia64-c.o): Update.
24176
        * config/i386/x-mingw32 (host-mingw32.o): Update.
24177
        * config/i386/x-i386 (driver-i386.o): Update.
24178
        * config/i386/x-darwin (host-i386-darwin.o): Update.
24179
        * config/i386/x-cygwin (host-cygwin.o): Update.
24180
        * config/i386/t-nwld (nwld.o): Update.
24181
        * config/i386/t-netware (netware.o): Update.
24182
        * config/i386/t-interix (winnt.o): Update.
24183
        * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
24184
        * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
24185
        msformat-c.o): Update.
24186
        * config/bfin/t-bfin-linux (generated_files): Add
24187
        linux-sysroot-suffix.h.
24188
        * config/arm/t-wince-pe (pe.o): Update.
24189
        * config/arm/t-strongarm-pe (pe.o): Update.
24190
        * config/arm/t-pe (pe.o): Update.
24191
        * config/arm/t-arm (arm-c.o): Update.
24192
        * doc/install.texi (Prerequisites): Require make 3.80.
24193
        * Makefile.in: Remove .o targets.
24194
        (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
24195
        (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
24196
        (simple_generated_h, simple_generated_c): Move earlier.
24197
        (generated_files): New variable.
24198
        (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
24199
        TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
24200
        BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
24201
        ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
24202
        REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
24203
        CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
24204
        CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
24205
        INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
24206
        PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
24207
        TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
24208
        DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
24209
        VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
24210
        (.c.o): Remove.
24211
        (COMPILE.base, COMPILE): New variables.
24212
        (%.o): New pattern rule.
24213
        (ALL_HOST_OBJS): New variable.
24214
        (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
24215
        (dummy-checksum.o, cc1-checksum.o): Remove.
24216
        (DRIVER_SHLIB): New variable.
24217
        (DRIVER_DEFINES): Use it.
24218
        (gencondmd.c): Move out of build/.
24219
        (s-conditions): Update.
24220
        (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
24221
        (ALL_BUILD_OBJS): Likewise.
24222
        (build/%.o): Use BUILDCOMPILE.
24223
        (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
24224
        build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
24225
        build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
24226
        build/gencheck.o, build/gencodes.o, build/genconditions.o,
24227
        build/genconfig.o, build/genconstants.o, build/genemit.o,
24228
        build/genextract.o, build/genflags.o, build/genmddeps.o,
24229
        build/genopinit.o, build/genoutput.o, build/genpeep.o,
24230
        build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
24231
        build/gen-protos.o, build/scan.o, build/fix-header.o,
24232
        build/scan-decls.o): Simplify.
24233
        (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
24234
        cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
24235
        prefix.o, toplev.o): Reduce to variable setting.
24236
        (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
24237
        ($(out_object_file), gcc-options.o): New targets.
24238
        ($(ALL_HOST_OBJS)): New target.  Include dependency files.
24239
        * configure: Rebuilt.
24240
        * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
24241
        * doc/sourcebuild.texi (Front End Directory): Document new variable.
24242
 
24243
2008-03-25  Douglas Gregor  
24244
 
24245
        * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
24246
        complain when we hit an error, return ERROR_MARK_NODE.
24247
 
24248
2008-03-25  Naveen.H.S  
24249
 
24250
        * config/sh/constraints.md (Pso, Psz): New constraints.
24251
        * config/sh/sh.c (print_operand): Add %V and %W operand codes.
24252
        * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
24253
 
24254
2008-03-25  Naveen.H.S  
24255
 
24256
        * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
24257
        * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
24258
 
24259
2008-03-25  Naveen.H.S  
24260
 
24261
        * config/sh/sh.md (prefetch): Add condition for SH2A target.
24262
        (prefetch_sh2a): New.
24263
 
24264
2008-03-25  Jayant Sonar  
24265
            Naveen.H.S  
24266
 
24267
        * config/sh/constraints.md (I28): New constraint.
24268
        * config/sh/sh.c (broken_move): Add support for movi20s.
24269
        * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
24270
 
24271
2008-03-25  Anil Paranjape  
24272
            Jayant Sonar  
24273
            Naveen.H.S  
24274
 
24275
        * config/sh/sh.c (SH_ATTRIBUTES): Define.
24276
        (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
24277
        (print_operand): Handle resbank in %@ operand code.
24278
        (sh_encode_section_info): New.
24279
        (push_regs): Add conditions for resbank.
24280
        (sh_expand_epilogue): Likewise.
24281
        (sh_insert_attributes): Likewise.
24282
        (sh_attribute_table): Likewise.
24283
        (sh_handle_resbank_handler_attribute): New.
24284
        (sh2a_handle_function_vector_handler_attribute): New.
24285
        (sh2a_is_function_vector_call): New.
24286
        (sh2a_get_function_vector_number): New.
24287
        (sh2a_function_vector_p): New.
24288
        (sh_cfun_resbank_handler_p): New.
24289
        * config/sh/sh.md (calli): Emit jsr/n if possible.
24290
        (calli_tbr_rel): New.
24291
        (calli_pcrel): Emit jsr/n if possible.
24292
        (return_i): Emit rts/n if possible.
24293
        (call_valuei_tbr_rel): New.
24294
        (call_valuei_pcrel): Add condition for SH2A target.
24295
        (call_value): Likewise.
24296
        * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
24297
        (sh2a_get_function_vector_number): Likewise.
24298
        (sh2a_is_function_vector_call): Likewise.
24299
        * doc/extend.texi: Document TBR relative addressing of SH2A.
24300
        (resbank): Add description for SH2A.
24301
 
24302
2008-03-24  Richard Guenther  
24303
 
24304
        PR c/22371
24305
        * gimplify.c (gimplify_modify_expr): For frontend type-correct
24306
        pointer assignments change conversions according to middle-end rules.
24307
        (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
24308
        * configure.ac: Include type checking in yes.
24309
        * configure: Regenerate.
24310
 
24311
2008-03-24  Manuel Lopez-Ibanez  
24312
 
24313
        * diagnostic.c (diagnostic_count_diagnostic): Delete.
24314
        (diagnostic_report_diagnostic): Update. Handle ICEs here.
24315
 
24316
2008-03-24  Nathan Sidwell  
24317
 
24318
        * gthr-vxworks.h (UNUSED): Define.
24319
 
24320
2008-03-23  H.J. Lu  
24321
 
24322
        * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
24323
 
24324
2008-03-23  Zuxy Meng  
24325
 
24326
        * doc/extend.texi (Function Attributes): Add missing comma in the
24327
        example of the "alloc_size" attribute.
24328
 
24329
2008-03-23  Uros Bizjak  
24330
 
24331
        Revert:
24332
        2008-03-05  H.J. Lu  
24333
 
24334
        * config/i386/i386-modes.def: Use 4 byte alignment on DI for
24335
        32bit host.
24336
 
24337
        2008-03-19  Uros Bizjak  
24338
 
24339
        PR target/35496
24340
        * stor-layout.c (update_alignment_for_field): Set minimum alignment
24341
        of the underlying type of a MS bitfield layout to the natural
24342
        alignment of the type.
24343
 
24344
        2008-03-22  Uros Bizjak  
24345
 
24346
        * config/i386/i386.c (assign_386_stack_local): Align DImode slots
24347
        to their natural alignment to avoid store forwarding stalls.
24348
 
24349
2008-03-22  Richard Guenther  
24350
 
24351
        * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
24352
        For PHI nodes verify the address is invariant.
24353
        * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
24354
        (get_symbol_constant_value): Use is_gimple_min_invariant.
24355
        (maybe_fold_stmt_indirect): Likewise.
24356
 
24357
2008-03-22  Richard Sandiford  
24358
 
24359
        PR rtl-optimization/33927
24360
        * Makefile.in (dse.o): Depend on $(TM_P_H).
24361
        * expr.h (extract_low_bits): Declare.
24362
        * expmed.c (extract_low_bits): New function.
24363
        * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
24364
        * dse.c: Include tm_p.h.
24365
        (find_shift_sequence): Remove the read_reg argument and return the
24366
        read value.  Emit the instructions instead of returning them.
24367
        Iterate on new_mode rather than calculating it each time.
24368
        Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
24369
        source to NEW_MODE and extract_low_bits to convert the shifted
24370
        value to READ_MODE.
24371
        (replace_read): Allow the load and store to have different mode
24372
        classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
24373
        or extraction instructions before trying the replacement.  Update
24374
        dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
24375
 
24376
2008-03-22  Uros Bizjak  
24377
 
24378
        * config/i386/i386.c (assign_386_stack_local): Align DImode slots
24379
        to their natural alignment to avoid store forwarding stalls.
24380
 
24381
2008-03-21  Andrew Pinski  
24382
 
24383
        PR target/27946
24384
        * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
24385
        encouraging but not allowing gprs for input;
24386
        change the input constraint to !f#r.
24387
        (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
24388
        gprs for output;
24389
        change the output constraint to !f#r.
24390
 
24391
2008-03-21  Uros Bizjak  
24392
 
24393
        PR target/13958
24394
        * config/i386/i386.md ("*floatunssi_1"): New pattern with
24395
        corresponding post-reload splitters.
24396
        ("floatunssi2"): Expand to unsigned_float x87 insn pattern
24397
        when x87 FP math is selected.
24398
        * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
24399
        New function prototype.
24400
        * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
24401
        unreachable function to ease macroization of insn patterns.
24402
 
24403
2008-03-21  Martin Jambor  
24404
 
24405
        * tree-data-ref.c (dump_data_dependence_relation): Avoid data
24406
        reference dumps if ddr is NULL or dependence is unknown.
24407
 
24408
2008-03-20  Kaz Kojima  
24409
 
24410
        * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
24411
        unsigned extension into account.
24412
        (ATOMIC_COMPARE_AND_SWAP): Likewise.
24413
        (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
24414
        Do computations on a scratch register.
24415
 
24416
2008-03-21  Richard Guenther  
24417
 
24418
        * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
24419
        Use is_gimple_min_invariant instead of TREE_INVARIANT.
24420
        * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
24421
        * tree-ssa-dom.c (record_equality): Likewise.
24422
        * tree-inline.c (copy_body_r): Likewise.
24423
        * tree-ssa-pre.c (make_values_for_stmt): Remove test for
24424
        TREE_INVARIANT.
24425
 
24426
2008-03-20  Kaz Kojima  
24427
 
24428
        * config/sh/sh.c (split_branches): Pass zero to redirect_jump
24429
        as 'delete_unused' argument.
24430
 
24431
2008-03-20  Richard Guenther  
24432
 
24433
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
24434
        special casing of constant qualifiers.
24435
        * tree-ssa.c (useless_type_conversion_p_1): Instead do not
24436
        care about them in general.
24437
        * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
24438
        regardless of their type.
24439
        (fold_stmt_r): Forcefully fold *& if we end up with that.
24440
 
24441
2008-03-20  Paul Brook  
24442
 
24443
        * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
24444
        * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
24445
        linker flags.
24446
        * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
24447
        definition.
24448
        (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
24449
        * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
24450
 
24451
2008-03-20  Volker Reichelt  
24452
 
24453
        * common.opt (Wmudflap): New option.
24454
        * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
24455
        (mx_register_decls): Likewise.
24456
        (mudflap_finish_file): Likewise.
24457
        * doc/invoke.texi: Document -Wno-mudflap.
24458
 
24459
2008-03-20  Kai Tietz  
24460
 
24461
        * c-format.c (replace_format_name_to_system_name): New.
24462
        (cmp_attribs): New.
24463
        (convert_format_name_to_system_name): New.
24464
        (decode_format_attr): Add use of convert_format_name_to_system_name.
24465
        (format_types_orig): Add gnu_ prefix to names.
24466
        (check_format_info_main): Special treating of \0 escaped names for
24467
        supporting multi-character format specifiers as I32, I64.
24468
        (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
24469
        (gnu_target_overrides_format_attributes): New.
24470
        * c-format.h: Add structure target_ovr_attr to hold
24471
        system specific formatter names.
24472
        * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
24473
        msformat-c.o file to c_target_objs and cxx_target_objs.
24474
        * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
24475
        (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
24476
        (TARGET_N_FORMAT_TYPES): New.
24477
        * config/i386/msformat-c.c: New.
24478
        * config/i386/t-cygming: Add build rule for msformat-c.o.
24479
        * doc/extend.texi: Add new format names gnu_* and ms_* and
24480
        further details.
24481
        * doc/tm.texi (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
24482
 
24483
2008-03-20  Ira Rosen  
24484
 
24485
        * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
24486
        optimizations turned on under -O3.
24487
        (ftree-vectorize): Add that the flag is turned on with -O3.
24488
 
24489
2008-03-20  Ben Elliston  
24490
 
24491
        * regmove.c (try_auto_increment): Fix spelling error in comment.
24492
        * final.c (final_scan_insn): Likewise.
24493
 
24494
2008-03-20  Uros Bizjak  
24495
 
24496
        PR target/14552
24497
        * config/i386/mmx.md (*mov_internal_rex64"): Adjust register
24498
        allocator preferences for "y" and "r" class registers.
24499
        ("*mov_internal"): Ditto.
24500
        ("*movv2sf_internal_rex64"): Ditto.
24501
        ("*movv2sf_internal"): Ditto.
24502
 
24503
2008-03-19  Michael Matz  
24504
 
24505
        PR middle-end/35616
24506
        * calls.c (expand_call): Check overlap of arguments with call
24507
        address for sibcalls.
24508
 
24509
2008-03-19  Uros Bizjak  
24510
 
24511
        PR target/35496
24512
        * stor-layout.c (update_alignment_for_field): Set minimum alignment
24513
        of the underlying type of a MS bitfield layout to the natural
24514
        alignment of the type.
24515
 
24516
2008-03-19  Jan Hubicka  
24517
 
24518
        PR other/35094
24519
        * toplev.c (decode_d_option): Handle all CPP flags.
24520
        * tree-vrp.c: Update tree_pass descriptors.
24521
        * regrename.c: Update tree_pass descriptors.
24522
        * fwprop.c: Update tree_pass descriptors.
24523
        * doc/invoke.texi: Remove documentation of dropped -d? flags.
24524
        * tree-into-ssa.c: Update tree_pass descriptors.
24525
        * tree-dump.c: Update tree_pass descriptors.
24526
        * tree-complex.c: Update tree_pass descriptors.
24527
        * tree-dump.h: Update tree_pass descriptors.
24528
        * see.c: Update tree_pass descriptors.
24529
        * cgraphbuild.c: Update tree_pass descriptors.
24530
        * tracer.c: Update tree_pass descriptors.
24531
        * tree-loop-distribution.c: Update tree_pass descriptors.
24532
        * cgraph.c: Update tree_pass descriptors.
24533
        * postreload-gcse.c: Update tree_pass descriptors.
24534
        * postreload.c: Update tree_pass descriptors.
24535
        * tree-ssa-loop-ch.c: Update tree_pass descriptors.
24536
        * tree-tailcall.c: Update tree_pass descriptors.
24537
        * tree-pass.h (tree_opt_pass): Rename to ...
24538
        (opt_pass) ... this one; add "type" field and remove letter field.
24539
        (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
24540
        (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
24541
        all_lowering_passes): Update declaration.
24542
        * ipa-cp.c: Update tree_pass descriptors.
24543
        * final.c: Update tree_pass descriptors.
24544
        * omp-low.c: Update tree_pass descriptors.
24545
        * tree-ssa-dse.c: Update tree_pass descriptors.
24546
        * ipa-reference.c: Update tree_pass descriptors.
24547
        * tree-ssa-uncprop.c: Update tree_pass descriptors.
24548
        * auto-inc-dec.c: Update tree_pass descriptors.
24549
        * reorg.c: Update tree_pass descriptors.
24550
        * cgraphunit.c: Update tree_pass descriptors.
24551
        * tree-ssa-copyrename.c: Update tree_pass descriptors.
24552
        * tree-ssa-ccp.c: Update tree_pass descriptors.
24553
        * df-core.c: Update tree_pass descriptors.
24554
        * mode-switching.c: Update tree_pass descriptors.
24555
        * tree-nomudflap.c: Update tree_pass descriptors.
24556
        * modulo-sched.c: Update tree_pass descriptors.
24557
        * ipa-pure-const.c: Update tree_pass descriptors.
24558
        * cse.c: Update tree_pass descriptors.
24559
        * web.c: Update tree_pass descriptors.
24560
        * tree-stdarg.c: Update tree_pass descriptors.
24561
        * tree-ssa-math-opts.c: Update tree_pass descriptors.
24562
        * tree-ssa-dom.c: Update tree_pass descriptors.
24563
        * tree-nrv.c: Update tree_pass descriptors.
24564
        * tree-ssa-alias.c: Update tree_pass descriptors.
24565
        * loop-init.c: Update tree_pass descriptors.
24566
        * gimple-low.c: Update tree_pass descriptors.
24567
        * ipa-inline.c: Update tree_pass descriptors.
24568
        * tree-ssa-sink.c: Update tree_pass descriptors.
24569
        * global.c: Update tree_pass descriptors.
24570
        * ifcvt.c: Update tree_pass descriptors.
24571
        * jump.c: Update tree_pass descriptors.
24572
        * predict.c: Update tree_pass descriptors.
24573
        * tree-ssa-loop.c: Update tree_pass descriptors.
24574
        * recog.c: Update tree_pass descriptors.
24575
        * dse.c: Update tree_pass descriptors.
24576
        * tree-ssa-ifcombine.c: Update tree_pass descriptors.
24577
        * tree-eh.c: Update tree_pass descriptors.
24578
        * regmove.c: Update tree_pass descriptors.
24579
        * local-alloc.c
24580
        * function.c: Update tree_pass descriptors.
24581
        * tree-vectorizer.c: Update tree_pass descriptors.
24582
        * gcse.c: Update tree_pass descriptors.
24583
        * ipa-type-escape.c: Update tree_pass descriptors.
24584
        * tree-if-conv.c: Update tree_pass descriptors.
24585
        * init-regs.c: Update tree_pass descriptors.
24586
        * ipa.c: Update tree_pass descriptors.
24587
        * tree-ssa-phiopt.c: Update tree_pass descriptors.
24588
        * rtl-factoring.c: Update tree_pass descriptors.
24589
        * lower-subreg.c: Update tree_pass descriptors.
24590
        * bt-load.c: Update tree_pass descriptors.
24591
        * tree-dfa.c: Update tree_pass descriptors.
24592
        * except.c: Update tree_pass descriptors.
24593
        * emit-rtl.c: Update tree_pass descriptors.
24594
        * cfgexpand.c: Update tree_pass descriptors.
24595
        * tree-cfgcleanup.c: Update tree_pass descriptors.
24596
        * cfgcleanup.c: Update tree_pass descriptors.
24597
        * tree-ssa-pre.c: Update tree_pass descriptors.
24598
        * tree-sra.c: Update tree_pass descriptors.
24599
        * tree-mudflap.c: Update tree_pass descriptors.
24600
        * tree-ssa-copy.c: Update tree_pass descriptors.
24601
        * cfglayout.c: Update tree_pass descriptors.
24602
        * tree-ssa-forwprop.c: Update tree_pass descriptors.
24603
        * tree-ssa-dce.c: Update tree_pass descriptors.
24604
        * tree-ssa.c: Update tree_pass descriptors.
24605
        * regclass.c: Update tree_pass descriptors.
24606
        * integrate.c: Update tree_pass descriptors.
24607
        * tree-optimize.c: Update tree_pass descriptors.
24608
        * tree-ssa-phiprop.c: Update tree_pass descriptors.
24609
        * tree-object-size.c: Update tree_pass descriptors.
24610
        * combine.c: Update tree_pass descriptors.
24611
        * tree-outof-ssa.c: Update tree_pass descriptors.
24612
        * bb-reorder.c: Update tree_pass descriptors.
24613
        * stack-ptr-mod.c: Update tree_pass descriptors.
24614
        * var-tracking.c: Update tree_pass descriptors.
24615
        * tree-profile.c: Update tree_pass descriptors.
24616
        * tree-vect-generic.c: Update tree_pass descriptors.
24617
        * reg-stack.c: Update tree_pass descriptors.
24618
        * sched-rgn.c: Update tree_pass descriptors.
24619
        * tree-ssa-structalias.c: Update tree_pass descriptors.
24620
        * tree-cfg.c: Update tree_pass descriptors.
24621
        * passes.c (current_pass): Update declaration.
24622
        (finish_optimization_passes): Update.
24623
        (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
24624
        (register_one_dump_file, register_dump_files_1, next_pass_1):
24625
        Update arguments.
24626
        (init_optimization_passes): Update handling of new types.
24627
        (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
24628
        * ipa-struct-reorg.c: Update tree_pass descriptors.
24629
        * tree-ssa-reassoc.c: Update tree_pass descriptors.
24630
        * combine-stack-adj.c: Update tree_pass descriptors.
24631
        * cfgrtl.c: Update tree_pass descriptors.
24632
        * dce.c: Update tree_pass descriptors.
24633
        * tree-ssanames.c: Update tree_pass descriptors.
24634
 
24635
2008-03-19  Richard Guenther  
24636
 
24637
        PR middle-end/35609
24638
        * tree-ssa.c (walk_data): New structure.
24639
        (warn_uninitialized_var): If not always_executed warn with "maybe"
24640
        instead of "is".
24641
        (execute_early_warn_uninitialized): Compute post-dominators.
24642
        Initialize always_executed before processing each basic block.
24643
 
24644
2008-03-18  Mikulas Patocka  
24645
 
24646
        PR target/35504
24647
        * config/i386/i386.c (x86_this_parameter): Calculate correct location
24648
        of "this" pointer when "regparm = N" or "fastcall" is in effect.
24649
 
24650
2008-03-18  Ralf Wildenhues  
24651
 
24652
        * doc/include/texinfo.tex: Update to version 2008-03-17.10.
24653
 
24654
2008-03-18  Paolo Bonzini  
24655
 
24656
        * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
24657
        is true.
24658
        (expand_expr_real_1) : Don't look at ignore.
24659
        (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
24660
        is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
24661
        target after ignore has been set, and move there also the commputation
24662
        of subtarget and original_target.
24663
        * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
24664
        (LANG_HOOKS_INITIALIZER): Remove it.
24665
        * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
24666
 
24667
2008-03-18  Richard Guenther  
24668
 
24669
        * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
24670
        found an expression with constants, note that in the VN for the lhs.
24671
        * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
24672
        fold them to constants if possible.  Run cleanup_cfg if done so.
24673
        (execute_pre): Return todo.
24674
        (do_pre): Likewise.
24675
        (execute_fre): Likewise.
24676
        * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
24677
        of constants.
24678
        (get_prop_source_stmt): Look through pointer conversions.
24679
 
24680
2008-03-18  Jan Hubicka  
24681
 
24682
        * tree-pretty-print.c: Include predict.h.
24683
        (dump_generic_node): Dump predictor.
24684
        * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
24685
        * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
24686
        * gimple-low.c (lower_stmt): Likewise.
24687
        * expr.c (expand_expr_real): Likewise.
24688
        * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
24689
        them.
24690
        (build_predict_expr, build_predict_expr): New.
24691
        * predict.h (predictor_name, build_predict_expr): Update.
24692
        * c-typeck.c (c_finish_bc_stmt): Add prediction.
24693
        * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
24694
        * predict.def (PRED_CONTINUE): Update hitrate.
24695
        * tree.def (PREDICT_EXPR): Define.
24696
        * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
24697
        do not handle BIND_EXPR.
24698
        * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
24699
        * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
24700
        * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
24701
        operands.
24702
 
24703
2008-03-18  Michael Matz  
24704
 
24705
        * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
24706
 
24707
2008-03-18  Richard Guenther  
24708
 
24709
        * tree-gimple.h (is_gimple_invariant_address): Declare.
24710
        (is_gimple_constant): Likewise.
24711
        * tree-gimple.c (is_gimple_constant): New function.
24712
        (is_gimple_invariant_address): Likewise.
24713
        (is_gimple_min_invariant): Implement in terms of is_gimple_constant
24714
        and is_gimple_invariant_address.
24715
        * tree-ssa-loop-niter.c (expand_simple_operations): Revert
24716
        previous change.
24717
        * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
24718
        an addressable base.
24719
 
24720
2008-03-18  Jakub Jelinek  
24721
 
24722
        PR middle-end/35611
24723
        * gimplify.c (gimplify_expr): Gimplify second operand of
24724
        OMP_ATOMIC_LOAD.
24725
 
24726
2008-03-17  Richard Guenther  
24727
 
24728
        PR tree-optimization/19637
24729
        * fold-const.c (fold_unary): Remove restrictions of removing
24730
        intermediate pointer-conversions (P2)(P1)P0.
24731
        * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
24732
        conversion to void pointer.
24733
        (get_maxval_strlen): Handle addresses of the form &(*p)[0].
24734
 
24735
2008-03-16  James E. Wilson  
24736
 
24737
        PR debug/31510
24738
        * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
24739
        emulated thread local variables.
24740
 
24741
2008-03-16  Richard Guenther  
24742
 
24743
        PR middle-end/35607
24744
        * tree-ssa-loop-niter.c (expand_simple_operations): Do not
24745
        expand TREE_INVARIANT operations that are not gimple invariant.
24746
 
24747
2008-03-16  Hans-Peter Nilsson  
24748
 
24749
        * doc/extend.texi (Alignment): Say that the ABI controls
24750
        the __alignof__ for non-strict-alignment targets rather
24751
        than being a recommendation.
24752
 
24753
2008-03-15  Paul Brook  
24754
 
24755
        * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
24756
        annotations.
24757
        (arm_output_fn_unwind): Mark functions that can not be unwound.
24758
 
24759
2008-03-15  Paul Brook  
24760
 
24761
        * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
24762
        extension instructions.
24763
 
24764
2008-03-15  Richard Guenther  
24765
 
24766
        * tree-ssa-ccp.c (ccp_fold): Also read from constant values
24767
        and fold constant aggregate refs.
24768
        (fold_const_aggregate_ref): Handle string constants
24769
        and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
24770
        (evaluate_stmt): Simplify now that ccp_fold folds constant
24771
        aggregate refs.
24772
 
24773
2008-03-15  Paul Brook  
24774
 
24775
        * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
24776
        (extzv): Use gen_extzv_t2.
24777
        (insv_t2, insv_zero, extv, extzv_t2): New patterns.
24778
 
24779
2008-03-15  Richard Guenther  
24780
 
24781
        * tree-ssa-ccp.c (get_symbol_constant_value): Export.
24782
        (fold_const_aggregate_ref): Likewise.
24783
        (get_value): Return NULL if we don't have any values.
24784
        (ccp_finalize): Set const_val to NULL after freeing it.
24785
        * tree-flow.h (get_symbol_constant_value): Declare.
24786
        (fold_const_aggregate_ref): Likewise.
24787
        * tree-ssa-sccvn.c (try_to_simplify): Use them.
24788
 
24789
2008-03-15  Richard Guenther  
24790
 
24791
        PR middle-end/35593
24792
        * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
24793
        to not produce negative array indices if not allowed.  Add
24794
        parameter to indicate that.
24795
        (maybe_fold_offset_to_component_ref): Allow negative array
24796
        indices only for the first member of a structure.
24797
        (maybe_fold_offset_to_reference): Allow negative array indices.
24798
        (maybe_fold_stmt_addition): Likewise.
24799
 
24800
2008-03-15  Bjoern Haase  
24801
            Anatoly Sokolov  
24802
 
24803
        * config/avr/avr.c (avr_arch_types): Add avr6 entry.
24804
        (avr_arch): Add ARCH_AVR6.
24805
        (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
24806
        (initial_elimination_offset): Initialize and use 'avr_pc_size'
24807
        instead of fixed value 2.
24808
        (print_operand_address): Use gs() asm specifier instead of pm().
24809
        (avr_assemble_integer): (Ditto.).
24810
        (avr_output_addr_vec_elt): (Ditto.).
24811
        (print_operand): Handle "!" code.
24812
        * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
24813
        __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
24814
        (AVR_HAVE_EIJMP_EICALL): Define.
24815
        (AVR_3_BYTE_PC): Redefine.
24816
        (AVR_2_BYTE_PC): (Ditto.).
24817
        (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
24818
        (LINK_SPEC): Add atmega2560 and atmega2561.
24819
        (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
24820
        (crtm2561.o).
24821
        * config/avr/avr.md (call_insn): Use eicall instead of icall
24822
        for 3 byte PC devices.
24823
        (call_value_insn): (Ditto.).
24824
        (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
24825
        (indirect_jump): Use only for for 2 byte PC devices.
24826
        (*tablejump): (Ditto.).
24827
        (*indirect_jump_avr6): Add insn.
24828
        (*tablejump_rjmp): Don't use for 3 byte PC devices.
24829
        * config/avr/libgcc.S (__prologue_saves__): Use eijmp
24830
        instead of ijmp for 3 byte PC devices.
24831
        (__tablejump2__): (Ditto.).
24832
        * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
24833
        (MULITLIB_DIRNAMES): (Ditto.).
24834
        (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
24835
 
24836
2008-03-15  Uros Bizjak  
24837
 
24838
        * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
24839
        "sse2_umulsidi3".  Use V1DI mode for operand 0.
24840
        ("mmx_psadbw"): Use V1DI mode for operand 0.
24841
        * config/i386/i386-modes.def (V1SI): New vector mode.
24842
        * config/i386/i386.c (struct builtin_description)
24843
        [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
24844
        (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
24845
        (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
24846
        (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
24847
        v1di_ftype_v8qi_v8qi type.
24848
        [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
24849
 
24850
        * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
24851
        __builtin_ia32_pmuludq]: Fix the mode of return value.
24852
 
24853
2008-03-15  Richard Guenther  
24854
 
24855
        PR middle-end/35595
24856
        * tree-ssa-pre.c (bitmap_find_leader): Handle expression
24857
        being a PHI_NODE.
24858
 
24859
2008-03-14  Bob Wilson  
24860
 
24861
        * doc/invoke.texi (Option Summary, Xtensa Options): Document
24862
        -mserialize-volatile and -mno-serialize-volatile Xtensa options.
24863
        * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
24864
        unless TARGET_SERIALIZE_VOLATILE is enabled.
24865
        * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
24866
        * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
24867
        * config/xtensa/xtensa.opt (mserialize_volatile): New option.
24868
 
24869
2008-03-14  Richard Guenther  
24870
 
24871
        PR tree-optimization/34172
24872
        * tree-flow.h (refs_may_alias_p): Declare.
24873
        (get_single_def_stmt): Likewise.
24874
        (get_single_def_stmt_from_phi): Likewise.
24875
        (get_single_def_stmt_with_phi): Likewise.
24876
        * tree-dfa.c (refs_may_alias_p): New function.
24877
        (get_single_def_stmt): Likewise.
24878
        (get_single_def_stmt_from_phi): Likewise.
24879
        (get_single_def_stmt_with_phi): Likewise.
24880
        * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
24881
        (vn_reference_lookup_1): New helper function.
24882
        (vn_reference_lookup): Walk the virtual use-def chain to
24883
        continue searching for a match if the def does not alias the
24884
        reference we are looking for.
24885
 
24886
2008-03-14  David Edelsohn  
24887
 
24888
        * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
24889
        archive and Perzl.  Update The Written Word listing.
24890
 
24891
2008-03-14  Richard Guenther  
24892
 
24893
        PR tree-optimization/34043
24894
        PR tree-optimization/33989
24895
        * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
24896
        when doing FRE.
24897
        (bitmap_find_leader): Use extra argument to verify dominance
24898
        relationship inside a basic-block.
24899
        (can_PRE_operation): Add VIEW_CONVERT_EXPR.
24900
        (find_leader_in_sets): Adjust.
24901
        (create_component_ref_by_pieces): Take extra argument for
24902
        dominance check, handle lookup failures.
24903
        (find_or_generate_expression): Likewise.
24904
        (create_expression_by_pieces): Likewise.
24905
        (insert_into_preds_of_block): Adjust.
24906
        (create_value_expr_from): If asked for, verify all operands
24907
        are in the blocks AVAIL_OUT set.
24908
        (make_values_for_stmt): Check for SSA_NAMEs that are life
24909
        over an abnormal edge.
24910
        (compute_avail): Remove such check.
24911
        (do_SCCVN_insertion): New function.
24912
        (eliminate): If we do not find a leader suitable for replacement
24913
        insert a replacement expression from SCCVN if available.
24914
        * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
24915
        (struct vn_ssa_aux): Add needs_insertion flag.
24916
        * tree-ssa-sccvn.c (may_insert): New global flag.
24917
        (copy_reference_ops_from_ref): Value-number union member access
24918
        based on its size, not type and member if insertion is allowed.
24919
        (visit_reference_op_load): For a weak match from union type
24920
        punning lookup a view-converted value and insert a SSA_NAME
24921
        for that value if that is not found.
24922
        (visit_use): Make dumps shorter.  Do not disallow value numbering
24923
        SSA_NAMEs that are life over an abnormal edge to constants.
24924
        (free_scc_vn): Release inserted SSA_NAMEs.
24925
        (run_scc_vn): New flag to specify whether insertion is allowed.
24926
        Process SSA_NAMEs in forward order.
24927
        * tree-ssa-loop-im.c (for_each_index): Handle invariant
24928
        ADDR_EXPRs inside VIEW_CONVERT_EXPR.
24929
        * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
24930
        pointer type to/from integral types that do not change the
24931
        precision to regular conversions.
24932
 
24933
2008-03-13  Uros Bizjak  
24934
 
24935
        * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
24936
        __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
24937
        __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
24938
        __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
24939
        input arguments and the mode of return value.  Built-in functions
24940
        that operate on whole 64-bit MMX register now use V1DI mode.
24941
 
24942
2008-03-13  Alon Dayan  
24943
            Olga Golovanevsky  
24944
 
24945
        PR tree-optimization/35041
24946
        * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
24947
        to locate the right position in a statement.
24948
 
24949
2008-03-13  Uros Bizjak  
24950
 
24951
        PR target/34000
24952
        PR target/35553
24953
        * config/i386/xmmintrin.h:  Change all static inline functions to
24954
        extern inline and add __gnu_inline__ attribute.
24955
        * config/i386/bmintrin.h: Ditto.
24956
        * config/i386/smmintrin.h: Ditto.
24957
        * config/i386/tmmintrin.h: Ditto.
24958
        * config/i386/mmintrin-common.h: Ditto.
24959
        * config/i386/ammintrin.h: Ditto.
24960
        * config/i386/emmintrin.h: Ditto.
24961
        * config/i386/pmmintrin.h: Ditto.
24962
        * config/i386/mmintrin.h: Ditto.
24963
        * config/i386/mm3dnow.h: Ditto.
24964
 
24965
2008-03-13  Jakub Jelinek  
24966
 
24967
        PR middle-end/35185
24968
        * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
24969
        (lower_omp_2): New function.
24970
        (lower_omp_1, lower_omp): Rewritten.
24971
 
24972
2008-03-13  Danny Smith  
24973
 
24974
        PR 35054
24975
        * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
24976
        with the phrase "Microsoft Windows compilers".
24977
        (Push/Pop Macro Pragmas): New subsection. Document
24978
        #pragma push_macro and pragma pop_macro.
24979
 
24980
2008-03-12  Paul Brook  
24981
 
24982
        * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
24983
 
24984
2008-03-12  Paul Brook  
24985
 
24986
        * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
24987
        (thumb2_alusi3_short): Exclude PLUS and MINUS.
24988
        (thumb2_addsi_shortim): Rename ...
24989
        (thumb2_addsi_short): ... to this.  Allow register operands.
24990
        (thumb2_subsi_short): New pattern.
24991
        (thumb2_one_cmplsi2_short,
24992
        thumb2_negsi2_short): New patterns and peepholes.
24993
 
24994
2008-03-12  Paul Brook  
24995
 
24996
        * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
24997
 
24998
2008-03-12  Uros Bizjak  
24999
 
25000
        * config/i386/i386.md (int_cond): New code iterator.
25001
        (fp_cond): Ditto.
25002
        ("s"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
25003
        sge, sgeu, sle and sleu expanders usign int_cond code iterator.
25004
        ("s"): Macroize expander from sunordered, sordered, suneq, sunge,
25005
        sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
25006
        ("b"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
25007
        bge, bgeu, ble and bleu expanders usign int_cond code iterator.
25008
        ("b"): Macroize expander from bunordered, bordered, buneq, bunge,
25009
        bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
25010
 
25011
2008-03-12  Paul Brook  
25012
 
25013
        * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
25014
        instead of {arm,thumb}_compute_save_reg_mask.
25015
        (output_return_instruction): Ditto.
25016
        (thumb_unexpanded_epilogue): Ditto.
25017
        (thumb1_expand_prologue): Ditto.
25018
        (thumb1_output_function_prologue): Ditto.
25019
        (arm_set_return_address): Ditto.
25020
        (thumb_set_return_address): Ditto.
25021
        (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
25022
        regs to achieve stack alignment.
25023
        (thumb1_compute_save_reg_mask): Fix compiler warning.
25024
        (arm_output_epilogue): Use offsets->saved_regs_mask.
25025
        Adjust stack pointer by poping call clobered registers.
25026
        (arm_expand_prologue): Use offsets->saved_regs_mask.
25027
        Adjust stack pointer by pushing extra registers.
25028
        * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
25029
 
25030
2008-03-12  Paolo Bonzini  
25031
 
25032
        PR tree-opt/35422
25033
        * fold-const.c (fold_unary) : Distribute a narrowing
25034
        conversion to the operands of a multiplication.
25035
 
25036
2008-03-12  Richard Guenther  
25037
 
25038
        * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
25039
        (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
25040
        * timevar.def (TV_TREE_PHIPROP): Add.
25041
        * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
25042
        pass description.  Use TV_TREE_PHIPROP.
25043
        * tree-ssa-forwprop.c: Remove phiprop code.
25044
 
25045
2008-03-12  Jakub Jelinek  
25046
 
25047
        PR middle-end/35549
25048
        * omp-low.c (maybe_lookup_decl): Constify first argument.
25049
        (use_pointer_for_field): Change last argument from bool to
25050
        omp_context *.  Disallow shared copy-in/out in nested
25051
        parallel if decl is shared in outer parallel too.
25052
        (build_outer_var_ref, scan_sharing_clauses,
25053
        lower_rec_input_clauses, lower_copyprivate_clauses,
25054
        lower_send_clauses, lower_send_shared_vars): Adjust callers.
25055
 
25056
2008-03-12  Victor Kaplansky  
25057
            Ira Rosen  
25058
 
25059
        * tree-vectorizer.c (free_stmt_vec_info): New function.
25060
        (destroy_loop_vec_info): Move code to free_stmt_vec_info().
25061
        Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
25062
        * tree-vectorizer.h (free_stmt_vec_info): Declare.
25063
        * tree-vect-transform.c (vectorizable_conversion): Free
25064
        vec_oprnds0 if it was allocated.
25065
        (vect_permute_store_chain): Remove unused VECs.
25066
        (vectorizable_store): Free VECs that are allocated in the..
25067
        function.
25068
        (vect_transform_strided_load, vectorizable_load): Likewise.
25069
        (vect_remove_stores): Simplify the code.
25070
        (vect_transform_loop): Move code to vect_remove_stores().
25071
        Call vect_remove_stores() and free_stmt_vec_info().
25072
 
25073
2008-03-11  John David Anglin  
25074
 
25075
        * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
25076
        TARGET_HPUX.  Revise comment.
25077
        (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
25078
        * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
25079
        Use sr4 variant of `be' instruction when not generating PIC code.
25080
        (attr_length_call): Adjust for above change.
25081
 
25082
2008-03-11  Andrew Pinski  
25083
 
25084
        * ipa-reference.c (static_execute): Remove module_statics_const and
25085
        associated setting code.
25086
 
25087
2008-03-11  Uros Bizjak  
25088
 
25089
        PR target/35540
25090
        * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
25091
        predicate for operand 1.
25092
        (paritysi2_cmp): Use register_operand predicate for operand 2.
25093
        Use earlyclobber modifier for operand 1.  Remove support for
25094
        memory operands.
25095
        (paritydi2_cmp): Use register_operand predicate for operand 3.
25096
        Use earlyclobber modifier for operand 1.  Remove support for
25097
        memory operands.
25098
 
25099
2008-03-11  Paul Brook  
25100
            Vladimir Prus  
25101
 
25102
        * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
25103
        (arm_compute_save_reg0_reg12_mask): Always
25104
        check if register 11 must be saved.  Always safe hard frame pointer
25105
        when frame_pointer_needeed.
25106
        (arm_compute_save_reg_mask): Save IP and PC
25107
        only with apcs frames.
25108
        (arm_output_epilogue): Adjust Thumb2 codepath to
25109
        be also invoked and work for ARM non-apcs frames.
25110
        (arm_expand_prologue): Don't bother saving IP
25111
        for non-apcs frame, since it's not clobbered by
25112
        prologue code.  Implement non-apcs frame
25113
        layout.
25114
 
25115
2008-03-11  Paolo Bonzini  
25116
 
25117
        PR rtl-optimization/35281
25118
        * expr.c (convert_move): Use a new pseudo for the intermediate
25119
        from_mode->word_mode result.
25120
 
25121
2008-03-11  Paolo Bonzini  
25122
 
25123
        * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
25124
        * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
25125
        * toplev.c (compile_file): Don't call it.
25126
 
25127
2008-03-11  Uros Bizjak  
25128
 
25129
        PR middle-end/35526
25130
        * expr.c (store_expr): Call emit_block_move if the mode
25131
        of "temp" RTX is BLKmode.
25132
 
25133
2008-03-11  Andrew Pinski  
25134
            Richard Guenther  
25135
 
25136
        PR tree-optimization/31358
25137
        * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
25138
        the step with a NULL_TREE.
25139
        * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
25140
        to sizetype if type is a pointer type.
25141
        (add_candidate_1): Don't convert the base and step to
25142
        the generic type if the orginal type is a pointer type.
25143
        (add_iv_value_candidates): Use sizetype for the step
25144
        if type is a pointer type.
25145
        (cand_value_at): Likewise.
25146
        * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
25147
        for pointer types.
25148
        * tree-affine.c (tree_to_aff_combination ):
25149
        Don't convert the tem affine to the type.
25150
        (add_elt_to_tree): Use sizetype for the step if a pointer.
25151
        Use POINTER_PLUS_EXPR for pointers.
25152
        (aff_combination_to_tree): Use sizetype for the step if a
25153
        pointer.
25154
 
25155
2008-03-10  Vladimir Makarov  
25156
 
25157
        * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
25158
        Remove commutativity hint.
25159
 
25160
2008-03-10  Jakub Jelinek  
25161
 
25162
        PR c/35438
25163
        PR c/35439
25164
        * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
25165
        errorneous type.  Check that v is a VAR_DECL.
25166
 
25167
        PR middle-end/35099
25168
        * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
25169
 
25170
2008-03-10  H.J. Lu  
25171
 
25172
        PR tree-optimization/35494
25173
        * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
25174
        may be overriden at link and run time.
25175
 
25176
2008-03-10  Richard Guenther  
25177
 
25178
        PR tree-optimization/34677
25179
        * tree-ssa-pre.c (modify_expr_node_pool): Remove.
25180
        (poolify_tree): Likewise.
25181
        (modify_expr_template): Likewise.
25182
        (poolify_modify_stmt): Likewise.
25183
        (insert_fake_stores): Handle all component-ref style stores
25184
        in addition to INDIRECT_REF.  Also handle complex types.
25185
        Do not poolify the inserted load.
25186
        (realify_fake_stores): Do not rebuild the tree but only
25187
        make it a SSA_NAME copy.
25188
        (init_pre): Remove initialzation of modify_expr_template.
25189
        Do not allocate modify_expr_node_pool.
25190
        (fini_pre): Do not free modify_expr_node_pool.
25191
 
25192
2008-03-10  Paul Brook  
25193
 
25194
        * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
25195
        to avoid conflicts.
25196
 
25197
2008-03-10  Paul Brook  
25198
            Mark Shinwell  
25199
 
25200
        * config/arm/cortex-r4.md: New.
25201
        * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
25202
        insn attributes.
25203
        * config/arm/arm.md: Include cortex-r4.md.
25204
        (insn): Add smmls, sdiv and udiv values.
25205
        (generic_sched): Don't use generic scheduling for Cortex-R4.
25206
        (arm_issue_rate): New function.
25207
        (TARGET_SCHED_ISSUE_RATE): Define.
25208
 
25209
2008-03-10  Sebastian Pop  
25210
 
25211
        * doc/invoke.texi (-ftree-loop-distribution): Add an example.
25212
 
25213
2008-03-10  Richard Guenther  
25214
 
25215
        * tree-ssa-pre.c (get_sccvn_value): Simplify.
25216
        (compute_avail): Do not add stmt uses to AVAIL_OUT.
25217
 
25218
2008-03-10  Paolo Bonzini  
25219
 
25220
        * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
25221
        Set default to true.
25222
 
25223
2008-03-09  Ralf Wildenhues  
25224
 
25225
        * c.opt (Wsynth): Deprecate.
25226
        * doc/invoke.texi (Option Summary, Warning Options): Document
25227
        -Wno-format-contains-nul.
25228
 
25229
2008-03-09  Uros Bizjak  
25230
 
25231
        PR target/35496
25232
        * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
25233
        ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
25234
 
25235
2008-03-09  Ira Rosen  
25236
 
25237
        * config/rs6000/rs6000.c (builtin_description): Rename vector
25238
        left shift operations.
25239
        * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
25240
        (altivec_vsl): Rename to ...
25241
        (ashl3): ... new name.
25242
        (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
25243
        gen_ashlv4si3.
25244
        (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
25245
 
25246
2008-03-08  Richard Guenther  
25247
 
25248
        * coverage.h (tree_coverage_counter_addr): Declare.
25249
        * coverage.c (tree_coverage_counter_addr): New function.
25250
        * tree-profile.c (tree_gen_edge_profiler): Unshare counter
25251
        before using again.
25252
        (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
25253
        (tree_gen_one_value_profiler): Likewise.
25254
        (tree_gen_ic_profiler): Likewise.
25255
        (tree_gen_average_profiler): Likewise.
25256
        (tree_gen_ior_profiler): Likewise.
25257
 
25258
2008-03-08  Richard Guenther  
25259
 
25260
        * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
25261
        (vn_binary_op_insert): Likewise.
25262
        (vn_unary_op_lookup): Likewise.
25263
        (vn_unary_op_insert): Likewise.
25264
        (vn_nary_op_lookup): Declare.
25265
        (vn_nary_op_insert): Likewise.
25266
        * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
25267
        and binary hashes, use a single obstack for unary_op_pool
25268
        and binary_op_pool.
25269
        (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
25270
        a single struct vn_nary_op_s.  Store tree code length and
25271
        a variable number of operands.
25272
        (struct vn_reference_op_struct): Remove unused op2.
25273
        (vn_reference_op_eq): Do not compare op2.
25274
        (vn_reference_op_compute_hash): Do not compute hash of op2.
25275
        (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
25276
        (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
25277
        with vn_nary_op_compute_hash.
25278
        (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
25279
        (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
25280
        vn_nary_op_lookup.
25281
        (vn_unary_op_insert, vn_binary_op_insert): Replace with
25282
        vn_nary_op_insert.
25283
        (visit_unary_op): Call nary functions.
25284
        (visit_binary_op): Likewise.
25285
        (process_scc): Adjust for struct vn_tables_s changes.
25286
        (allocate_vn_table): Likewise.
25287
        (free_vn_table): Likewise.
25288
        * tree-vn.c (vn_add): Call nary functions.
25289
        (vn_lookup): Likewise.
25290
 
25291
2008-03-08  Jakub Jelinek  
25292
 
25293
        PR target/35498
25294
        * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
25295
        wdst back after sync_compare_and_swapqhi_internal.
25296
 
25297
2008-03-08  Uros Bizjak  
25298
 
25299
        PR target/22152
25300
        * config/i386/i386-modes.def (V1DI): New vector mode.
25301
        * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
25302
        * config/i386/mmx.md (MMXMODEI8): New mode iterator.
25303
        (MMXMODE248): Ditto.
25304
        (MMXMODE): Add V1DI mode.
25305
        (mmxvecsize): Change DI mode to V1DI mode.
25306
        ("mov): Use MMXMODEI8 mode iterator.
25307
        ("*mov_internal_rex64"): Ditto.
25308
        ("*mov_internal"): Ditto.
25309
        ("mmx_add3"): Ditto.  Handle V1DImode for TARGET_SSE2.
25310
        ("mmx_sub3"): Ditto.
25311
        ("mmx_adddi3"): Remove insn pattern.
25312
        ("mmx_subdi3"): Ditto.
25313
        ("mmx_ashr3"): Use SImode and "yN" constraint for operand 2.
25314
        ("mmx_lshr3"): Ditto. Use MMXMODE248 mode iterator.
25315
        ("mmx_ashl3"): Ditto.
25316
        ("mmx_lshrdi3"): Remove insn pattern.
25317
        ("mmx_ashldi3"): Ditto.
25318
        * config/i386/i386.c (classify_argument): Handle V1DImode.
25319
        (function_arg_advance_32): Ditto.
25320
        (function_arg_32): Ditto.
25321
        (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
25322
        mmx_addv1di3 insn pattern.
25323
        [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
25324
        [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
25325
        IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
25326
        IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
25327
        Remove definitions of built-in functions.
25328
        (V1DI_type_node): New node.
25329
        (v1di_ftype_v1di_int): Ditto.
25330
        (v1di_ftype_v1di_v1di): Ditto.
25331
        (v2si_ftype_v2si_si): Ditto.
25332
        (v4hi_ftype_v4hi_di): Remove node.
25333
        (v2si_ftype_v2si_di): Ditto.
25334
        (ix86_init_mmx_sse_builtins): Handle V1DImode.
25335
        (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
25336
        Redefine builtins using def_builtin_const with *_ftype_*_int node.
25337
        (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
25338
        Add new builtins using def_builtin_const.
25339
        (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
25340
        IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
25341
        IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
25342
        * config/i386/mmintrin.h (__v1di): New typedef.
25343
        (_mm_add_si64): Cast arguments to __v1di type.
25344
        (_mm_sub_si64): Ditto.
25345
        (_mm_sll_pi16): Cast __count to __v4hi type.
25346
        (_mm_sll_pi32): Cast __count to __v2si type.
25347
        (_mm_sll_si64): Cast arguments to __v1di type.
25348
        (_mm_srl_pi16): Cast __count to __v4hi type.
25349
        (_mm_srl_pi32): Cast __count to __v2si type.
25350
        (_mm_srl_si64): Cast arguments to __v1di type.
25351
        (_mm_sra_pi16): Cast __count to __v4hi type.
25352
        (_mm_sra_pi32): Cast __count to __v2si type.
25353
        (_mm_slli_pi16): Use __builtin_ia32_psllwi.
25354
        (_mm_slli_pi32): Use __builtin_ia32_pslldi.
25355
        (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
25356
        (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
25357
        (_mm_srli_pi32): Use __builtin_ia32_psrldi.
25358
        (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
25359
        (_mm_srai_pi16): Use __builtin_ia32_psrawi.
25360
        (_mm_srai_pi32): Use __builtin_ia32_psradi.
25361
        * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
25362
        * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
25363
        __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
25364
        __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
25365
 
25366
2008-03-07  Joseph Myers  
25367
 
25368
        * doc/include/texinfo.tex: Update to version 2008-03-07.10.
25369
 
25370
2008-03-07  Peter Bergner  
25371
 
25372
        PR target/35373
25373
        * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
25374
        reg+const addressing for Altivec modes.  Don't generate reg+reg
25375
        addressing for TFmode or TDmode quantities.
25376
 
25377
2008-03-07  Paolo Bonzini  
25378
 
25379
        * c-common.c (vector_types_convertible_p): Call langhook
25380
        instead of comptypes.
25381
 
25382
2008-03-06  Andrew Pinski  
25383
 
25384
        PR tree-opt/35402
25385
        * tree-ssa-ccp.c (get_symbol_constant_value): Handle
25386
        integral and scalar float variables which have a
25387
        NULL DECL_INITIAL.
25388
 
25389
2008-03-06  Nathan Froyd  
25390
 
25391
        * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
25392
        dwarf_register_span hook when emitting unwind information for
25393
        register-to-memory saves.
25394
        * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
25395
        (rs6000_frame_related): Remove call to spe_synthesize_frame.
25396
 
25397
2008-03-06  Jakub Jelinek  
25398
 
25399
        * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
25400
        for the same VAR_DECL.
25401
 
25402
2008-03-06  Tom Tromey  
25403
 
25404
        * treelang: Delete.
25405
        * doc/standards.texi (Standards): Don't mention treelang.
25406
        * doc/invoke.texi (Overall Options): Don't mention treelang.
25407
        * doc/install.texi (Prerequisites): Don't mention bison or
25408
        treelang.
25409
        (Configuration): Don't mention treelang.
25410
        (Building): Likewise.
25411
        * doc/frontends.texi (G++ and GCC): Don't mention treelang.
25412
 
25413
2008-03-06  Paolo Bonzini  
25414
 
25415
        * simplify-rtx.c (simplify_subreg): Remove useless shifts from
25416
        word-extractions out of a multi-word object.
25417
 
25418
2008-03-06  Richard Guenther  
25419
 
25420
        * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
25421
        * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
25422
        result type and precision.
25423
        * expr.c (get_inner_reference): Set unsignedp based on the result
25424
        type of BIT_FIELD_REF.
25425
        * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
25426
        * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
25427
        (try_instantiate_multiple_fields): Likewise.  Use the correct type
25428
        for BIT_FIELD_REF.
25429
        (sra_build_assignment): Likewise.
25430
        (sra_build_elt_assignment): Likewise.
25431
        (sra_explode_bitfield_assignment): Likewise.
25432
        * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
25433
        * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
25434
        set BIT_FIELD_REF_UNSIGNED.
25435
        (vectorizable_load): Likewise.
25436
 
25437
2008-03-06  Andreas Krebbel  
25438
 
25439
        * cse.c (cse_extended_basic_block): Invalidate artificial defs
25440
        at bb start.
25441
 
25442
2008-03-06  Richard Guenther  
25443
 
25444
        * alias.c (struct alias_set_entry): Move has_zero_child field
25445
        to pack with alias_set.
25446
 
25447
2008-03-05  H.J. Lu  
25448
 
25449
        * config/i386/i386-modes.def: Use 4 byte alignment on DI for
25450
        32bit host.
25451
 
25452
2008-03-05  Ian Lance Taylor  
25453
 
25454
        * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
25455
 
25456
2008-03-05  Kenneth Zadeck  
25457
 
25458
        * fwprop.c (update_df): Support width and offset parameters of
25459
        df_ref_create.
25460
        * ra-conflict.c (mark_reg_store, clear_reg_in_live,
25461
        global_conflicts): Change DF_REF_EXTRACT to either
25462
        DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
25463
        DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
25464
        * df-scan.c (df_ref_record, df_defs_record,
25465
        df_ref_create_structure, df_def_record_1, df_uses_record,
25466
        df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
25467
        df_bb_refs_collect, df_entry_block_defs_collect,
25468
        df_exit_block_uses_collect): Support new width and offset fields.
25469
        (ref_extract_pool): New storage pool.
25470
        (df_free_ref): New function.
25471
        (df_reg_chain_unlink, df_free_collection_rec,
25472
        df_sort_and_compress_refs): Call df_free_ref.
25473
        (df_ref_equal_p, df_ref_compare): Compare offset and width fields
25474
        of df_ref_extract.
25475
        (df_ref_create_structure): Allocate df_ref_extract if offset and
25476
        width fields are used.
25477
        (df_def_record_1): Get offset and width from ZERO_EXTRACT.
25478
        (df_uses_record): Get offset and width from ZERO_EXTRACT
25479
        and SIGN_EXTRACT.
25480
        * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
25481
        DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
25482
        DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
25483
        * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
25484
        DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
25485
        DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
25486
        (df_ref_extract): New structure.
25487
        (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
25488
        (df_ref_create): Add width and offset parameters.
25489
 
25490
2008-03-05  Richard Guenther  
25491
 
25492
        * tree-ssa-structalias.c (get_constraint_for_component_ref):
25493
        Use ranges_overlap_p.
25494
        (offset_overlaps_with_access): Rename
25495
        to ranges_overlap_p and move ...
25496
        * tree-flow-inline.h (ranges_overlap_p): ... here.
25497
 
25498
        * tree.h (get_inner_reference, handled_component_p): Update
25499
        comments.
25500
 
25501
        * tree.h (record_component_aliases, get_alias_set,
25502
        alias_sets_conflict_p, alias_sets_must_conflict_p,
25503
        objects_must_conflict_p): Move declarations ...
25504
        * alias.h (record_component_aliases, get_alias_set,
25505
        alias_sets_conflict_p, alias_sets_must_conflict_p,
25506
        objects_must_conflict_p): ... here.
25507
        Include coretypes.h.
25508
        * Makefile.in (ALIAS_H): Add coretypes.h dependency.
25509
 
25510
2008-03-05  Aldy Hernandez  
25511
 
25512
        * cfg.c: Include tree-flow.h.
25513
        (remove_edge_raw): Call redirect_edge_var_map_clear.
25514
        (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
25515
        * tree-flow-inline.h (redirect_edge_var_map_def): New.
25516
        (redirect_edge_var_map_result): New.
25517
        * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
25518
        PENDING_STMT use with redirect_edge_var_map_*.
25519
        * tree-ssa.c (edge_var_maps): New definition.
25520
        (redirect_edge_var_map_add): New.
25521
        (redirect_edge_var_map_clear): New.
25522
        (redirect_edge_var_map_dup): New.
25523
        (redirect_edge_var_map_vector): New.
25524
        (redirect_edge_var_map_destroy): New.
25525
        (ssa_redirect_edge): Replace PENDING_STMT use with
25526
        redirect_edge_var_map_*.
25527
        (flush_pending_stmts): Same.
25528
        (delete_tree_ssa): Destroy edge var map.
25529
        * tree-flow.h (struct _edge_var_map): New.
25530
        Define edge_var_map vector type.
25531
        Declare redirect_edge_var_map_* prototypes.
25532
        * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
25533
        * tree-cfg.c (reinstall_phi_args): Replace
25534
        PENDING_STMT use with redirect_edge_var_map_*.
25535
 
25536
2008-03-05  Richard Guenther  
25537
 
25538
        PR tree-optimization/35472
25539
        * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
25540
        whose single use_stmt has a overlapping set of loaded and
25541
        stored symbols as that use_stmt might be a noop assignment then.
25542
 
25543
2008-03-05  Joel Sherrill  
25544
 
25545
        * gthr-rtems.h: Implement __gthread_mutex_destroy.
25546
 
25547
2008-03-05  Richard Guenther  
25548
 
25549
        PR c++/35336
25550
        * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
25551
        should be constants.
25552
        * tree-cfg.c (verify_expr): Verify it.
25553
        * fold-const.c (fold_truthop): Remove code generating
25554
        BIT_FIELD_REFs of structure bases.
25555
        (fold_binary): Likewise.
25556
        (fold_ternary): Position and size of BIT_FIELD_REFs are
25557
        always host integers.
25558
        (make_bit_field_ref): Remove.
25559
        (optimize_bit_field_compare): Remove.
25560
        (all_ones_mask_p): Remove.
25561
 
25562
2008-03-05  Gabor Loki  
25563
 
25564
        PR gcc/33009
25565
        * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
25566
        (split_block_and_df_analyze): New. Split basic block and rebuild
25567
        dataflow.
25568
        (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
25569
        SPLIT_BLOCK.
25570
        (split_pattern_seq): Likewise.
25571
        (erase_matching_seqs): Likewise.
25572
        (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
25573
 
25574
2008-03-04  Geoff Keating  
25575
 
25576
        * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
25577
        declaration and code.
25578
        (tree_invalid_nonnegative_warnv_p): Likewise.
25579
 
25580
2008-03-05  Serge Belyshev  
25581
 
25582
        * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
25583
        examples.  Truncate option-names then causing overfull hbox.
25584
 
25585
2008-03-04  John David Anglin  
25586
 
25587
        PR target/35222
25588
        * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
25589
        on hpux10.
25590
        * configure: Rebuilt.
25591
 
25592
2008-03-04  Rafael Espíndola  
25593
 
25594
        * fold-const.c (tree_simple_nonnegative_warnv_p): New.
25595
        (tree_unary_nonnegative_warnv_p): New.
25596
        (tree_binary_nonnegative_warnv_p): New.
25597
        (tree_single_nonnegative_warnv_p): New.
25598
        (tree_invalid_nonnegative_warnv_p): New.
25599
        (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
25600
 
25601
2008-03-04  Manuel Lopez-Ibanez  
25602
 
25603
        PR 28322
25604
        * opts.c (handle_option): Postpone 'unknown option' errors only for
25605
        warning options.
25606
 
25607
2008-03-04  H.J. Lu  
25608
 
25609
        PR target/35453
25610
        * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
25611
        (_SIDD_XXX): This.
25612
 
25613
2008-03-04  Rafael Espíndola  
25614
 
25615
        * fold-const.c (tree_unary_nonzero_warnv_p): New.
25616
        (tree_binary_nonzero_warnv_p): New.
25617
        (tree_single_nonzero_warnv_p): New.
25618
        (tree_expr_nonzero_warnv_p): Redefine using the new functions.
25619
 
25620
2008-03-04  Uros Bizjak  
25621
 
25622
        PR middle-end/35456
25623
        * fold-const.c (fold_cond_expr_with_comparison): Prevent
25624
        transformations for modes that have signed zeros.
25625
        * ifcvt.c (noce_try_abs): Ditto.
25626
 
25627
2008-03-04  Joseph Myers  
25628
 
25629
        * config/i386/i386.c (override_options): Force
25630
        -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
25631
 
25632
2008-03-04  Jan Hubicka  
25633
 
25634
        PR c++/35262
25635
        * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
25636
        in last commit.
25637
 
25638
2008-03-04  Danny Smith  
25639
 
25640
        * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
25641
        label to probe the stack.
25642
 
25643
2008-03-04  Danny Smith  
25644
 
25645
        * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
25646
        (__gthr_win32_mutex_destroy): Declare.
25647
        [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
25648
        __gthr_win32_mutex_destroy.
25649
        * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
25650
 
25651
2008-03-03  Jan Hubicka  
25652
 
25653
        PR c++/35262
25654
        * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
25655
        aggressive on inlining cold calls.
25656
 
25657
2008-03-03  Richard Guenther  
25658
 
25659
        * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
25660
        struct copies into the expression table.
25661
        (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
25662
        (try_to_simplify): Likewise.
25663
        * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
25664
        integral and pointer arguments which do not change the
25665
        precision to NOP_EXPRs.
25666
        * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
25667
        VIEW_CONVERT_EXPR case.
25668
 
25669
2008-03-02  Sebastian Pop  
25670
 
25671
        * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
25672
        defined in a loop at depth 0 is invariant.
25673
        * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
25674
        * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
25675
        be called at loop depth 0.
25676
 
25677
2008-03-02  Jakub Jelinek  
25678
 
25679
        PR driver/35420
25680
        * gcc.c (process_command): Update copyright notice dates.
25681
        * gcov.c (print_version): Likewise.
25682
        * gcov-dump.c (print_version): Likewise.
25683
        * mips-tfile.c (main): Likewise.
25684
        * mips-tdump.c (main): Likewise.
25685
 
25686
2008-03-02  Manuel Lopez-Ibanez  
25687
 
25688
        PR 24924
25689
        * c-common.c (flag_permissive): Delete.
25690
        (constant_expression_warnings): Check flags first.
25691
        (constant_expression_error): New.
25692
        * c-common.h (flag_permissive): Delete.
25693
        (constant_expression_error): Declare.
25694
        * flags.h (flag_permissive): Declare. Update description.
25695
        * diagnostic.c (pedwarn): Update.
25696
        (permerror): New.
25697
        * diagnostic.h (pedantic_error_kind): Rename as pedantic_warning_kind.
25698
        (permissive_error_kind): New.
25699
        * toplev.c (flag_permissive): Define. Update description.
25700
        * toplev.h (permissive_error_kind): Declare.
25701
        * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
25702
        (pedwarn_c90): Use pedantic_warning_kind.
25703
        * c-opts.c (c_common_post_options): flag_permissive does not affect
25704
        flag_pedantic_errors.
25705
 
25706
2008-03-02  Joseph Myers  
25707
 
25708
        * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
25709
        __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
25710
        __absvsi2, __absvDI2): Use unsigned arithmetic.
25711
 
25712
2008-03-02  Andi Kleen  
25713
            Richard Guenther  
25714
 
25715
        * struct-equiv.c: Remove file.
25716
        * cfg_cleanup.c (condjump_equiv_p): Remove.
25717
        * Makefile.in (OBJS-common): Remove struct-equiv.o.
25718
        (struct-equiv.o): Remove rule.
25719
        * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
25720
        insns_match_p, struct_equiv_block_eq, struct_equiv_init,
25721
        rtx_equiv_p, condjump_equiv_p): Remove prototypes.
25722
 
25723
2008-03-01  Alexandre Oliva  
25724
 
25725
        * ifcvt.c (noce_process_if_block): Try to handle only the then
25726
        block if the else block exists but isn't suitable.
25727
 
25728
2008-03-01  Janne Blomqvist  
25729
 
25730
        PR gcc/35063
25731
        * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
25732
        * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
25733
        regression from previous patch.
25734
 
25735
2008-03-01  Janne Blomqvist  
25736
 
25737
        PR gcc/35063
25738
        * gthr.h: Add __gthread_mutex_destroy as a function that must be
25739
        implemented.
25740
        * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
25741
        * gthr-single.h (__gthread_mutex_destroy): Likewise.
25742
        * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
25743
        * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
25744
        * gthr-nks.h (__gthread_mutex_destroy): Likewise.
25745
        * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
25746
        * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
25747
        (__gthread_mutex_destroy_function): Rename to
25748
        __gthread_mutex_destroy.
25749
        * gthr-dce.h (__gthread_mutex_destroy): Call
25750
        pthread_mutex_destroy.
25751
        * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
25752
        * gthr-posix.h (__gthread_mutex_destroy): Likewise.
25753
        * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
25754
 
25755
2008-03-01  Alexandre Oliva  
25756
 
25757
        * df-scan.c (df_ref_chain_change_bb): Simplify.
25758
        (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
25759
        set_block_for_insn if there's any change.
25760
        * df.h ((df_insn_change_bb): Fix prototype.
25761
        * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
25762
        df_insn_change_bb, don't call set_block_for_insn.
25763
        * emit-rtl.c (reorder_insns): Likewise.
25764
        * haifa-sched.c (move_insn): Likewise.
25765
 
25766
2008-03-01  Alexandre Oliva  
25767
 
25768
        * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
25769
 
25770
2008-03-01  Alexandre Oliva  
25771
 
25772
        * tree-flow-inline.h (next_readonly_imm_use): Return
25773
        NULL_USE_OPERAND_P after the end.
25774
 
25775
2008-03-01  Richard Guenther  
25776
 
25777
        PR tree-optimization/35411
25778
        * tree-sra.c (sra_build_assignment): Split conversion to
25779
        final type to a separate statement if we are not assigning
25780
        to a register.
25781
 
25782
2008-02-29  Francois-Xavier Coudert  
25783
 
25784
        * fold-const.c (fold_convertible_p): Correct the logic to follow
25785
        that in fold_convert().
25786
 
25787
2008-02-29  Douglas Gregor  
25788
 
25789
        PR c++/35315
25790
        * tree-inline.c (build_duplicate_type): When we make a
25791
        duplicate type, make it unique in the canonical types system.
25792
 
25793
2008-02-29  Tom Tromey  
25794
 
25795
        * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
25796
        input_file_stack_history, input_file_stack_restored): Remove.
25797
        (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
25798
        * input.h (struct file_stack): Remove.
25799
        (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
25800
        (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
25801
        Likewise.
25802
        * diagnostic.h (struct diagnostic_context) : Change
25803
        type.
25804
        (diagnostic_last_module_changed): Add 'map' argument.
25805
        (diagnostic_set_last_function): Likewise.
25806
        * diagnostic.c (undiagnostic_report_current_module): Iterate using
25807
        line map, not input_file_stack.
25808
        * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
25809
 
25810
2008-02-29  Paul Brook  
25811
 
25812
        * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
25813
 
25814
2008-02-29  Paul Brook  
25815
 
25816
        * config/arm/ieee754-df.S (muldf3): Use RET macros.
25817
 
25818
2008-02-29  Richard Guenther  
25819
 
25820
        * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
25821
        vn_lookup_or_add.
25822
        * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
25823
        value for comparing for a store match.
25824
        (simplify_unary_expression): Do nothing for SSA_NAMEs.
25825
        (try_to_simplify): Do not do a full-blown reference lookup.
25826
 
25827
2008-02-29  Kaz Kojima  
25828
 
25829
        * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
25830
        (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
25831
 
25832
        * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
25833
 
25834
2008-02-29  Sebastian Pop  
25835
 
25836
        * tree-loop-linear.c (try_interchange_loops): Compare memory access
25837
        strides against cache sizes.
25838
 
25839
2008-02-29  Kaz Kojima  
25840
 
25841
        * config/sh/sh.c (sh_secondary_reload): Handle loading a float
25842
        constant to fpul.
25843
 
25844
2008-02-28  Richard Sandiford  
25845
 
25846
        * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
25847
        of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
25848
        is smaller than the original promoted value.
25849
        (simplify_subreg): If OP is a SUBREG, try to preserve its
25850
        SUBREG_PROMOTED_VAR_P information.
25851
 
25852
2008-02-28  Steven Bosscher  
25853
 
25854
        * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
25855
        (VN_INFO_GET): Allocate new objects on the obstack.
25856
        (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
25857
        for rpo_numbers_temp, for consistency.
25858
        (free_scc_vn): Free the obstack.
25859
 
25860
2008-02-28  Sebastian Pop  
25861
 
25862
        * doc/invoke.texi: Document -ftree-loop-distribution.
25863
        * tree-loop-distribution.c: New.
25864
        * tree-pass.h (pass_loop_distribution): New.
25865
        * graphds.h (struct graph): Add htab_t indices.
25866
        * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
25867
        * tree-vectorizer.c (rename_variables_in_loop): Extern.
25868
        (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
25869
        * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
25870
        * tree-data-ref.c (debug_data_dependence_relations): New.
25871
        (dump_data_dependence_relation): Also print data references.
25872
        (free_data_ref): Extern.
25873
        (same_access_functions): Moved...
25874
        (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
25875
        (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
25876
        debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
25877
        struct rdg_vertex_info, rdg_vertex_for_stmt): New.
25878
        (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
25879
        (stmts_from_loop): Skip LABEL_EXPR.
25880
        (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
25881
        New.
25882
        (build_rdg): Initialize rdg->indices htab.
25883
        (free_rdg, stores_from_loop, ref_base_address,
25884
        rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
25885
        have_similar_memory_accesses_1, ref_base_address_1,
25886
        remove_similar_memory_refs): New.
25887
        * tree-data-ref.h: Depend on tree-chrec.h.
25888
        (debug_data_dependence_relations, free_data_ref): Declared.
25889
        (same_access_functions): ... here.
25890
        (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
25891
        New.
25892
        (struct rdg_vertex): Add has_mem_write and has_mem_reads.
25893
        (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
25894
        RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
25895
        (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
25896
        debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
25897
        rdg_vertex_for_stmt): Declared.
25898
        (struct rdg_edge): Add level.
25899
        (RDGE_LEVEL): New.
25900
        (free_rdg, stores_from_loop, remove_similar_memory_refs,
25901
        rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
25902
        Declared.
25903
        (rdg_has_similar_memory_accesses): New.
25904
        * tree-vect-analyze.c: Remove unused static decls.
25905
        * lambda.h (dependence_level): New.
25906
        * common.opt (ftree-loop-distribution): New.
25907
        * tree-flow.h (mark_virtual_ops_in_bb,
25908
        slpeel_tree_duplicate_loop_to_edge_cfg,
25909
        rename_variables_in_loop): Declared.
25910
        * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
25911
        (OBJS-common): Add tree-loop-distribution.o.
25912
        (tree-loop-distribution.o): New rule.
25913
        * tree-cfg.c (mark_virtual_ops_in_bb): New.
25914
        (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
25915
        * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
25916
 
25917
2008-02-28  Joseph Myers  
25918
 
25919
        PR target/33963
25920
        * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
25921
        other than structures and unions.
25922
 
25923
2008-02-28  Richard Guenther  
25924
 
25925
        Revert:
25926
        2008-02-26  Richard Guenther  
25927
 
25928
        * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
25929
        * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
25930
        (lookup_decl_from_uid): Declare.
25931
        (remove_decl_from_map): Likewise.
25932
        * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
25933
        * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
25934
        (decl_for_uid_map): New global hashtable mapping DECL_UID
25935
        to the decl tree.
25936
        (init_ttree): Allocate it.
25937
        (insert_decl_to_uid_decl_map): New helper function.
25938
        (make_node_stat): Insert new decls into the map.
25939
        (copy_node_stat): Likewise.
25940
        (lookup_decl_from_uid): New function.
25941
        (remove_decl_from_map): Likewise.
25942
        (print_decl_for_uid_map_statistics): New helper.
25943
        (dump_tree_statistics): Call it.
25944
 
25945
        * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
25946
        (referenced_var_iterator): Adjust.
25947
        (FOR_EACH_REFERENCED_VAR): Adjust.
25948
        (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
25949
        (num_referenced_vars): Adjust.
25950
        * tree-flow-inline.h (gimple_referenced_vars): Adjust.
25951
        (first_referenced_var): Remove.
25952
        (end_referenced_vars_p): Likewise.
25953
        (next_referenced_var): Likewise.
25954
        (referenced_var_iterator_set): New helper function.
25955
        * tree-dfa.c (referenced_var_lookup): Adjust.
25956
        (referenced_var_check_and_insert): Likewise.
25957
        (remove_referenced_var): Likewise.
25958
        * tree-ssa.c (verify_flow_insensitive_alias_info): Use
25959
        FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25960
        (verify_call_clobbering): Likewise.
25961
        (verify_memory_partitions): Likewise.
25962
        (init_tree_ssa): Allocate bitmap instead of hashtable for
25963
        referenced_vars.
25964
        (delete_tree_ssa): Adjust.
25965
        * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
25966
        FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25967
        (compute_tag_properties): Likewise.
25968
        (set_initial_properties): Likewise.
25969
        (find_partition_for): Likewise.
25970
        (update_reference_counts): Likewise.
25971
        (dump_may_aliases_for): Likewise.
25972
        * tree-ssa-operands.c (add_virtual_operand): Likewise.
25973
        (add_call_clobber_ops): Likewise.
25974
        (add_call_read_ops): Likewise.
25975
        (get_asm_expr_operands): Likewise.
25976
        * tree-into-ssa.c (dump_decl_set): Likewise.
25977
        (update_ssa): Likewise.
25978
        * tree-sra.c (scan_function): Likewise.
25979
        (decide_instantiations): Likewise.
25980
        (scalarize_parms): Likewise.
25981
        * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
25982
        (dsa_named_for): Likewise.
25983
        * tree-ssa-structalias.c (update_alias_info): Likewise.
25984
        (merge_smts_into): Likewise.
25985
 
25986
2008-02-27  David Daney  
25987
 
25988
        PR target/34409
25989
        * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
25990
        * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
25991
        * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
25992
        * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
25993
        * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
25994
 
25995
2008-02-27  Uros Bizjak  
25996
 
25997
        PR target/25477
25998
        * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
25999
        (BUILT_IN_NEXTTOWARD): Remove.
26000
        (BUILT_IN_NEXTTOWARDF): Ditto.
26001
        * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
26002
        alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
26003
 
26004
2008-02-27  Tom Tromey  
26005
 
26006
        * tree-dump.c (dequeue_and_dump) : Check
26007
        DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
26008
 
26009
2008-02-27  Jan Beulich  
26010
 
26011
        * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
26012
        update the respective field on newdecl.
26013
 
26014
2008-02-27  Revital Eres  
26015
 
26016
        PR rtl-optimization/34999
26017
        * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
26018
        crossing edges that ends with a call insn.
26019
        (fix_up_fall_thru_edges): Handle crossing edges that ends with a
26020
        call insn and clear the EDGE_CROSSING flag of the crossing edge
26021
        when fixing fallthru edges.
26022
 
26023
2008-02-27  Richard Guenther  
26024
 
26025
        PR middle-end/35390
26026
        * fold-const.c (fold_unary): Return the correct argument,
26027
        converted to the result type.
26028
 
26029
2008-02-27  Richard Guenther  
26030
 
26031
        PR middle-end/34971
26032
        * expr.c (expand_expr_real_1): Assert on rotates that operate
26033
        on partial modes.
26034
        * fold-const.c (fold_binary): Use the types precision, not the
26035
        bitsize of the mode if folding rotate expressions.  Build rotates
26036
        only for full modes.
26037
 
26038
2008-02-27  Jakub Jelinek  
26039
 
26040
        * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
26041
        and CPP_PRAGMA_EOL.
26042
        * c-pragma.c (pragma_ns_name): New typedef.
26043
        (registered_pp_pragmas): New variable.
26044
        (c_pp_lookup_pragma): New function.
26045
        (c_register_pragma_1): If flag_preprocess_only, do nothing
26046
        for non-expanded pragmas, for expanded ones push pragma's
26047
        namespace and name into registered_pp_pragmas vector.
26048
        (c_invoke_pragma_handler): Register OpenMP pragmas even when
26049
        flag_preprocess_only, don't register GCC pch_preprocess
26050
        pragma if flag_preprocess_only.
26051
        * c-opts.c (c_common_init): Call init_pragma even if
26052
        flag_preprocess_only.
26053
        * c-pragma.c (c_pp_lookup_pragma): New prototype.
26054
        * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
26055
        cpp_register_pragma if flag_preprocess_only.
26056
 
26057
2008-02-26  Ralf Wildenhues  
26058
 
26059
        PR c/28800
26060
        * c-parser.c (c_parser_translation_unit): Warn for empty
26061
        translation unit, not empty source file.
26062
 
26063
2008-02-26  Paul Brook  
26064
 
26065
        * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
26066
        operand for Thumb-2.
26067
        * config/arm/arm.h (reg_class): Add CORE_REGS.
26068
        (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
26069
        (BASE_REG_CLASS): Use CORE_REGS.
26070
        (PREFERRED_RELOAD_CLASS): Add STACK_REG.
26071
        (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
26072
        (REGNO_OK_FOR_INDEX_P): Exclude SP.
26073
        (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
26074
        ARM_REGNO_OK_FOR_INDEX_P.
26075
        (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
26076
        * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
26077
        arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
26078
        (ldm/stm peepholes): Ditto.
26079
        * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
26080
        * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
26081
        * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
26082
        * config/arm/constraints.md: Enable "k" constraint on ARM.
26083
 
26084
2008-02-27  Ben Elliston  
26085
 
26086
        * config/rs6000/rs6000.c: Annotate cache line size field in all
26087
        instances of struct processor_costs.
26088
 
26089
2008-02-26  David Edelsohn  
26090
 
26091
        * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
26092
        dse2, gcse, if_conversion, if_after_combine, if_after_reload,
26093
        jump_bypass): New counters.
26094
        * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
26095
        * dce.c (gate_ud_dce): Same.
26096
        (gate_fast_dce): Same.
26097
        * dse.c (gate_dse1): New function.
26098
        (gate_dse2): New function.
26099
        (gate_dse): Merge results of new gate functions.
26100
        * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
26101
        (gate_handle_jump_bypass): Add dbg_cnt.
26102
        (gate_handle_gcse): Add dbg_cnt.
26103
        * ifcvt.c (gate_handle_if_conversion): Same.
26104
        (gate_handle_if_after_combine): Same.
26105
        (gate_handle_if_after_reload): Same.
26106
        * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
26107
 
26108
2008-02-26  Edmar Wienskoski  
26109
 
26110
        * config/rs6000/rs6000.c (processor_costs): Update e300 cache
26111
        line sizes.
26112
        * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
26113
 
26114
2008-02-26  Jason Merrill  
26115
 
26116
        PR c++/35315
26117
        * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
26118
        alone if it's the naming decl for the type's main variant.
26119
 
26120
2008-02-26  Tom Tromey  
26121
 
26122
        * system.h (USE_MAPPED_LOCATION): Poison.
26123
        * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
26124
        * tree-cfg.c (make_cond_expr_edges): Remove old location code.
26125
        (make_goto_expr_edges): Likewise.
26126
        (remove_bb): Likewise.
26127
        (execute_warn_function_return): Likewise.
26128
        * basic-block.h (struct edge_def) : Change type to
26129
        location_t.
26130
        * c-common.c (fname_decl): Remove old location code.
26131
        * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
26132
        location code.
26133
        * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
26134
        variant.
26135
        (ASM_INPUT_SOURCE_LOCATION): Likewise.
26136
        (gen_rtx_ASM_INPUT): Likewise.
26137
        (gen_rtx_ASM_INPUT_loc): Likewise.
26138
        (get_rtx_asm_OPERANDS): Remove.
26139
        * cfglayout.c (insn_locators_alloc): Remove old location code.
26140
        (set_curr_insn_source_location): Likewise.
26141
        (curr_insn_locator): Likewise.
26142
        * print-tree.c (print_node): Remove old location code.
26143
        * tree-mudflap.c (mf_varname_tree): Remove old location code.
26144
        (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
26145
        * cfgexpand.c (expand_gimple_cond_expr): Don't use
26146
        location_from_locus.
26147
        (construct_exit_block): Remove old location code.
26148
        * emit-rtl.c (force_next_line_note): Remove old location code.
26149
        * profile.c (branch_prob): Remove old location code.
26150
        * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
26151
        LOC_LINE): Remove old-location variants.
26152
        * langhooks.c (lhd_print_error_function): Remove old location
26153
        code.
26154
        * configure, config.in: Rebuilt.
26155
        * configure.ac (--enable-mapped-location): Remove.
26156
        * c-decl.c (c_init_decl_processing): Remove old location code.
26157
        (finish_function): Likewise.
26158
        * recog.c (decode_asm_operands): Remove old location code.
26159
        * c-pch.c (c_common_read_pch): Remove old location code.
26160
        * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
26161
        variants.
26162
        * gimple-low.c (lower_function_body): Remove old location code.
26163
        * toplev.c (unknown_location): Remove.
26164
        (push_srcloc): Remove old-location variant.
26165
        (process_options): Remove old location code.
26166
        (lang_dependent_init): Likewise.
26167
        * input.h (UNKNOWN_LOCATION): Move definition.
26168
        (location_t): Undeprecate.
26169
        (source_locus): Remove.
26170
        (location_from_locus): Remove.
26171
        (struct location_s): Remove.
26172
        Remove all old-location code.
26173
        (input_line, input_filename): Remove.
26174
        * final.c (final_scan_insn): Remove old location code.
26175
        * diagnostic.c (diagnostic_build_prefix): Remove
26176
        USE_MAPPED_LOCATION test.
26177
        * tree.h (gimple_stmt) : Now a location_t.
26178
        (tree_exp) : Likewise.
26179
        (DECL_IS_BUILTIN): Remove old-location variant.
26180
        (annotate_with_file_line, annotate_with_locus): Likewise.
26181
        (expr_locus, set_expr_locus): Update.
26182
        * tree.c (build1_stat): Remove old location code.
26183
        (last_annotated_node): Remove.
26184
        (annotate_with_file_line): Remove old-location variant.
26185
        (annotate_with_locus): Likewise.
26186
        (expr_location): Remove old location code.
26187
        (set_expr_location): Likewise.
26188
        (expr_has_location): Likewise.
26189
        (expr_locus): Likewise.
26190
        (set_expr_locus): Likewise.
26191
        (expr_filename): Don't use location_from_locus.
26192
        (expr_lineno): Likewise.
26193
        * rtl-error.c (location_for_asm): Remove old location code.
26194
        * c-lex.c (cb_line_change): Remove old location code.
26195
        (fe_file_change): Likewise.
26196
        (cb_def_pragma): Likewise.
26197
        (c_lex_with_flags): Likewise.
26198
        * gengtype.c (do_typedef): Don't special-case location types.
26199
        (define_location_structures): Remove.
26200
        (main): Don't call define_location_structures.
26201
        * tree-pretty-print.c (dump_implicit_edges): Remove old location
26202
        code.
26203
 
26204
2008-02-26  Manuel Lopez-Ibanez  
26205
 
26206
        PR 26264
26207
        * builtins.def (BUILT_IN_STDARG_START): Remove.
26208
        * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
26209
        * tree-stdarg.c (execute_optimize_stdarg): Likewise.
26210
        * tree-inline.c (inline_forbidden_p_1): Likewise.
26211
 
26212
2008-02-26  Richard Guenther  
26213
 
26214
        * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
26215
        * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
26216
        (lookup_decl_from_uid): Declare.
26217
        (remove_decl_from_map): Likewise.
26218
        * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
26219
        * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
26220
        (decl_for_uid_map): New global hashtable mapping DECL_UID
26221
        to the decl tree.
26222
        (init_ttree): Allocate it.
26223
        (insert_decl_to_uid_decl_map): New helper function.
26224
        (make_node_stat): Insert new decls into the map.
26225
        (copy_node_stat): Likewise.
26226
        (lookup_decl_from_uid): New function.
26227
        (remove_decl_from_map): Likewise.
26228
        (print_decl_for_uid_map_statistics): New helper.
26229
        (dump_tree_statistics): Call it.
26230
 
26231
        * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
26232
        (referenced_var_iterator): Adjust.
26233
        (FOR_EACH_REFERENCED_VAR): Adjust.
26234
        (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
26235
        (num_referenced_vars): Adjust.
26236
        * tree-flow-inline.h (gimple_referenced_vars): Adjust.
26237
        (first_referenced_var): Remove.
26238
        (end_referenced_vars_p): Likewise.
26239
        (next_referenced_var): Likewise.
26240
        (referenced_var_iterator_set): New helper function.
26241
        * tree-dfa.c (referenced_var_lookup): Adjust.
26242
        (referenced_var_check_and_insert): Likewise.
26243
        (remove_referenced_var): Likewise.
26244
        * tree-ssa.c (verify_flow_insensitive_alias_info): Use
26245
        FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26246
        (verify_call_clobbering): Likewise.
26247
        (verify_memory_partitions): Likewise.
26248
        (init_tree_ssa): Allocate bitmap instead of hashtable for
26249
        referenced_vars.
26250
        (delete_tree_ssa): Adjust.
26251
        * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
26252
        FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26253
        (compute_tag_properties): Likewise.
26254
        (set_initial_properties): Likewise.
26255
        (find_partition_for): Likewise.
26256
        (update_reference_counts): Likewise.
26257
        (dump_may_aliases_for): Likewise.
26258
        * tree-ssa-operands.c (add_virtual_operand): Likewise.
26259
        (add_call_clobber_ops): Likewise.
26260
        (add_call_read_ops): Likewise.
26261
        (get_asm_expr_operands): Likewise.
26262
        * tree-into-ssa.c (dump_decl_set): Likewise.
26263
        (update_ssa): Likewise.
26264
        * tree-sra.c (scan_function): Likewise.
26265
        (decide_instantiations): Likewise.
26266
        (scalarize_parms): Likewise.
26267
        * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
26268
        (dsa_named_for): Likewise.
26269
        * tree-ssa-structalias.c (update_alias_info): Likewise.
26270
        (merge_smts_into): Likewise.
26271
 
26272
2008-02-26  Manuel Lopez-Ibanez  
26273
 
26274
        PR 34351
26275
        * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
26276
        * c-opts.c (c_common_handle_option): Wall enables
26277
        Wvolatile-register-var.
26278
        * common.opt: Move Wvolatile-register-var to...
26279
        * c.opt: ...here.
26280
 
26281
2008-02-26  Manuel Lopez-Ibanez  
26282
 
26283
        * common.opt (Wlarger-than=): New.
26284
        * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
26285
        -Wlarger-than=.
26286
        * opts.c (common_handle_option): Handle -Wlarger-than=.
26287
        * optc-gen.awk: Likewise.
26288
        * opth-gen.awk: Likewise.
26289
        * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
26290
        * tree-optimize.c (tree_rest_of_compilation): Likewise.
26291
 
26292
2008-02-26  Manuel Lopez-Ibanez  
26293
 
26294
        * c-common.c (match_case_to_enum_1): Add appropriate
26295
        OPT_W* parameter to warning.
26296
        (c_do_switch_warnings): Likewise.
26297
        * c-typeck.c (warning_init): Add one more parameter following
26298
        'warning' function.
26299
        (push_init_level): Update call to warning_init.
26300
        (pop_init_level): Likewise.
26301
        (add_pending_init): Likewise.
26302
        (output_init_element: Likewise.
26303
 
26304
2008-02-26  Manuel Lopez-Ibanez  
26305
 
26306
        PR 28322
26307
        * toplev.c (toplev_main): If there are warnings or error, print
26308
        errors for ignored options.
26309
        * opts.c (ignored_options): New static variable.
26310
        (postpone_unknown_option_error): New.
26311
        (print_ignored_options): New.
26312
        (handle_option): Postpone errors for unknown -Wno-* options.
26313
        * opts.h (print_ignored_options): Declare.
26314
 
26315
2008-02-25  Richard Sandiford  
26316
 
26317
        * config/mips/mips.md (loadgp_blockage, blockage): Change type
26318
        to "ghost".
26319
 
26320
2008-02-25  Richard Guenther  
26321
 
26322
        Revert:
26323
        2008-02-25  Richard Guenther  
26324
 
26325
        * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
26326
        * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
26327
        (lookup_decl_from_uid): Declare.
26328
        * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
26329
        * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
26330
        (decl_for_uid_map): New global hashtable mapping DECL_UID
26331
        to the decl tree.
26332
        (init_ttree): Allocate it.
26333
        (insert_decl_to_uid_decl_map): New helper function.
26334
        (make_node_stat): Insert new decls into the map.
26335
        (copy_node_stat): Likewise.
26336
        (lookup_decl_from_uid): New function.
26337
        (print_decl_for_uid_map_statistics): New helper.
26338
        (dump_tree_statistics): Call it.
26339
 
26340
        * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
26341
        (referenced_var_iterator): Adjust.
26342
        (FOR_EACH_REFERENCED_VAR): Adjust.
26343
        (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
26344
        (num_referenced_vars): Adjust.
26345
        * tree-flow-inline.h (gimple_referenced_vars): Adjust.
26346
        (first_referenced_var): Remove.
26347
        (end_referenced_vars_p): Likewise.
26348
        (next_referenced_var): Likewise.
26349
        (referenced_var_iterator_set): New helper function.
26350
        * tree-dfa.c (referenced_var_lookup): Adjust.
26351
        (referenced_var_check_and_insert): Likewise.
26352
        (remove_referenced_var): Likewise.
26353
        * tree-ssa.c (verify_flow_insensitive_alias_info): Use
26354
        FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26355
        (verify_call_clobbering): Likewise.
26356
        (verify_memory_partitions): Likewise.
26357
        (init_tree_ssa): Allocate bitmap instead of hashtable for
26358
        referenced_vars.
26359
        (delete_tree_ssa): Adjust.
26360
        * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
26361
        FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26362
        (compute_tag_properties): Likewise.
26363
        (set_initial_properties): Likewise.
26364
        (find_partition_for): Likewise.
26365
        (update_reference_counts): Likewise.
26366
        (dump_may_aliases_for): Likewise.
26367
        * tree-ssa-operands.c (add_virtual_operand): Likewise.
26368
        (add_call_clobber_ops): Likewise.
26369
        (add_call_read_ops): Likewise.
26370
        (get_asm_expr_operands): Likewise.
26371
        * tree-into-ssa.c (dump_decl_set): Likewise.
26372
        (update_ssa): Likewise.
26373
        * tree-sra.c (scan_function): Likewise.
26374
        (decide_instantiations): Likewise.
26375
        (scalarize_parms): Likewise.
26376
        * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
26377
        (dsa_named_for): Likewise.
26378
        * tree-ssa-structalias.c (update_alias_info): Likewise.
26379
        (merge_smts_into): Likewise.
26380
 
26381
2008-02-25  Janne Blomqvist  
26382
 
26383
        PR fortran/29549
26384
        * doc/invoke.texi (-fcx-limited-range): Document new option.
26385
        * toplev.c (process_options): Handle -fcx-fortran-rules.
26386
        * common.opt: Add documentation for -fcx-fortran-rules.
26387
 
26388
2008-02-25  Janne Blomqvist  
26389
 
26390
        PR c/35162
26391
        * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
26392
        actual behaviour and C99.
26393
 
26394
2008-02-26  Ben Elliston  
26395
 
26396
        * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
26397
        (ASM_CPU_POWER6_SPEC): Likewise.
26398
        (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
26399
        Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
26400
        (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
26401
 
26402
2008-02-25  Richard Guenther  
26403
 
26404
        * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
26405
        * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
26406
        (lookup_decl_from_uid): Declare.
26407
        * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
26408
        * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
26409
        (decl_for_uid_map): New global hashtable mapping DECL_UID
26410
        to the decl tree.
26411
        (init_ttree): Allocate it.
26412
        (insert_decl_to_uid_decl_map): New helper function.
26413
        (make_node_stat): Insert new decls into the map.
26414
        (copy_node_stat): Likewise.
26415
        (lookup_decl_from_uid): New function.
26416
        (print_decl_for_uid_map_statistics): New helper.
26417
        (dump_tree_statistics): Call it.
26418
 
26419
        * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
26420
        (referenced_var_iterator): Adjust.
26421
        (FOR_EACH_REFERENCED_VAR): Adjust.
26422
        (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
26423
        (num_referenced_vars): Adjust.
26424
        * tree-flow-inline.h (gimple_referenced_vars): Adjust.
26425
        (first_referenced_var): Remove.
26426
        (end_referenced_vars_p): Likewise.
26427
        (next_referenced_var): Likewise.
26428
        (referenced_var_iterator_set): New helper function.
26429
        * tree-dfa.c (referenced_var_lookup): Adjust.
26430
        (referenced_var_check_and_insert): Likewise.
26431
        (remove_referenced_var): Likewise.
26432
        * tree-ssa.c (verify_flow_insensitive_alias_info): Use
26433
        FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26434
        (verify_call_clobbering): Likewise.
26435
        (verify_memory_partitions): Likewise.
26436
        (init_tree_ssa): Allocate bitmap instead of hashtable for
26437
        referenced_vars.
26438
        (delete_tree_ssa): Adjust.
26439
        * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
26440
        FOR_EACH_REFERENCED_VAR_IN_BITMAP.
26441
        (compute_tag_properties): Likewise.
26442
        (set_initial_properties): Likewise.
26443
        (find_partition_for): Likewise.
26444
        (update_reference_counts): Likewise.
26445
        (dump_may_aliases_for): Likewise.
26446
        * tree-ssa-operands.c (add_virtual_operand): Likewise.
26447
        (add_call_clobber_ops): Likewise.
26448
        (add_call_read_ops): Likewise.
26449
        (get_asm_expr_operands): Likewise.
26450
        * tree-into-ssa.c (dump_decl_set): Likewise.
26451
        (update_ssa): Likewise.
26452
        * tree-sra.c (scan_function): Likewise.
26453
        (decide_instantiations): Likewise.
26454
        (scalarize_parms): Likewise.
26455
        * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
26456
        (dsa_named_for): Likewise.
26457
        * tree-ssa-structalias.c (update_alias_info): Likewise.
26458
        (merge_smts_into): Likewise.
26459
 
26460
2008-02-25  Andreas Krebbel  
26461
 
26462
        PR target/35258
26463
        * cse.c (cse_insn): Avoid creation of overlapping MEMs.
26464
        * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
26465
        * alias.h (nonoverlapping_memrefs_p): Likewise.
26466
 
26467
2008-02-25  Jan Beulich  
26468
 
26469
        * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
26470
        * config/i386/netware-libgcc.exp: Add __bswap?i2,
26471
        __emultls_get_address, __emultls_register_common,
26472
        __floatundi?f, and _Unwind_GetIPInfo.
26473
        * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
26474
        Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
26475
        (gen_regparm_prefix): Likewise.
26476
        (i386_nlm_encode_section_info): Sync with
26477
        config/i386/winnt.c:i386_pe_encode_section_info().
26478
        (i386_nlm_maybe_mangle_decl_assembler_name): New.
26479
        i386_nlm_mangle_decl_assembler_name): New.
26480
        (netware_override_options): New.
26481
        * config/i386/netware.h (netware_override_options): Declare.
26482
        (OVERRIDE_OPTIONS): Re-define to netware_override_options.
26483
        (i386_nlm_mangle_decl_assembler_name): Declare.
26484
        (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
26485
 
26486
2008-02-25  Ben Elliston  
26487
 
26488
        PR other/32948
26489
        * c-decl.c (grokdeclarator): Remove unused local variables
26490
        `typedef_type' and `type_as_written'.
26491
        * bb-reorder.c
26492
        (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
26493
        unused local variable `has_hot_blocks'.
26494
        (fix_crossing_conditional_branches): Remove unused local variable
26495
        `prev_bb'.
26496
 
26497
2008-02-25  Uros Bizjak  
26498
 
26499
        PR middle-end/19984
26500
        * builtins.def (BUILT_IN_NAN): Define as c99 builtin
26501
        using DEF_C99_BUILTIN.
26502
        (BUILT_IN_NANF): Ditto.
26503
        (BUILT_IN_NANL): Ditto.
26504
 
26505
2008-02-25  Ayal Zaks  
26506
            Revital Eres  
26507
 
26508
        * modulo-sched.c (calculate_must_precede_follow): Address TODO
26509
        regarding the order of two dependent insns in the same row.
26510
 
26511
2008-02-25  Eric Botcazou  
26512
 
26513
        * stor-layout.c (layout_decl): Do not bump the alignment of a
26514
        bit-field to more than byte alignment if it is packed.
26515
 
26516
2008-02-24  David Edelsohn  
26517
 
26518
        * config/rs6000/rs6000.c (processor_costs): Add cache costs for
26519
        e300c2 and e300c3.
26520
 
26521
2008-02-24  Diego Novillo  
26522
 
26523
        http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
26524
 
26525
        PR 33738
26526
        * tree-vrp.c (vrp_evaluate_conditional): With
26527
        -Wtype-limits, emit a warning when comparing against a
26528
        constant outside the natural range of OP0's type.
26529
        * c.opt (Wtype-limits): Move ...
26530
        * common.opt (Wtype-limits): ... here.
26531
 
26532
2008-02-24  Edmar Wienskoski  
26533
 
26534
        * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
26535
        * config/rs6000/e300c2c3.md: New file.
26536
        * config/rs6000/rs6000.c (processor_costs): Add new costs for
26537
        e300c2 and e300c3.
26538
        (rs6000_override_options): Add e300c2 and e300c3 cases to
26539
        processor_target_table. Do not allow usage of Altivec or Spe
26540
        with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
26541
        (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
26542
        * config/rs6000/rs6000.h (processor_type): Add
26543
        PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
26544
        (ASM_CPU_SPEC): Add e300c2 and e300c3.
26545
        * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
26546
        and ppce300c3. Include e300c2c3.md.
26547
 
26548
2008-02-23  David Edelsohn  
26549
 
26550
        * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
26551
        instead of TARGET_STRICT_ALIGN.
26552
 
26553
2008-02-23  Joseph Myers  
26554
 
26555
        * explow.c (memory_address): Assert that the generated address is
26556
        valid.
26557
 
26558
2008-02-23  Francois-Xavier Coudert  
26559
 
26560
        PR target/25477
26561
        * config/darwin-protos.h: Add darwin_patch_builtins prototype.
26562
        * config/darwin-ppc-ldouble-patch.def: New file.
26563
        * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
26564
        * config/rs6000/rs6000.c (rs6000_init_builtins): Call
26565
        SUBTARGET_INIT_BUILTINS if defined.
26566
        * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
26567
        New functions.
26568
 
26569
2008-02-23  Andrew Pinski  
26570
 
26571
        PR rtl-opt/33512
26572
        * simplify-rtx.c (simplify_binary_operation_1): Add simplification
26573
        of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
26574
 
26575
2008-02-23  Andrew Pinski  
26576
 
26577
        PR pch/35027
26578
        * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
26579
        file" warning condtional on -Winvalid-PCH.
26580
 
26581
2008-02-23  Daniel Jacobowitz  
26582
 
26583
        * expmed.c (extract_bit_field): Always use adjust_address for MEM.
26584
 
26585
2008-02-23  Uros Bizjak  
26586
 
26587
        PR target/22076
26588
        PR target/34256
26589
        * config/i386/mmx.md (*mov_internal_rex64): Use "!y" to
26590
        prevent reload from using MMX registers.
26591
        (*mov_internal): Ditto.
26592
        (*movv2sf_internal_rex64): Ditto.
26593
        (*movv2sf_internal): Ditto.
26594
 
26595
2008-02-23  Ralf Wildenhues  
26596
 
26597
        PR documentation/31569
26598
        * doc/install.texi2html: Use makeinfo --no-number-sections.
26599
 
26600
2008-02-22  Nathan Froyd  
26601
 
26602
        * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
26603
        ensure that we can address an entire entity > 8 bytes.  Don't
26604
        generate reg+reg addressing for such data.
26605
 
26606
2008-02-22  Nathan Froyd  
26607
 
26608
        * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
26609
        strings when optimizing for size, unless the target cares about
26610
        alignment.
26611
 
26612
2008-02-22  Tom Tromey  
26613
 
26614
        * regclass.c (current_pass): Remove declaration.
26615
 
26616
2008-02-22  Anatoly Sokolov  
26617
 
26618
        * config/avr/libgcc.S (__RAMPZ__): Define.
26619
        (__do_copy_data): Add for devices with 128KB code memory.
26620
 
26621
2008-02-22  Nathan Froyd  
26622
 
26623
        * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
26624
        Use spe_abi.
26625
        * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
26626
 
26627
2008-02-22  Hans-Peter Nilsson  
26628
 
26629
        * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
26630
        GENNONACR_REGS.
26631
 
26632
2008-02-22  Ralf Wildenhues  
26633
 
26634
        PR c/19999
26635
        * c-typeck.c (build_binary_op): Warn about floating point
26636
        comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
26637
 
26638
2008-02-21  Janis Johnson  
26639
 
26640
        PR target/34526
26641
        * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
26642
        (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
26643
        add vrsave.
26644
        (rs6000_override_options): Set altivec_abi as default, not override,
26645
        for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
26646
        TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
26647
        is used; use new member spe_abi.
26648
        (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
26649
        spe_abi and altivec_abi.
26650
 
26651
2008-02-22  Tomas Bily  
26652
 
26653
        * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
26654
 
26655
2008-02-21  Ralf Wildenhues  
26656
 
26657
        PR bootstrap/35273
26658
        * config.build (build_file_translate): Set to `CMD //c' only if
26659
        it works.
26660
        * Makefile.in (build_file_translate): Improve comment.
26661
 
26662
2008-02-21  Jan Hubicka  
26663
 
26664
        * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
26665
        PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
26666
        PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
26667
 
26668
2008-02-21  Michael Matz  
26669
 
26670
        PR target/35264
26671
        * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
26672
 
26673
2008-02-21  Uros Bizjak  
26674
 
26675
        * config/i386/i386.md (movcc): Macroize expander from movsfcc,
26676
        movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
26677
        as insn constraint.
26678
        * config/i386/sse.md (_movup): Macroize insn
26679
        from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
26680
        SSE_VEC_FLOAT_MODE_P as insn constraint.
26681
        (_movmskp): Ditto from similar patterns.
26682
        (sse4a_movnt): Macroize insn from sse4a_movntsf and
26683
        sse4a_movntdf using MODEF mode iterator.
26684
        (sse4a_vmmovnt): Macroize insn form sse4a_vmmovntv2df and
26685
        sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
26686
        (sse4_1_blendp): Ditto from similar patterns.
26687
        (sse4_1_blendvp): Ditto.
26688
        (sse4_1_dpp): Ditto.
26689
        (sse4_1_roundp): Ditto.
26690
        (sse4_1_rounds): Ditto.
26691
 
26692
2008-02-21  Richard Guenther  
26693
 
26694
        * tree.def (PAREN_EXPR): New tree code.
26695
        * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
26696
        and PAREN_EXPR.
26697
        * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
26698
        * expr.c (expand_expr_real_1): Likewise.
26699
        * tree-inline.c (estimate_num_insns_1): Likewise.
26700
        * tree-complex.c (expand_complex_move): Likewise.
26701
        * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
26702
        as plain x.
26703
 
26704
2008-02-20  Kaz Kojima  
26705
 
26706
        PR target/35225
26707
        * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
26708
 
26709
2008-02-20  Kaz Kojima  
26710
 
26711
        PR target/35190
26712
        * config/sh/sh.md (jump_compact): Disable for crossing jumps.
26713
 
26714
        * config/sh/sh.c (find_barrier): Don't go past
26715
        NOTE_INSN_SWITCH_TEXT_SECTIONS note.
26716
 
26717
2008-02-20  DJ Delorie  
26718
 
26719
        * config/h8300/h8300.md (insv): Force source operand to be a register.
26720
 
26721
        * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
26722
        as a jump, not as a plain insn.
26723
 
26724
2008-02-20  Seongbae Park  
26725
 
26726
        * doc/invoke.texi (Warning Options): Add new option
26727
        -Wframe-larger-than=.
26728
        (-Wframe-larger-than): Document.
26729
 
26730
        * flags.h (warn_frame_larger_than, frame_larger_than_size):
26731
        Add declarations for new option variables.
26732
 
26733
        * final.c (final_start_function): Check the frame size
26734
        before emission and issue a Wframe-larger-than warning.
26735
 
26736
        * opts.c (warn_frame_larger_than, frame_larger_than_size):
26737
        Add definitions for new option variables.
26738
        (common_handle_option): Handle new option OPT_Wframe_larger_than_.
26739
 
26740
        * common.opt (Wframe-larger-than=): New option.
26741
 
26742
2008-02-20  Uros Bizjak  
26743
 
26744
        * config/i386/sse.md (_vmmul3): Fix typo in asm template.
26745
        (_div3): Ditto.
26746
        (_vmdiv3): Ditto.
26747
        (_vmsqrt2): Ditto.
26748
        (*smax3): Ditto.
26749
        (sse5_frcz2): Ditto.
26750
        (sse5_vmfrcz2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
26751
        as insn constraint.
26752
 
26753
2008-02-20  Richard Guenther  
26754
 
26755
        PR middle-end/35265
26756
        * builtins.c (validate_arg): If we want an INTEGER_TYPE,
26757
        be happy with INTEGRAL_TYPE_P.
26758
 
26759
2008-02-20  Richard Guenther  
26760
 
26761
        * fold-const.c (split_tree): Associate floatig-point expressions
26762
        if flag_associative_math is set.
26763
 
26764
2008-02-20  Richard Guenther  
26765
 
26766
        * tree.h (fold_real_zero_addition_p): Declare.
26767
        * fold-const.c (fold_real_zero_addition_p): Export.
26768
        * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
26769
        floating-point operations with zero and one.
26770
 
26771
2008-02-20  Paolo Bonzini  
26772
 
26773
        * doc/install.texi: Correct references to CFLAGS, replacing them
26774
        with BOOT_CFLAGS.  Document flags used during bootstrap for
26775
        target libraries.
26776
 
26777
2008-02-20  Uros Bizjak  
26778
 
26779
        * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
26780
        * config/i386/i386.md (*sse_setcc): Macroize from *sse_setccsf
26781
        and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
26782
        insn constraint.
26783
        (smin3): Ditto from similar patterns.
26784
        (smax3): Ditto.
26785
        (*ieee_smin3): Ditto.
26786
        (*ieee_smax3): Ditto.
26787
        * config/i386/sse.md (sse): New mode attribute.
26788
        (mov): Macroize expander from movv4sf and movv2df using
26789
        SSEMODEF2P mode iterator.
26790
        (_movnt): Ditto from similar patterns. Use
26791
        SSE_VEC_FLOAT_MODE_P as insn constraint.
26792
        (storent): Ditto.
26793
        (storent): Macroize expander from storentsf and storentdf using
26794
        MODEF mode iterator.
26795
        (neg2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
26796
        mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
26797
        (abs2): Ditto from similar patterns.
26798
        (add3, *add3, _vmadd3): Ditto.
26799
        (sub3, *sub3, _vmsub3): Ditto.
26800
        (_div3, _vmdiv3): Ditto.
26801
        (_vmsqrt2): Ditto.
26802
        (smin3, *smin3_finite, *smin3)
26803
        (_vmsmin3, *ieee_smin3): Ditto.
26804
        (smax3, *smax3_finite, *smax3)
26805
        (_vmsmax3, *ieee_smax3): Ditto.
26806
        (_maskcmp3): Macroize from sse_maskcmpv4sf3,
26807
        sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
26808
        mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
26809
        insn constraint.
26810
        (_comi): Macroize from sse_comi and sse2_comi using MODEF mode
26811
        iterator and SSE_FLOAT_MODE_P as insn constraint.
26812
        (_ucomi): Ditto from similar patterns.
26813
        (_vmmaskcmp3): Macroize from sse_vmmaskcmpv4sf3 and
26814
        sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
26815
        SSE_VEC_FLOAT_MODE_P as insn constraint.
26816
        (vcond): Ditto from similar patterns.
26817
        (and3, *and3): Ditto.
26818
        (_nand3): Ditto.
26819
        (ior3, *ior3): Ditto.
26820
        (xor3, *xor3): Ditto.
26821
        (*and3): Macroize from *andsf3 and *anddf3 using MODEF mode
26822
        iterator and SSE_FLOAT_MODE_P as insn constraint.
26823
        (*nand3): Ditto from similar patterns.
26824
        (*ior3): Ditto.
26825
        (*xor3): Ditto.
26826
 
26827
2008-02-20  Ira Rosen  
26828
 
26829
        * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
26830
        vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
26831
        vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
26832
 
26833
2008-02-19  Jan Hubicka  
26834
 
26835
        * predict.c (tree_bb_level_predictions): Remove variable next
26836
        mistakely introduced by previous commit.
26837
 
26838
2008-02-19  Jan Hubicka  
26839
 
26840
        * predict.c (predict_paths_leading_to): Rewrite.
26841
        (predict_paths_for_bb): New.
26842
        (tree_bb_level_predictions): Update call of predict_paths_leading_to.
26843
 
26844
2008-02-19  Ralf Wildenhues  
26845
 
26846
        PR bootstrap/35218
26847
        * Makefile.in (build_file_translate): New.
26848
        (gcc-vers.texi): Use it for translating $(abs_srcdir).
26849
        * config.build (build_file_translate): Set to `CMD //c' on MinGW.
26850
        * configure.ac (build_file_translate): Substitute it.
26851
        * configure: Regenerate.
26852
 
26853
2008-02-19  Jan Hubicka  
26854
 
26855
        PR rtl-optimization/34408
26856
        * see.c (see_def_extension_not_merged): Copy subreg so we don't have
26857
        invalid sharing.
26858
 
26859
2008-02-19  Jan Hubicka  
26860
 
26861
        PR middle-end/28779
26862
        * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
26863
        call_expr.
26864
 
26865
2008-02-19  H.J. Lu  
26866
 
26867
        PR Ada/35186
26868
        * config/i386/i386-modes.def: Revert the last DI alignment
26869
        change until Ada people can look into it.
26870
 
26871
2008-02-19  Nick Clifton  
26872
 
26873
        * opts.c (print_specific_help): Fix typo in --help text.
26874
 
26875
2008-02-19  Jakub Jelinek  
26876
 
26877
        PR target/35239
26878
        * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
26879
        32-bit inline asm without asm alternatives for host GCC < 3.0.
26880
 
26881
2008-02-19  Richard Guenther  
26882
 
26883
        PR tree-optimization/34989
26884
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
26885
        Allow propagation to INDIRECT_REF if we can simplify only.
26886
 
26887
2008-02-19  Manuel Lopez-Ibanez  
26888
 
26889
        * c-common.c (warn_for_collisions_1): Use appropriate option when
26890
        warning.
26891
 
26892
2008-02-19  Nick Clifton  
26893
 
26894
        PR other/31349
26895
        * opts.c (undocumented_msg): Leave blank unless checking is enabled.
26896
        (handle_options): Fix indentation.
26897
        (print_filtered_help): If no language-specific options were
26898
        displayed tell the user how to list all the options supported by
26899
        the language's front-end.
26900
        (print_specific_help): Fix indentation and remove duplicate line.
26901
        (common_handle_option): Handle the -v option.
26902
        For --help enable the display of undocumented options if the -v
26903
        switch has been included on the command line.
26904
        For --help= check for overlaps in the arguments between the option
26905
        classes and the language names and issue a warning when they
26906
        cannot be disambiguated.
26907
        * c.opt (v): Pass on to the common option handler.
26908
 
26909
2008-02-19  Revital Eres  
26910
 
26911
        * modulo-sched.c (sms_schedule): Change dump message when
26912
        create_ddg function fails.
26913
        (try_scheduling_node_in_cycle): Rename row to cycle.
26914
        (print_partial_schedule): Rename CYCLE to ROW.
26915
 
26916
2008-02-19  Christian Bruel  
26917
            Zdenek Dvorak  
26918
 
26919
        * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
26920
 
26921
2008-02-19  Uros Bizjak  
26922
 
26923
        PR target/33555
26924
        * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
26925
        (*x86_movdicc_0_m1_se): Ditto.
26926
 
26927
2008-02-19  Uros Bizjak  
26928
 
26929
        * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
26930
        (CMPtype): Define as __gcc_CMPtype.
26931
        * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
26932
        (CMPtype): Define as __gcc_CMPtype.
26933
 
26934
2008-02-19  Hans-Peter Nilsson  
26935
 
26936
        Support valgrind 3.3 for --enable-checking=valgrind.
26937
        * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
26938
        here.
26939
        [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
26940
        [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
26941
        [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
26942
        * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
26943
        Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
26944
        VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
26945
        VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
26946
        respectively.
26947
        * ggc-zone.c: Similar.
26948
        * ggc-page.c: Similar.
26949
 
26950
2008-02-19  Paul Brook  
26951
 
26952
        PR target/35071
26953
        * config/arm/ieee754-df.S: Fix do_it typo.
26954
        * config/arm/ieee754-sf.S: Fix do_it typo.
26955
 
26956
2008-02-18  H.J. Lu  
26957
 
26958
        PR target/35189
26959
        * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
26960
        (OPTION_MASK_ISA_3DNOW_SET): Likewise.
26961
        (OPTION_MASK_ISA_SSE_SET): Likewise.
26962
        (OPTION_MASK_ISA_SSE2_SET): Likewise.
26963
        (OPTION_MASK_ISA_SSE3_SET): Likewise.
26964
        (OPTION_MASK_ISA_SSSE3_SET): Likewise.
26965
        (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
26966
        (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
26967
        (OPTION_MASK_ISA_SSE4_SET): Likewise.
26968
        (OPTION_MASK_ISA_SSE4A_SET): Likewise.
26969
        (OPTION_MASK_ISA_SSE5_SET): Likewise.
26970
        (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
26971
        (OPTION_MASK_ISA_MMX_UNSET): Updated.
26972
        (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
26973
        (OPTION_MASK_ISA_SSE_UNSET): Likewise.
26974
        (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
26975
        (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
26976
        (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
26977
        (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
26978
        (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
26979
        (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
26980
        (OPTION_MASK_ISA_SSE4): Removed.
26981
        (ix86_handle_option): Turn on bits in ix86_isa_flags and
26982
        ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
26983
        (override_options): Don't turn on implied SSE/MMX bits in
26984
        ix86_isa_flags.
26985
 
26986
2008-02-18  H.J. Lu  
26987
 
26988
        * config/i386/i386-modes.def: Use 4 byte alignment on DI for
26989
        32bit host.
26990
 
26991
2008-02-18  Joey Ye  
26992
 
26993
        PR middle-end/34921
26994
        * tree-nested.c (insert_field_into_struct): Set type alignment
26995
        to field alignment if the former is less than the latter.
26996
 
26997
2008-02-18  Jakub Jelinek  
26998
 
26999
        * BASE-VER: Set to 4.4.0.
27000
 
27001
2008-02-17  Ralf Wildenhues  
27002
 
27003
        * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
27004
        * doc/cfg.texi: Likewise.
27005
        * doc/extend.texi: Likewise.
27006
        * doc/gty.texi: Likewise.
27007
        * doc/invoke.texi: Likewise.
27008
        * doc/loop.texi: Likewise.
27009
        * doc/md.texi: Likewise.
27010
        * doc/passes.texi: Likewise.
27011
        * doc/rtl.texi: Likewise.
27012
        * doc/sourcebuild.texi: Likewise.
27013
        * doc/tm.texi: Likewise.
27014
        * doc/tree-ssa.texi: Likewise.
27015
 
27016
2008-02-17  Richard Guenther  
27017
 
27018
        PR middle-end/35227
27019
        * tree-complex.c (init_parameter_lattice_values): Handle parameters
27020
        without default definition.
27021
 
27022
2008-02-17  Richard Guenther  
27023
 
27024
        PR tree-optimization/35231
27025
        * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
27026
        if A | B != 1.
27027
 
27028
2008-02-17  Uros Bizjak  
27029
 
27030
        Revert:
27031
        2008-02-15  Uros Bizjak  
27032
        * config/i386/sfp-machine.h (CMPtype): Define as typedef using
27033
        libgcc_cmp_return mode.
27034
 
27035
2008-02-16  Manuel Lopez-Ibanez  
27036
 
27037
        PR c/28368
27038
        * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
27039
 
27040
2008-02-16  Ralf Corsepius  
27041
 
27042
        * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
27043
        multilibs.
27044
 
27045
2008-02-16  Ralf Wildenhues  
27046
 
27047
        * doc/c-tree.texi: Use `@.' where appropriate.
27048
        * doc/extend.texi: Likewise.
27049
        * doc/install.texi: Likewise.
27050
        * doc/invoke.texi: Likewise.
27051
        * doc/loop.texi: Likewise.
27052
        * doc/makefile.texi: Likewise.
27053
        * doc/md.texi: Likewise.
27054
        * doc/passes.texi: Likewise.
27055
        * doc/standards.texi: Likewise.
27056
        * doc/tm.texi: Likewise.
27057
 
27058
2008-02-15  Jakub Jelinek  
27059
 
27060
        PR middle-end/35196
27061
        * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
27062
        in entry_bb.
27063
        (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
27064
        rather than in entry_bb.
27065
 
27066
2008-02-15  Uros Bizjak  
27067
 
27068
        * config/i386/sfp-machine.h (CMPtype): Define as typedef using
27069
        libgcc_cmp_return mode.
27070
 
27071
2008-02-15  Jakub Jelinek  
27072
 
27073
        PR middle-end/35130
27074
        * tree-nested.c (convert_call_expr): Put FRAME.* vars into
27075
        OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
27076
 
27077
2008-02-15  Richard Guenther  
27078
            Zdenek Dvorak  
27079
 
27080
        PR tree-optimization/35164
27081
        * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
27082
        * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
27083
        * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
27084
        Only propagate addresses which do not have abnormal SSA_NAMEs
27085
        in their operands.
27086
 
27087
2008-02-15  Joseph Myers  
27088
 
27089
        PR target/35088
27090
        * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
27091
 
27092
2008-02-15  Jan Hubicka  
27093
 
27094
        PR middle-end/35149
27095
        * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
27096
 
27097
2008-02-15  Uros Bizjak  
27098
 
27099
        PR middle-end/34621
27100
        * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
27101
        when calculating alignment_pad.
27102
 
27103
2008-02-15  Uros Bizjak  
27104
 
27105
        * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
27106
        (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
27107
        * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
27108
        and STACK_BOUNDARY define.
27109
 
27110
2008-02-14  Danny Smith  
27111
 
27112
        PR preprocessor/35061
27113
        * c-pragma.c (handle_pragma_pop_macro): Check that
27114
        pushed_macro_table has been allocated.
27115
 
27116
2008-02-14  Eric Botcazou  
27117
 
27118
        PR middle-end/35136
27119
        * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
27120
        (force_gimple_operand): Likewise.
27121
        * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
27122
        for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
27123
        Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
27124
        (find_interesting_uses_address): Check addressability and alignment
27125
        of the base expression only after substituting bases of IVs into it.
27126
 
27127
2008-02-14  Michael Matz  
27128
 
27129
        PR target/34930
27130
        * function.c (instantiate_virtual_regs_in_insn): Reload address
27131
        before falling back to reloading the whole operand.
27132
 
27133
2008-02-14  Andreas Krebbel  
27134
 
27135
        * config/s390/s390.c (s390_mainpool_start): Emit the pool
27136
        before the first section switch note.
27137
 
27138
2008-02-14  Ralf Wildenhues  
27139
 
27140
        * doc/bugreport.texi: Update copyright years.
27141
        * doc/c-tree.texi: Likewise.
27142
        * doc/cfg.texi: Likewise.
27143
        * doc/cpp.texi: Likewise.
27144
        * doc/cppinternals.texi: Likewise.
27145
        * doc/fragments.texi: Likewise.
27146
        * doc/frontends.texi: Likewise.
27147
        * doc/gcc.texi: Likewise.
27148
        * doc/gty.texi: Likewise.
27149
        * doc/hostconfig.texi: Likewise.
27150
        * doc/implement-c.texi: Likewise.
27151
        * doc/libgcc.texi: Likewise.
27152
        * doc/loop.texi: Likewise.
27153
        * doc/makefile.texi: Likewise.
27154
        * doc/options.texi: Likewise.
27155
        * doc/passes.texi: Likewise.
27156
        * doc/rtl.texi: Likewise.
27157
        * doc/sourcebuild.texi: Likewise.
27158
        * doc/standards.texi: Likewise.
27159
        * doc/tree-ssa.texi: Likewise.
27160
        * doc/trouble.texi: Likewise.
27161
 
27162
        * doc/extend.texi: Use @: or add comma where appropriate.
27163
        * doc/invoke.texi: Likewise.
27164
        * doc/tm.texi: Likewise.
27165
 
27166
2008-02-14  Alan Modra  
27167
 
27168
        PR target/34393
27169
        * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
27170
        to a reg.
27171
 
27172
2008-02-14  Jesper Nilsson  
27173
 
27174
        * doc/md.texi (clz, ctz): Add reference.
27175
        * doc/rtl.texi (clz, ctz): Likewise.
27176
 
27177
2008-02-13  Ralf Wildenhues  
27178
 
27179
        PR other/35148
27180
        * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
27181
        srcdir.
27182
 
27183
2008-02-13  Andreas Krebbel  
27184
 
27185
        * config/s390/s390.c (struct constant_pool): New field
27186
        emit_pool_after added.
27187
        (s390_mainpool_start): Set the emit_pool_after flag according
27188
        to the section switch notes.
27189
        (s390_mainpool_finish): Consider emit_pool_after when emitting
27190
        the literal pool at the end of the function.
27191
        (s390_chunkify_start): Force literal pool splits at section
27192
        switch notes.
27193
 
27194
2008-02-13  Michael Matz  
27195
 
27196
        PR debug/35065
27197
        * var-tracking.c (clobber_variable_part): Correctly traverse the
27198
        list.
27199
 
27200
2008-02-13  Manuel Lopez-Ibanez  
27201
 
27202
        PR 29673
27203
        * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
27204
        Add -fdump-ipa-inline.
27205
        * tree-dump.c (dump_files): Remove tree-inlined dump.
27206
        * tree-pass.h (tree_dump_index): Remove TDI_inlined.
27207
 
27208
2008-02-12  Richard Guenther  
27209
 
27210
        PR tree-optimization/35171
27211
        * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
27212
        default defs.
27213
 
27214
2008-02-12  Richard Guenther  
27215
 
27216
        PR middle-end/35163
27217
        * fold-const.c (fold_widened_comparison): Use get_unwidened in
27218
        value-preserving mode.  Disallow final truncation.
27219
 
27220
2008-02-12  Eric Botcazou  
27221
 
27222
        PR middle-end/35136
27223
        * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
27224
        code from here to...
27225
        (force_gimple_operand): ...here.
27226
 
27227
2008-02-12  Jakub Jelinek  
27228
 
27229
        PR c++/35144
27230
        * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
27231
        non-compatible pointers.
27232
        (generate_element_copy): If SRC and DST are RECORD_TYPEs with
27233
        different FIELD_DECLs, try harder by comparing field offsets, sizes
27234
        and types.
27235
 
27236
        PR inline-asm/35160
27237
        * function.c (match_asm_constraints_1): Don't replace the same input
27238
        multiple times.
27239
 
27240
2008-02-12  Anatoly Sokolov  
27241
 
27242
        * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
27243
        * config/avr/avr.c (expand_prologue): Save RAMPZ register.
27244
        (expand_epilogue): Restore RAMPZ register.
27245
        * config/avr/avr.md (RAMPZ_ADDR): New constant.
27246
 
27247
2008-02-11  Kai Tietz  
27248
 
27249
        * config/i386/cygwin.asm (__alloca): Correct calling
27250
        convention and alignment.
27251
        (__chkstk): Force 8 byte stack alignment.
27252
 
27253
2008-02-11  Uros Bizjak  
27254
            Richard Guenther  
27255
 
27256
        PR tree-optimization/33992
27257
        * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
27258
        the zero we compare against.
27259
 
27260
2008-02-10  Danny Smith  
27261
 
27262
        PR libfortran/35063
27263
        * gthr-win32.h (__gthread_mutex_destroy_function): New function
27264
        to CloseHandle after unlocking to prevent accumulation of handle
27265
        count.
27266
 
27267
2008-02-09  John David Anglin  
27268
 
27269
        PR middle_end/34150
27270
        * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
27271
        pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
27272
        and update LABEL_NUSES during and after reload.
27273
 
27274
2008-02-08  Steven Bosscher  
27275
 
27276
        PR middle-end/34627
27277
        * combine.c (simplify_if_then_else): Make sure the comparison is
27278
        against const0_rtx when simplifying to (abs x) or (neg (abs X)).
27279
 
27280
2008-02-08  Richard Sandiford  
27281
 
27282
        PR bootstrap/35051
27283
        * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
27284
        (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
27285
        * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
27286
        (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
27287
        * tree.h (get_type_static_bounds): Likewise.
27288
 
27289
2008-02-08  Ralf Wildenhues  
27290
 
27291
        * doc/invoke.texi (Option Summary, C++ Dialect Options)
27292
        (Objective-C and Objective-C++ Dialect Options, Warning Options):
27293
        Make -Wfoo language annotations match what the compiler outputs.
27294
 
27295
2008-02-08  Sa Liu  
27296
 
27297
        * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
27298
        intrinsics spu_convts, spu_convtu, spu_convtf.
27299
 
27300
2008-02-08  Hans-Peter Nilsson  
27301
 
27302
        * doc/extend.texi (Function Attributes) : Mention
27303
        asm ("") as method to keep calls.
27304
 
27305
2008-02-07  Manuel Lopez-Ibanez  
27306
 
27307
        PR other/32754
27308
        * doc/options.texi (Options): Replace references to opts.sh with
27309
        optc-gen.awk.
27310
        * opts-common.c: Likewise.
27311
        * optc-gen.awk: Likewise.
27312
 
27313
2008-02-07  Andreas Krebbel  
27314
 
27315
        * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
27316
 
27317
2008-02-07  Richard Henderson  
27318
 
27319
        PR rtl-opt/33410
27320
        * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
27321
        EXPR_LIST for the REG_EQUAL instead of a comparison with a
27322
        funny mode.
27323
 
27324
2008-02-07  Uros Bizjak  
27325
 
27326
        PR tree-optimization/35085
27327
        * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
27328
        for operand entry oe2 in addition to operand entry oe3 in order to
27329
        expose more opportunities for vectorizer sum reduction.
27330
 
27331
2008-02-06  Kaveh R. Ghazi  
27332
 
27333
        PR other/35107
27334
        * Makefile.in (LIBS): Remove $(GMPLIBS).
27335
        (cc1-dummy, cc1): Add $(GMPLIBS).
27336
 
27337
2008-02-06  Jan Hubicka  
27338
 
27339
        PR target/23322
27340
        * i386.md (moddf_integer): Do not produce partial memory stalls for
27341
        targets where it hurts.
27342
 
27343
2008-02-06  Uros Bizjak  
27344
 
27345
        PR target/35083
27346
        * optabs.c (expand_float): Do not check for decimal modes when
27347
        expanding unsigned integer through signed conversion.
27348
 
27349
2008-02-06  Nick Clifton  
27350
 
27351
        * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
27352
        inside the clobber with a match_operand and duplicated operand
27353
        number in the constraint.
27354
        (ineqbranchsi): Delete redundant comment.
27355
 
27356
2008-02-06  Ralf Corsepius  
27357
 
27358
        * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
27359
        builtin_define ("__USE_INIT_FINI__").
27360
        * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
27361
        -msx multilibs.
27362
        * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
27363
 
27364
2008-02-06  Ralf Wildenhues  
27365
 
27366
        PR documentation/30330
27367
        * doc/invoke.texi (C++ Dialect Options)
27368
        (Objective-C and Objective-C++ Dialect Options, Warning Options):
27369
        For each warning option -Wfoo that allows -Wno-foo, ensure both
27370
        -Wfoo and -Wno-foo are listed in the option index.  Fix index
27371
        entry of -Wswitch-default, index -Wnormalized= including the
27372
        `=', and -Wlarger-than-@var{len} including @var{len}.
27373
 
27374
2008-02-05  Uros Bizjak  
27375
 
27376
        * config/i386/i386.md (floatunssisf2): Use
27377
        ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
27378
        (floatunssi2): Rename from floatunssisf2 and floatunssidf2.
27379
        Macroize expander using MODEF mode iterator.
27380
 
27381
2008-02-05  Diego Novillo  
27382
 
27383
        http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
27384
 
27385
        PR 33738
27386
        * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
27387
 
27388
2008-02-05  Kaveh R. Ghazi  
27389
 
27390
        PR other/35070
27391
        * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
27392
 
27393
2008-02-05  H.J. Lu  
27394
 
27395
        PR target/35084
27396
        * config/i386/i386.c (ix86_function_sseregparm): Add an arg
27397
        to indicate if a message should be generated.
27398
        (init_cumulative_args): Updated.
27399
        (function_value_32): Likewise.
27400
 
27401
2008-02-05  Joseph Myers  
27402
 
27403
        * doc/include/texinfo.tex: Update to version 2008-02-04.16.
27404
 
27405
2008-02-05  Uros Bizjak  
27406
 
27407
        PR target/35083
27408
        * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
27409
        Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
27410
 
27411
2008-02-04  Diego Novillo  
27412
 
27413
        http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
27414
 
27415
        PR 33738
27416
        * tree-vrp.c (vrp_evaluate_conditional): With
27417
        -Wtype-limits, emit a warning when comparing against a
27418
        constant outside the natural range of OP0's type.
27419
 
27420
2008-02-04  Richard Guenther  
27421
 
27422
        PR middle-end/33631
27423
        * expr.c (count_type_elements): Give for unions instead of
27424
        guessing.
27425
 
27426
2008-02-04  Richard Guenther  
27427
 
27428
        PR middle-end/35043
27429
        * gimplify.c (gimplify_init_ctor_eval): Convert array indices
27430
        to TYPE_DOMAINs base type instead of using bitsizetype here.
27431
 
27432
2008-02-03  Jason Merrill  
27433
 
27434
        * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
27435
 
27436
2008-02-04  Ralf Wildenhues  
27437
 
27438
        PR other/29972
27439
        * doc/invoke.texi (C++ Dialect Options, Optimize Options)
27440
        (HPPA Options, i386 and x86-64 Options, IA-64 Options)
27441
        (RS/6000 and PowerPC Options): Fix typos and markup.
27442
        * doc/passes.texi (Tree-SSA passes): Likewise.
27443
 
27444
2008-02-02  Michael Matz  
27445
 
27446
        PR target/35045
27447
        * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
27448
        from record_last_reg_set_info.
27449
        (record_last_reg_set_info): Take an RTX argument, iterate over all
27450
        constituent hardregs.
27451
        (record_last_set_info, record_opr_changes): Change calls to
27452
        new signature or to record_last_reg_set_info_regno.
27453
 
27454
2008-02-02  Gerald Pfeifer  
27455
 
27456
        * doc/extend.texi (X86 Built-in Functions): Fix grammar.
27457
 
27458
2008-02-01  Hans-Peter Nilsson  
27459
 
27460
        PR rtl-optimization/34773
27461
        * reg-notes.def (EQUAL): Mention significance of combination of
27462
        REG_EQUAL and REG_RETVAL.
27463
        * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
27464
        insn that has a REG_RETVAL.
27465
 
27466
2008-02-01  Roger Sayle  
27467
 
27468
        PR bootstrap/33781
27469
        * configure.ac (--enable-fixed-point): Disable unless explicitly
27470
        requested on IRIX.
27471
        * configure: Regenerate.
27472
 
27473
2008-02-01  Richard Guenther  
27474
 
27475
        PR other/35042
27476
        * invoke.texi (-finline-limit): Remove no longer true parts
27477
        of the documentation.  Note that there is no default value.
27478
 
27479
2008-02-01  Andrew Pinski  
27480
            Mark Mitchell  
27481
            Ben Elliston  
27482
 
27483
        PR c/29326
27484
        * doc/extend.texi (Other Builtins): Document.
27485
 
27486
2008-01-31  Tom Browder  
27487
 
27488
        * doc/c-tree.texi (Types): Fix grammar.
27489
        (Expression trees): Ditto.
27490
        * doc/passes.texi (Tree-SSA passes): Ditto.
27491
 
27492
        * doc/configterms.texi (Configure Terms): Fix typo.
27493
        * doc/cpp.texi (Common Predefined Macros): Ditto.
27494
        * doc/md.texi (Machine Constraints): Ditto.
27495
 
27496
        * doc/makefile.texi (Makefile): Add comma.
27497
 
27498
2008-01-31  Tom Browder  
27499
            Gerald Pfeifer  
27500
 
27501
        * doc/sourcebuild.texi (Front End): Remove references to CVS
27502
        and CVSROOT/modules.
27503
        (Texinfo Manuals): Replace reference to CVS by one to SVN.
27504
        (Back End): Remove reference to CVS.
27505
 
27506
2008-01-31  Richard Sandiford  
27507
 
27508
        PR target/34900
27509
        * config/mips/mips.c (gen_load_const_gp): New function, taking a
27510
        comment from...
27511
        (mips16_gp_pseudo_reg): ...here.
27512
        * config/mips/mips.md (load_const_gp): Replace with...
27513
        (load_const_gp_): ...this :P-based insn.
27514
 
27515
2008-01-31  Manuel Lopez-Ibanez  
27516
 
27517
        * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
27518
        options. Minor fixes.
27519
        (-std): Move reference to standards closer to where language
27520
        standards are first mentioned.
27521
 
27522
2008-01-31  Richard Sandiford  
27523
 
27524
        PR rtl-optimization/34995
27525
        * reload.c (alternative_allows_const_pool_ref): Take an rtx
27526
        parameter and return a bool.  If the rtx parameter is nonnull,
27527
        check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
27528
        (find_reloads): Update call accordingly.  Pass the new operand
27529
        if it needed no address reloads, otherwise pass null.
27530
 
27531
2008-01-30  Richard Henderson  
27532
 
27533
        PR c/34993
27534
        * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
27535
        for unbounded arrays.
27536
 
27537
2008-01-30  Silvius Rus  
27538
 
27539
        * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
27540
 
27541
2008-01-30  Jan Hubicka  
27542
 
27543
        PR target/34982
27544
        * i386.c (init_cumulative_args): Use real function declaration when
27545
        calling locally.
27546
 
27547
2008-01-30  Richard Sandiford  
27548
 
27549
        PR rtl-optimization/34998
27550
        * global.c (build_insn_chain): Treat non-subreg_lowpart
27551
        SUBREGs of pseudos as clobbering all the words covered by the
27552
        SUBREG, not just all the bytes.
27553
        * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
27554
        original df_ref rather than an extract parameter.
27555
        (global_conflicts): Update call accordingly.
27556
 
27557
2008-01-30  Andreas Krebbel  
27558
 
27559
        * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
27560
        the overflow check to make it easier to read.
27561
        (__fixtfdi): Change the type of the ll member in union
27562
        long_double to UDItype_x.
27563
 
27564
2008-01-30  Jakub Jelinek  
27565
 
27566
        PR middle-end/34969
27567
        * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
27568
        * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
27569
        * tree-inline.c (fold_marked_statements): Call
27570
        cgraph_update_edges_for_call_stmt if folding a call statement.
27571
        * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
27572
        debug_generic_stmt calls, reset it back afterwards.
27573
 
27574
        PR c/35017
27575
        * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
27576
        static decls.
27577
        * c-typeck.c (build_external_ref): Don't pedwarn about
27578
        static vars in current function's scope.
27579
 
27580
2008-01-29  Joseph Myers  
27581
 
27582
        * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
27583
 
27584
2008-01-29  Bernhard Fischer  
27585
 
27586
        PR c/35002
27587
        * ipa-struct-reorg.c: Fix spelling.
27588
        * params.def: Ditto.
27589
 
27590
2008-01-29  Richard Guenther  
27591
 
27592
        PR middle-end/35006
27593
        * tree-inline.h (struct copy_body_data): Add remapping_type_depth
27594
        field.
27595
        * tree-inline.c (remap_type): Increment remapping_type_depth
27596
        around remapping types.
27597
        (copy_body_r): Only add referenced variables if they are referenced
27598
        from code, not types.
27599
 
27600
2008-01-29  Douglas Gregor  
27601
 
27602
        PR c++/34055
27603
        PR c++/34103
27604
        PR c++/34219
27605
        PR c++/34606
27606
        PR c++/34753
27607
        PR c++/34754
27608
        PR c++/34755
27609
        PR c++/34919
27610
        PR c++/34961
27611
        * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
27612
        qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
27613
 
27614
2008-01-28  Andy Hutchinson   
27615
 
27616
        PR target/34412
27617
        * config/avr/avr.c (expand_prologue): Use correct QI mode frame
27618
        pointer for tiny stack.
27619
 
27620
2008-01-28  Bernhard Fischer  
27621
 
27622
        * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
27623
 
27624
2008-01-28  Bernhard Fischer  
27625
 
27626
        * config/vx-common.h: Fix typo in comment.
27627
 
27628
2008-01-28  Ian Lance Taylor  
27629
 
27630
        PR c++/34862
27631
        PR c++/33407
27632
        * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
27633
        coalesce pointers if they have different DECL_NO_TBAA_P values.
27634
        * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
27635
        between variables with different DECL_NO_TBAA_P values.
27636
 
27637
2008-01-28  Nathan Froyd  
27638
 
27639
        PR 31535
27640
        * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
27641
        are not legitimate small data references on SPE targets.
27642
 
27643
2008-01-28  David Daney  
27644
 
27645
        * doc/install.texi (mips-*-*): Recommend binutils 2.18.
27646
 
27647
2008-01-28  David Daney  
27648
 
27649
        * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
27650
 
27651
2008-01-27  Joseph Myers  
27652
 
27653
        * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
27654
        m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
27655
        *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
27656
        *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
27657
        hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
27658
        i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
27659
        i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
27660
        vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
27661
 
27662
2008-01-27  Bernhard Fischer  
27663
 
27664
        * basic-block.h (condjump_equiv_p): Fix comment.
27665
 
27666
2008-01-27  Bernhard Fischer  
27667
 
27668
        * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
27669
        print_generic_stmt_indented): Fix comment.
27670
 
27671
2008-01-27  Bernhard Fischer  
27672
 
27673
        * configure.ac (__stack_chk_fail): Add detecion for availability
27674
        of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
27675
        * configure: Regenerate.
27676
 
27677
2008-01-26  Maxim Kuvyrkov  
27678
 
27679
        PR middle-end/34688
27680
        * final.c (output_addr_const): Handle TRUNCATE.
27681
 
27682
2008-01-26  Zdenek Dvorak  
27683
 
27684
        PR target/34711
27685
        * tree-ssa-loop-ivopts.c (comp_cost): New type.
27686
        (zero_cost, infinite_cost): New constants.
27687
        (struct cost_pair): Change type of cost to comp_cost.
27688
        (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
27689
        (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
27690
        New functions.
27691
        (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
27692
        split_address_cost, ptr_difference_cost, difference_cost,
27693
        get_computation_cost_at, get_computation_cost,
27694
        determine_use_iv_cost_generic, determine_use_iv_cost_address,
27695
        determine_use_iv_cost_condition, determine_use_iv_costs,
27696
        cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
27697
        iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
27698
        iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
27699
        Change type of cost to comp_cost.
27700
        (determine_iv_cost): Increase cost of non-original ivs, instead
27701
        of decreasing the cost of original ones.
27702
        (get_address_cost): Indicate the complexity of the addressing mode
27703
        in comp_cost.
27704
        (try_add_cand_for): Prefer using ivs not specific to some object.
27705
        * tree-flow.h (force_expr_to_var_cost): Declaration removed.
27706
 
27707
2008-01-26  Peter Bergner  
27708
            Janis Johnson  
27709
 
27710
        PR target/34814
27711
        * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
27712
        (TARGET_INSTANTIATE_DECLS): Likewise.
27713
        * target.h (expand_to_rtl_hook): New target hook.
27714
        (instantiate_decls): Likewise.
27715
        * function.c (instantiate_decl): Make non-static.  Rename to...
27716
        (instantiate_decl_rtl): ... this.
27717
        (instantiate_expr): Use instantiate_decl_rtl.
27718
        (instantiate_decls_1): Likewise.
27719
        (instantiate_decls): Likewise.
27720
        (instantiate_virtual_regs: Call new instantiate_decls taget hook.
27721
        * function.h (instantiate_decl_rtl): Add prototype.
27722
        * cfgexpand.c (target.h): New include.
27723
        (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
27724
        * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
27725
        (TARGET_INSTANTIATE_DECLS): Likewise.
27726
        (TARGET_INITIALIZER): New target hooks added.
27727
        * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
27728
        New prototype.
27729
        * config/rs6000/rs6000.c (tree-flow.h): New include.
27730
        (machine_function): Add sdmode_stack_slot field.
27731
        (rs6000_alloc_sdmode_stack_slot): New function.
27732
        (rs6000_instantiate_decls): Likewise.
27733
        (rs6000_secondary_memory_needed_rtx): Likewise.
27734
        (rs6000_check_sdmode): Likewise.
27735
        (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
27736
        (TARGET_INSTANTIATE_DECLS): Likewise.
27737
        (rs6000_hard_regno_mode_ok): Allow SDmode.
27738
        (num_insns_constant): Likewise.  Handle _Decimal32 constants.
27739
        (rs6000_emit_move): Handle SDmode.
27740
        (function_arg_advance): Likewise.
27741
        (function_arg): Likewise.
27742
        (rs6000_gimplify_va_arg): Likewise.  Add special handling of
27743
        SDmode var args for 32-bit compiles.
27744
        (rs6000_secondary_reload_class): Handle SDmode.
27745
        (rs6000_output_function_epilogue): Likewise.
27746
        (rs6000_function_value): Simplify if statement.
27747
        (rs6000_libcall_value): Likewise.
27748
        * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
27749
        (SECONDARY_MEMORY_NEEDED_RTX): Add define.
27750
        * config/rs6000/dfp.md (movsd): New define_expand and splitter.
27751
        (movsd_hardfloat): New define_insn.
27752
        (movsd_softfloat): Likewise.
27753
        (movsd_store): Likewise.
27754
        (movsd_load): Likewise.
27755
        (extendsddd2): Likewise.
27756
        (extendsdtd2): Likewise.
27757
        (truncddsd2): Likewise.
27758
        (movdd_hardfloat64): Fixup comment.
27759
        (UNSPEC_MOVSD_LOAD): New constant.
27760
        (UNSPEC_MOVSD_STORE): Likewise.
27761
 
27762
2008-01-26  Jakub Jelinek  
27763
 
27764
        PR c++/34965
27765
        * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
27766
        TRUTH_XOR_EXPR.
27767
        (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
27768
        (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
27769
        (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
27770
        and TRUTH_XOR_EXPR.
27771
 
27772
2008-01-26  David Edelsohn  
27773
 
27774
        PR target/34794
27775
        * config.gcc: Separate AIX 5.3 from AIX 6.1.
27776
        * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
27777
        __LONGDOUBLE128 too.
27778
        * config/rs6000/aix61.h: New file.
27779
 
27780
2008-01-26  Richard Sandiford  
27781
 
27782
        PR rtl-optimization/34959
27783
        * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
27784
        popcount and parity rtxes the same mode as their operand.
27785
        Truncate or extend the result to the return value's mode
27786
        if necessary.
27787
 
27788
2008-01-26  Richard Sandiford  
27789
 
27790
        PR target/34981
27791
        * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
27792
        * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
27793
        to GOT_VERSION_REGNUM.
27794
        (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
27795
        (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
27796
        * config/mips/mips.c (mips_emit_call_insn): New function.
27797
        (mips_call_tls_get_addr): Call mips_expand_call directly.
27798
        (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
27799
        emit_call_insn.
27800
        (mips16_build_call_stub): Likewise.  Return the call insn or null.
27801
        (mips_expand_call): Update the call to mips16_build_call_stub
27802
        accordingly and a remove redundant condition.  Assert that MIPS16
27803
        stubs do not use lazy binding.  Use mips_emit_call_insn and return
27804
        the call insn.
27805
        (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
27806
        TARGET_USE_GOT.
27807
        (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
27808
        (mips_avoid_hazard): Remove hazard_set handling.
27809
        * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
27810
        (UNSPEC_RESTORE_GP): ...this.
27811
        (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
27812
        (FAKE_CALL_REGNO): Rename to...
27813
        (GOT_VERSION_REGNUM): ...this.
27814
        (type): Add "ghost" value.  Add an associated insn reservation.
27815
        (hazard_set): Remove.
27816
        (exception_receiver): Rename to...
27817
        (restore_gp): ...this and update the unspec identifier accordingly.
27818
        (exception_receiver, nonlocal_got_receiver): New expanders.
27819
        (load_call): Use GOT_VERSION_REGNUM.  Don't set
27820
        FAKE_CALL_REGNO.  Remove hazard_set attribute.
27821
        (set_got_version, update_got_version): New patterns.
27822
 
27823
2008-01-26  Danny Smith  
27824
 
27825
        PR target/34970
27826
        * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
27827
 
27828
2008-01-25  Joseph Myers  
27829
 
27830
        PR other/31955
27831
        * doc/install.texi2html: Generate gcc-vers.texi.
27832
 
27833
2008-01-25  DJ Delorie  
27834
 
27835
        * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
27836
 
27837
2008-01-25  Joseph Myers  
27838
 
27839
        * config/c4x: Remove directory.
27840
        * config.gcc (crx-*, mt-*): Mark obsolete.
27841
        (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
27842
        h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
27843
        sh-*-rtemscoff*): Remove cases.
27844
        * defaults.h (C4X_FLOAT_FORMAT): Remove.
27845
        * real.c (encode_c4x_single, decode_c4x_single,
27846
        encode_c4x_extended, decode_c4x_extended, c4x_single_format,
27847
        c4x_extended_format): Remove.
27848
        * real.h (c4x_single_format, c4x_extended_format): Remove.
27849
        * doc/extend.texi (interrupt, naked): Remove mention of attributes
27850
        on C4x.
27851
        (Pragmas): Remove comment about c4x pragmas.
27852
        * doc/install.texi (c4x): Remove target-specific instructions.
27853
        * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
27854
        * doc/md.texi (Machine Constraints): Remove C4x documentation.
27855
        * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
27856
        refer to C4x source files as examples.
27857
        (C4X_FLOAT_FORMAT): Remove documentation.
27858
 
27859
2008-01-25  Bernd Schmidt  
27860
 
27861
        * config/bfin/bfin.c (override_options): Reorder tests so that
27862
        flag_pic gets enabled for -msep-data.
27863
 
27864
2008-01-25  Richard Guenther  
27865
 
27866
        PR middle-end/32244
27867
        * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
27868
        to its bitfield precision if required.
27869
 
27870
2008-01-25  Jakub Jelinek  
27871
 
27872
        PR middle-end/33880
27873
        * tree-nested.c (walk_omp_for): New function.
27874
        (convert_nonlocal_reference, convert_local_reference): Call
27875
        walk_omp_for on OMP_FOR.
27876
        (convert_call_expr): Call walk_body on OMP_FOR's
27877
        OMP_FOR_PRE_INIT_BODY.
27878
 
27879
2008-01-25  Richard Guenther  
27880
 
27881
        PR tree-optimization/34966
27882
        * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
27883
        default defs and PHI_NODEs we have to insert after the
27884
        defining statement.
27885
 
27886
2008-01-24  Nick Clifton  
27887
 
27888
        * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
27889
        Provide a default definition.
27890
        (LIBGCC2_UNITS_PER_WORD): Likewise.
27891
 
27892
        * config/stormy16/stormy16.c: Include df.h for the prototype
27893
        for df_regs_ever_live_p.
27894
        (xstormy16_expand_builtin_va_start): Convert the stack offset
27895
        into a component_ref and then use POINTER_PLUS_EXPR to add it
27896
        to the incoming_virtual_args_rtx.
27897
        (xstormy16_gimplify_va_arg_expr): Rename to
27898
        xstormy16_gimplify_va_arg_expr.
27899
        Use POINTER_PLUS_EXPR when performing pointer arithmetic.
27900
        (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
27901
        xstormy16_gimplify_va_arg_expr.
27902
        Fix up some formatting issues.
27903
 
27904
        * config/stormy16/stormy16.c (xstormy16_carry_plus_operand):
27905
        Move to predicates.md.
27906
        (xs_hi_general_operand): Likewise.
27907
        (xs_hi_nonmemory_operand): Likewise.
27908
        * config/stormy16/predicates.md:
27909
        (xstormy16_carry_plus_operand): New predicate.
27910
        (xs_hi_general_operand): New predicate.
27911
        (xs_hi_nonmemory_operand): New predicate.
27912
        * config/stormy16/stormy16-protos.h:
27913
        (xstormy16_carry_plus_operand): Delete prototype.
27914
        (xs_hi_general_operand): Likewise.
27915
        (xs_hi_nonmemory_operand): Likewise.
27916
 
27917
        * config/storm16/stormy16.md (addhi3): Remove earlyclobber
27918
        modifiers as they are no longer needed and they can trigger
27919
        reload spill failures.
27920
 
27921
        * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
27922
        with a match_operand in order to help reload.
27923
 
27924
        * config/storm16/stormy16.md (movhi_internal): Replace 'r'
27925
        constraint with 'e' for the 8th alternative as this version of
27926
        the mov.w instruction only accepts the lower 8 registers.
27927
 
27928
2008-01-25  Uros Bizjak  
27929
 
27930
        PR target/34856
27931
        * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
27932
        Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
27933
        vector elements.
27934
 
27935
2008-01-25  Jakub Jelinek  
27936
 
27937
        PR middle-end/33333
27938
        * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
27939
 
27940
2008-01-25  Golovanevsky Olga  
27941
 
27942
        * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
27943
        New functions.
27944
        (remove_structure): Update allocations list before removing structure.
27945
 
27946
2008-01-25  Golovanevsky Olga  
27947
 
27948
        * ipa-struct-reorg.c (is_safe_cond_expr,
27949
        create_new_stmts_for_cond_expr): Use integer_zerop function,
27950
        that recognize not only zero-pointer, but zero-integer too.
27951
 
27952
2008-01-25  Ben Elliston  
27953
 
27954
        PR other/22232
27955
        * fixproto: Escape "." in sed expression that strips leading "./".
27956
 
27957
2008-01-24  H.J. Lu  
27958
 
27959
        PR driver/34904
27960
        * gcc.c (SWITCH_OK): Removed.
27961
        (SWITCH_LIVE): Changed to bit.
27962
        (SWITCH_FALSE): Likewise.
27963
        (SWITCH_IGNORE): Likewise.
27964
        (switchstr): Change live_cond to unsigned int.
27965
        (process_command): Replace SWITCH_OK with 0.
27966
        (do_self_spec): Likewise.
27967
        (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
27968
        (give_switch): Likewise.
27969
        (used_arg): Likewise.
27970
        (do_spec_1): Set the SWITCH_IGNORE bit.
27971
        (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
27972
        bits.  Set the SWITCH_LIVE bit.
27973
 
27974
2008-01-24  Andreas Krebbel  
27975
 
27976
        * config/s390/s390.h (MOVE_RATIO): Define new target macro.
27977
 
27978
2008-01-24  Richard Sandiford  
27979
 
27980
        PR tree-optimization/34472
27981
        * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
27982
        parameter to a "bool *" and set *DATA to false if there is
27983
        an unsafe access.  Do not delete the structure here.
27984
        (check_cond_exprs): Delete it here instead.
27985
        (check_cond_exprs, exclude_cold_structs): Do not increase
27986
        I when removing a structure.
27987
 
27988
2008-01-24  Uros Bizjak  
27989
 
27990
        PR target/34856
27991
        * config/i386/i386.c (ix86_expand_vector_init): Consider only
27992
        CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
27993
 
27994
2008-01-24  Jakub Jakub Jelinek  
27995
 
27996
        PR middle-end/34934
27997
        * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
27998
        a fixed vector for stack.
27999
 
28000
2008-01-24  Ben Elliston  
28001
 
28002
        PR c++/25701
28003
        * doc/gcc.texi (Software development): Add a direntry for g++.
28004
 
28005
2008-01-23  Hans-Peter Nilsson  
28006
 
28007
        * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
28008
        stale and straggling -fforce-addr comments above.
28009
 
28010
        * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
28011
        define.
28012
        * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
28013
        * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
28014
 
28015
2008-01-23  Michael Matz  
28016
 
28017
        PR debug/34895
28018
        * dwarf2out.c (force_type_die): Use modified_type_die instead of
28019
        gen_type_die.
28020
 
28021
2008-01-23  Andreas Krebbel  
28022
 
28023
        * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
28024
        malloc result type.
28025
 
28026
2008-01-23  Anatoly Sokolov  
28027
 
28028
        * config/avr/avr.c (avr_current_arch): New variable.
28029
        (avr_arch_types): Add 'avr31' and 'avr51' entries.
28030
        (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
28031
        (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
28032
        (avr_override_options): Init 'avr_current_arch'.
28033
        (base_arch_s): Move from here...
28034
        * config/avr/avr.h (base_arch_s): ... here. Add new members
28035
        'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
28036
        'mega' to 'have_jmp_call'.
28037
        (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
28038
        "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
28039
        macros.
28040
        (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
28041
        architectures.
28042
        * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
28043
        MULTILIB_MATCHES): Ditto.
28044
 
28045
2008-01-23  Richard Guenther  
28046
 
28047
        PR middle-end/31529
28048
        * cgraphunit.c (cgraph_reset_node): Always mark the node
28049
        not reachable if it is not queued already.
28050
 
28051
2008-01-23  Bernd Schmidt  
28052
 
28053
        * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
28054
        * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
28055
        (cputype_selected): New static variable.
28056
        (bfin_handle_option): Set it if -mcpu is used.
28057
        (override_option): Select default set of workarounds if no cpu type
28058
        selected on the command line.
28059
        (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
28060
 
28061
        From  Michael Frysinger  
28062
        * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
28063
        BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
28064
 
28065
        * config/bfin/elf.h (LIB_SPEC): Use proper linker script
28066
        for bf547, bf523, bf524, and bf526.
28067
        * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
28068
        bf526.
28069
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
28070
        __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
28071
        __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
28072
        __ADSPBF547__ and __ADSPBF54x__ for bf547.
28073
        * doc/invoke.texi (Blackfin Options): Document that
28074
        -mcpu now accept bf547, bf523, bf524, and bf526.
28075
 
28076
2008-01-22  Eric Botcazou  
28077
 
28078
        PR rtl-optimization/34628
28079
        * combine.c (try_combine): Stop and undo after the first combination
28080
        if an autoincrement side-effect on the first insn has effectively
28081
        been lost.
28082
 
28083
2008-01-22  David Edelsohn  
28084
 
28085
        PR target/34529
28086
        * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
28087
        Offset addresses are not valid for Altivec or paired float modes.
28088
 
28089
2008-01-22  Jakub Jelinek  
28090
 
28091
        PR c++/34607
28092
        * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
28093
        if DECL_INITIAL (decl) is error_mark_node.
28094
 
28095
        PR c++/34914
28096
        * c-common.c (handle_vector_size_attribute): Only allow
28097
        integral, scalar float and fixed point types.  Handle OFFSET_TYPE
28098
        the same way as pointer, array etc. types.
28099
        * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
28100
 
28101
        PR c++/34917
28102
        * tree.c (build_type_attribute_qual_variant): Call
28103
        build_qualified_type if attributes are equal, but quals are not.
28104
 
28105
2008-01-22  Manuel Lopez-Ibanez  
28106
 
28107
        PR 32102
28108
        * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
28109
        * flags.h (warn_strict_aliasing): Remove.
28110
        (warn_strict_overflow): Remove.
28111
        * opts.c (warn_strict_aliasing): Remove.
28112
        (warn_strict_overflow): Remove.
28113
        * c-opts.c (c_common_handle_option): -Wall only sets
28114
        -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
28115
        (c_common_post_options): Give default values to -Wstrict-aliasing
28116
        and -Wstrict-overflow if they are uninitialized.
28117
        * common.opt (Wstrict-aliasing): Specify Var and Init.
28118
        (Wstrict-overflow): Likewise.
28119
 
28120
2008-01-22  Kenneth Zadeck  
28121
 
28122
        PR rtl-optimization/26854
28123
        PR rtl-optimization/34400
28124
        PR rtl-optimization/34884
28125
        * ddg.c (create_ddg_dep_from_intra_loop_link): Use
28126
        DF_RD->gen.
28127
        * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
28128
        (df_rd_bb_info.expanded_lr_out): Deleted
28129
        * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
28130
        * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
28131
        (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
28132
        df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
28133
        Removed code to allocate, initialize or free expanded_lr_out.
28134
        (df_rd_bb_local_compute_process_def): Restructured to make more
28135
        understandable.
28136
        (df_rd_confluence_n): Removed code to no apply invalidate_by_call
28137
        sets if the sets are being trimmed.
28138
 
28139
2008-01-22  H.J. Lu  
28140
 
28141
        PR bootstrap/32287
28142
        * configure.ac (ld_vers): Support GNU linker version xx.xx.*
28143
        (as_vers): Likewise.
28144
        * configure: Regenerated.
28145
 
28146
2008-01-22  Manuel Lopez-Ibanez  
28147
 
28148
        PR middle-end/33092
28149
        * tree-pass.h (pass_build_alias): New pass.
28150
        * tree-ssa-alias.c (gate_build_alias): New.
28151
        (pass_build_alias): New.
28152
        * passes.c (init_optimization_passes): Add pass_build_alias after
28153
        pass_create_structure_vars.
28154
 
28155
2008-01-22  Wolfgang Gellerich  
28156
 
28157
        * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
28158
        Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
28159
        (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
28160
        S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
28161
        (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
28162
        S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
28163
        (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
28164
        S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
28165
        (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
28166
        (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
28167
        (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
28168
        (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
28169
        * config/s390/s390.md (FP_ALL): New mode iterator.
28170
        (_d): New mode attribute.
28171
        ("*signbit2>"): Changed mode of first operand.
28172
        ("isinf2"): Changed mode of first operand.
28173
        ("*TDC_insn"): Adaptation for DFP modes.
28174
 
28175
2008-01-22  Ben Elliston  
28176
 
28177
        * tree.c (check_qualified_type): Improve function description.
28178
 
28179
2008-01-21  Jason Merrill  
28180
 
28181
        PR c++/34196
28182
        * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
28183
        * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
28184
        if it is set.
28185
 
28186
2008-01-21  DJ Delorie  
28187
 
28188
        * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
28189
        return zero.
28190
 
28191
2008-01-21  Richard Guenther  
28192
 
28193
        PR middle-end/34856
28194
        * tree-cfg.c (verify_expr): Allow all invariant expressions
28195
        instead of just constant class ones as reference argument.
28196
        * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
28197
        like any other constant.
28198
        * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
28199
 
28200
2008-01-21  H.J. Lu  
28201
 
28202
        * regmove.c (fixup_match_1): Update call crossed frequencies.
28203
 
28204
2008-01-21  Richard Guenther  
28205
 
28206
        PR c/34885
28207
        * tree-inline.c (setup_one_parameter): Deal with mismatched
28208
        types using a VIEW_CONVERT_EXPR.
28209
 
28210
2008-01-21  Alon Dayan  
28211
            Olga Golovanevsky  
28212
 
28213
        PR tree-optimization/34701
28214
        * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
28215
        when the structure size is not a power of 2.
28216
 
28217
2008-01-20  Kenneth Zadeck  
28218
 
28219
        * doc/install.texi: Add doc for --enable-checking=df.
28220
 
28221
2008-01-20  Kaz Kojima  
28222
 
28223
        PR rtl-optimization/34808
28224
        * emit-rtl.c (try_split): Handle REG_RETVAL notes.
28225
 
28226
2008-01-20  Richard Sandiford  
28227
 
28228
        * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
28229
        input.
28230
 
28231
2008-01-19  Kenneth Zadeck  
28232
 
28233
        PR rtl-optimization/26854
28234
        PR rtl-optimization/34400
28235
        * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
28236
        DF_RD->gen.
28237
        * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
28238
        (df_rd_bb_info.expanded_lr_out): New.
28239
        * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
28240
        * loop_iv.c (iv_analysis_loop_init): Ditto.
28241
        * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
28242
        df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
28243
        Added code to allocate, initialize or free expanded_lr_out.
28244
        (df_rd_bb_local_compute_process_def): Restructured to make
28245
        more understandable.
28246
        (df_rd_confluence_n): Add code to do nothing with fake edges and
28247
        code to no apply invalidate_by_call sets if the sets are being trimmed.
28248
        (df_lr_local_finalize): Renamed to df_lr_finalize.
28249
        (df_live_local_finalize): Renamed to df_live_finalize.
28250
 
28251
2008-01-20  Richard Sandiford  
28252
 
28253
        PR target/34831
28254
        * config/mips/mips.md (div3): Use  when
28255
        deciding whether to use reciprocal instructions.
28256
 
28257
2008-01-19  Uros Bizjak  
28258
 
28259
        * dwarf2out.c (dwarf2out_switch_text_section): Do not call
28260
        dwarf2out_note_section_used if cold_text_section is NULL.
28261
 
28262
2008-01-19  Jakub Jelinek  
28263
 
28264
        PR gcov-profile/34610
28265
        * tree-cfg.c (make_edges): Mark both outgoing edges from
28266
        OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
28267
        * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
28268
        from OMP_FOR and OMP_CONTINUE outgoing edges.
28269
 
28270
        * tree-profile.c (tree_profiling): Return early if
28271
        cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
28272
        at the end.
28273
        * omp-low.c (expand_omp_parallel): Copy after_tree_profile
28274
        from cfun to child_cfun.
28275
        * function.h (struct function): Add after_tree_profile bit.
28276
 
28277
2008-01-19  Anatoly Sokolov  
28278
 
28279
        * config/avr/avr.S (_exit): Disable interrupt.
28280
 
28281
2008-01-18  Kenneth Zadeck  
28282
            Steven Bosscher  
28283
 
28284
        PR rtl-optimization/26854
28285
        PR rtl-optimization/34400
28286
        * df-problems.c (df_live_scratch): New scratch bitmap.
28287
        (df_live_alloc): Allocate df_live_scratch when doing df_live.
28288
        (df_live_reset): Clear the proper bitmaps.
28289
        (df_live_bb_local_compute): Only process the artificial defs once
28290
        since the order is not important.
28291
        (df_live_init): Init the df_live sets only with the variables
28292
        found live by df_lr.
28293
        (df_live_transfer_function): Use the df_lr sets to prune the
28294
        df_live sets as they are being computed.
28295
        (df_live_free): Free df_live_scratch.
28296
 
28297
2008-01-18  Ian Lance Taylor  
28298
 
28299
        * common.opt: Add fmerge-debug-strings.
28300
        * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
28301
        flag_merge_debug_strings rather than flag_merge_constants.
28302
        * doc/invoke.texi (Option Summary): Mention
28303
        -fmerge-debug-strings.
28304
        (Debugging Options): Document -fmerge-debug-strings.
28305
 
28306
2008-01-18  Ian Lance Taylor  
28307
 
28308
        PR c++/33407
28309
        * tree.h (DECL_IS_OPERATOR_NEW): Define.
28310
        (struct tree_function_decl): Add new field operator_new_flag.
28311
        * tree-inline.c (expand_call_inline): When inlining a call to
28312
        operator new, force the return value to go into a variable, and
28313
        set DECL_NO_TBAA_P on that variable.
28314
        * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
28315
 
28316
2008-01-18  Uros Bizjak  
28317
 
28318
        PR debug/34484
28319
        * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
28320
        DWARF2_DEBUGGING_INFO.
28321
        (dwarf2out_note_section_used): Ditto.  Add prototype.
28322
        (have_multiple_function_sections, text_section_used,
28323
        cold_text_section_used, *cold_text_sections): Move declarations
28324
        before their uses.
28325
 
28326
2008-01-17  Bob Wilson  
28327
 
28328
        * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
28329
        field and add signal_ra.
28330
        * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
28331
        assignments to frame state pc.  Move end of stack check after
28332
        MD_FALLBACK_FRAME_STATE_FOR.
28333
        (uw_update_context_1): Use frame state signal_regs if set, instead
28334
        of checking signal_frame flag.
28335
        (uw_update_context): Use frame state signal_ra if set.
28336
        * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
28337
        * config/xtensa/linux-unwind.h: New file.
28338
 
28339
2008-01-18  Bernhard Fischer  
28340
 
28341
        * modulo-sched.c (get_sched_window): Fix comment typo.
28342
 
28343
2008-01-17  Andrew MacLeod  
28344
 
28345
        PR tree-optimization/34648
28346
        * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
28347
 
28348
2008-01-17  Anatoly Sokolov  
28349
 
28350
        * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
28351
        * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
28352
 
28353
2008-01-17  Seongbae Park  
28354
 
28355
        PR rtl-optimization/34400
28356
        * df-core.c (df_worklist_dataflow_overeager,
28357
        df_worklist_dataflow_doublequeue): New functions.
28358
        (df_worklist_dataflow): Two different worklist solvers.
28359
        * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
28360
        New param.
28361
 
28362
2008-01-16  Sebastian Pop  
28363
 
28364
        PR testsuite/34821
28365
        * doc/invoke.texi: Document the dependence on pthread for fopenmp
28366
        and ftree-parallelize-loops.
28367
 
28368
2008-01-17  Mircea Namolaru  
28369
 
28370
        PR rtl-optimization/34826
28371
        * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
28372
 
28373
2008-01-17  Andreas Krebbel  
28374
 
28375
        * global.c (find_reg): Mark the eh regs as used if necessary.
28376
        * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
28377
        * ra.h (struct allocno): no_eh_reg field added.  Changed
28378
        no_stack_reg type to bitfield.
28379
 
28380
2008-01-17  Eric Botcazou  
28381
 
28382
        * tree.c (substitute_in_expr): Add missing 'break'.
28383
 
28384
2008-01-17  Richard Guenther  
28385
 
28386
        PR tree-optimization/34825
28387
        * tree-ssa-math-opts.c (is_division_by): Do not recognize
28388
        x / x as division to handle.
28389
 
28390
2008-01-16  John David Anglin  
28391
 
28392
        * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
28393
        "-pthread" is specified.
28394
        * pa-hpux11.h (LIB_SPEC): Likewise.
28395
 
28396
2008-01-16  Janis Johnson  
28397
            Peter Bergner  
28398
 
28399
        PR rtl-optimization/33796
28400
        * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
28401
 
28402
2008-01-16  John David Anglin  
28403
 
28404
        PR libgfortran/34699
28405
        * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
28406
        static links.
28407
        * pa-hpux10.h (LINK_SPEC): Likewise.
28408
        * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
28409
 
28410
2008-01-16  Richard Guenther  
28411
 
28412
        PR middle-end/32628
28413
        * fold-const.c (fold_convert_const_int_from_int): Do not
28414
        set overflow if that occured only because of a sign extension
28415
        change when converting from/to a sizetype with the same
28416
        precision and signedness.
28417
 
28418
2008-01-16  Uros Bizjak  
28419
 
28420
        PR debug/34249
28421
        * dwarf2out.c (output_call_frame_info): Move output of FDE initial
28422
        location address to the correct place.  Update copyright year.
28423
 
28424
2008-01-16  Sebastian Pop  
28425
 
28426
        * lambda-code.c (lambda_transform_legal_p): Handle the case of
28427
        no dependences in the dependence_relations vector.
28428
 
28429
2008-01-16  Jan Hubicka  
28430
 
28431
        PR rtl-optimization/31396
28432
        * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
28433
        * cfg.c (dump_reg_info): Print it.
28434
        * regs.h (struct reg_info_t): add freq_calls_crossed.
28435
        (REG_FREQ_CALLS_CROSSED): New macro.
28436
        * global.c (global_alloc): Compute freq_calls_crossed for allocno.
28437
        (find_reg): Update call of CALLER_SAVE_PROFITABLE.
28438
        * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
28439
        regmove_optimize): Update call crossed frequencies.
28440
        * local-alloc.c (struct qty): Add freq_calls_crossed.
28441
        (alloc_qty): Copute freq_calls_crossed.
28442
        (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
28443
        (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
28444
        * ra.h (struct allocno): Add freq_calls_crossed.
28445
 
28446
2008-01-16  Sebastian Pop  
28447
 
28448
        * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
28449
        libgomp when compiling with ftree-parallelize-loops.
28450
        (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
28451
 
28452
2008-01-16  Richard Guenther  
28453
 
28454
        PR tree-optimization/34769
28455
        * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
28456
        * tree.c (int_cst_value): Instead make this function more
28457
        permissive in what it accepts as valid input.  Document this
28458
        function always sign-extends the value.
28459
 
28460
2008-01-16  Jakub Jelinek  
28461
            Richard Guenther  
28462
 
28463
        PR c/34668
28464
        * gimplify.c (fold_indirect_ref_rhs): Rename to ...
28465
        (gimple_fold_indirect_ref_rhs): ... this.
28466
        (gimple_fold_indirect_ref): New function with foldings
28467
        that preserve lvalueness.
28468
        (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
28469
        * tree-flow.h (gimple_fold_indirect_ref): Declare.
28470
        * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
28471
        to fold an INDIRECT_REF, fall back to the old use of
28472
        fold_indirect_ref_1.
28473
 
28474
2008-01-16  Sebastian Pop  
28475
 
28476
        * tree-data-ref.c (subscript_dependence_tester_1): Call
28477
        free_conflict_function.
28478
        (compute_self_dependence): Same.
28479
 
28480
2008-01-16  Uros Bizjak  
28481
 
28482
        PR debug/34249
28483
        * debug.h (dwarf2out_switch_text_section): Move declaration from ...
28484
        * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
28485
        function global.
28486
        * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
28487
        Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
28488
        for DWARF2_UNWIND_INFO targets.
28489
 
28490
2008-01-16  Richard Guenther  
28491
 
28492
        PR c/34768
28493
        * c-typeck.c (common_pointer_type): Do not merge inconsistent
28494
        type qualifiers for function types.
28495
 
28496
2008-01-15  Jerry DeLisle  
28497
 
28498
        * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
28499
        loop_iterator li from previous commit.
28500
 
28501
2008-01-15  Sebastian Pop  
28502
 
28503
        * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
28504
 
28505
2008-01-12  Sebastian Pop  
28506
 
28507
        * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
28508
        (parallelize_loops): Don't parallelize irreducible components.
28509
 
28510
2008-01-14  Manuel Lopez-Ibanez  
28511
 
28512
        PR c++/24924
28513
        * c-opts (c_common_post_options): Do not enable CPP
28514
        flag_pedantic_errors by default.
28515
 
28516
2008-01-14  Eric Botcazou  
28517
 
28518
        PR rtl-optimization/31944
28519
        * cse.c (remove_pseudo_from_table): New function.
28520
        (merge_equiv_classes): Use above function to remove pseudo-registers.
28521
        (invalidate): Likewise.
28522
 
28523
2008-01-13  Richard Guenther  
28524
 
28525
        PR middle-end/34601
28526
        * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
28527
        instead of TYPE_MODE to deal with calls from expand_one_error_var.
28528
 
28529
2008-01-13  Uros Bizjak  
28530
 
28531
        * gcse.c (cprop_jump): Call validate_unshare_change instead of
28532
        validate_change to unshare the source of the PC set.
28533
 
28534
2008-01-12  Jan Hubicka  
28535
 
28536
        PR middle-end/32135
28537
        * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
28538
        references above array bounds.  This might trigger bounds checks for
28539
        pointers to arrays.
28540
 
28541
2008-01-12  Sebastian Pop  
28542
 
28543
        * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
28544
        new_replaceable_dependencies.
28545
 
28546
2008-01-12  Doug Kwan  
28547
 
28548
        * c-decl.c (grokdeclarator): Use OPT_Wignored_qualifiers
28549
        instead of OPT_Wreturn_type in warning due to ignored return type
28550
        qualifiers.
28551
        * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
28552
        options included in -Wextra.
28553
        * c.opt: New option -Wignored_qualifiers.
28554
        * doc/invoke.texi (Warning Options, -Wextra): Add new option
28555
        -Wignore_qualifiers.
28556
        (-Wignored-qualifiers): Document.
28557
        (-Wreturn-type): Remove description of functionality now handled
28558
        by -Wignored-qualifiers.
28559
 
28560
2008-01-12  Eric Botcazou  
28561
 
28562
        PR ada/33788
28563
        * fold-const.c (fold_unary) : Fold an existing
28564
        NOP_EXPR if it is between integral types with the same precision.
28565
 
28566
2008-01-12  Jan Hubicka  
28567
 
28568
        PR other/28023
28569
        * invoke.texi (max-inline-recursive-depth): Fix default value.
28570
 
28571
2008-01-12  Zdenek Dvorak  
28572
 
28573
        * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
28574
        correct type.
28575
 
28576
2008-01-11  Bob Wilson  
28577
 
28578
        * config/xtensa/xtensa.c (override_options): Set flag_shlib.
28579
 
28580
2008-01-11  James E. Wilson  
28581
 
28582
        PR target/26015
28583
        * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
28584
 
28585
2008-01-11  Anatoly Sokolov  
28586
 
28587
        * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
28588
        save/restore frame pointer register and don't use 'call-prologues'
28589
        optimization in function with "OS_task" attribute.
28590
 
28591
2008-01-11  Eric Botcazou  
28592
 
28593
        PR middle-end/31309
28594
        * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
28595
        when copying to memory.
28596
 
28597
2008-01-11  Steven Bosscher  
28598
 
28599
        PR rtl-optimization/30905
28600
        * cfgcleanup.c: Include dce.h
28601
        (crossjumps_occured): New global variable.
28602
        (try_crossjump_bb): Exit loop after finding a fallthru edge.
28603
        If something changed, set crossjumps_occured to true.
28604
        (try_optimize_cfg): Clear crossjumps_occured at the beginning.
28605
        Don't add/remove fake edges to exit here...
28606
        (cleanup_cfg): ...but do it here, when crossjumping.
28607
        Run a fast DCE when successful crossjumps occured in the latest
28608
        iteration of try_optimize_cfg.
28609
 
28610
2008-01-11  Richard Guenther  
28611
 
28612
        * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
28613
        (struct vn_unary_op_s): Likewise.
28614
        (vn_reference_insert): Free old reference on hash collision.
28615
 
28616
2008-01-10  Raksit Ashok  
28617
 
28618
        PR rtl-optimization/27971
28619
        * combine.c (find_split_point): Split PLUS expressions which are
28620
        inside a MEM rtx, and whose first operand is complex.
28621
 
28622
2008-01-10  DJ Delorie  
28623
 
28624
        * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
28625
        (m32c_hard_regno_nregs): ...this, which is now a wrapper.
28626
        (m32c_hard_regno_ok): Call the underlying function.
28627
 
28628
2008-01-10  Richard Guenther  
28629
 
28630
        PR middle-end/34683
28631
        * tree-cfg.c (tree_merge_blocks): Do not go through the
28632
        full-blown folding and stmt updating path if we just deal
28633
        with virtual operands.
28634
        * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
28635
        test for abnormal SSA_NAMEs.
28636
 
28637
2008-01-10  Andreas Krebbel  
28638
 
28639
        PR middle-end/34641
28640
        * reload.c (push_reload): Add assertions.  All constants from
28641
        reg_equiv_constant should have been used for replacing the respective
28642
        pseudo earlier.
28643
        (find_reloads_address): Invoke find_reloads_address_part for
28644
        constant taken from the reg_equiv_constant array.
28645
 
28646
2008-01-10  Steven Bosscher  
28647
 
28648
        * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
28649
        field (valnum) the first in the struct.  Replace bools with
28650
        unit bit fields.
28651
 
28652
2008-01-10  Richard Guenther  
28653
 
28654
        PR tree-optimization/34651
28655
        * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
28656
        types and ordering for masking and converting.
28657
 
28658
2008-01-09  Sebastian Pop  
28659
 
28660
        PR tree-optimization/34017
28661
        * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
28662
        also for PHI_NODE expressions.
28663
 
28664
2008-01-09  Jan Hubicka  
28665
 
28666
        PR tree-optimization/34708
28667
        * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
28668
        based on number of case labels.
28669
        (init_inline_once): Remove switch_cost.
28670
        * tree-inline.h (eni_weights_d): Remove switch_cost.
28671
 
28672
2008-01-09  Richard Guenther  
28673
        Andrew Pinski  
28674
 
28675
        PR middle-end/30132
28676
        * gimplify.c (gimplify_cond_expr): Do not create an addressable
28677
        temporary if an rvalue is ok or an lvalue is not required.
28678
 
28679
2008-01-09  Richard Guenther  
28680
 
28681
        PR middle-end/34458
28682
        * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
28683
        adjust return type.
28684
 
28685
2008-01-09  Richard Guenther  
28686
 
28687
        PR middle-end/34679
28688
        * tree.c (host_integerp): Check for sizetype only if the
28689
        type is an integer type.
28690
 
28691
2008-01-09  Steven Bosscher  
28692
 
28693
        PR debug/26364
28694
        * opts.c (decode_options): Disable inlining of functions called
28695
        once if not in unit-at-a-time mode.
28696
 
28697
2008-01-09  Alexandre Oliva  
28698
 
28699
        * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
28700
 
28701
2008-01-08  Richard Guenther  
28702
 
28703
        PR middle-end/31863
28704
        * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
28705
        out early if the result will be unused.
28706
 
28707
2008-01-08  Uros Bizjak  
28708
 
28709
        PR target/34709
28710
        Revert:
28711
 
28712
        2008-01-05  Uros Bizjak  
28713
        * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
28714
        for TARGET_RECIP.
28715
 
28716
2008-01-08  Jan Sjodin  
28717
 
28718
        * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
28719
        for vectorization tuned.
28720
 
28721
2008-01-08  Richard Guenther  
28722
 
28723
        PR tree-optimization/34683
28724
        * tree-ssa-operands.c (operand_build_cmp): Export.
28725
        * tree-ssa-operands.h (operand_build_cmp): Declare.
28726
        * tree-vn.c (vuses_compare): Remove.
28727
        (sort_vuses): Use operand_build_cmp.
28728
        (sort_vuses_heap): Likewise.
28729
        * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
28730
        to re-use old VEC if available.  Do not sort already sorted VUSEs.
28731
        (vdefs_to_vec): Do not sort already sorted VDEFs.
28732
 
28733
2008-01-08  Jakub Jelinek  
28734
 
28735
        PR middle-end/34694
28736
        * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
28737
 
28738
2008-01-08  Uros Bizjak  
28739
 
28740
        PR target/34702
28741
        * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
28742
        limitations of reciprocal sequences on x86 targets.
28743
 
28744
2008-01-08  Richard Guenther  
28745
 
28746
        PR tree-optimization/34683
28747
        * tree-flow-inline.h (var_ann): Remove overzealous asserts.
28748
 
28749
2008-01-07  Jakub Jelinek  
28750
 
28751
        PR target/34622
28752
        * config/darwin.c (darwin_mergeable_string_section): Don't use
28753
        .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
28754
 
28755
2008-01-07  Uros Bizjak  
28756
 
28757
        PR target/34682
28758
        * config/i386/i386.md (neg2): Rename from negsf2, negdf2 and
28759
        negxf2.  Macroize expander using X87MODEF mode iterator.  Change
28760
        predicates of op0 and op1 to register_operand.
28761
        (abs2): Rename from abssf2, absdf2 and negxf2.  Macroize
28762
        expander using X87MODEF mode iterator.  Change predicates of
28763
        op0 and op1 to register_operand.
28764
        ("*absneg2_mixed", "*absneg2_sse"): Rename from
28765
        corresponding patterns and macroize using MODEF macro.  Change
28766
        predicates of op0 and op1 to register_operand and remove
28767
        "m" constraint. Disparage "r" alternative with "!".
28768
        ("*absneg2_i387"): Rename from corresponding patterns and
28769
        macroize using X87MODEF macro.  Change predicates of op0 and op1
28770
        to register_operand and remove "m" constraint.  Disparage "r"
28771
        alternative with "!".
28772
        (absneg splitter with memory operands): Remove.
28773
        ("*neg2_1", "*abs2_1"): Rename from corresponding
28774
        patterns and macroize using X87MODEF mode iterator.
28775
        * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
28776
        Change predicate of op1 to register_operand.
28777
        * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
28778
        for memory operands.
28779
 
28780
2008-01-07  Nathan Froyd  
28781
 
28782
        * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
28783
 
28784
2008-01-07  Richard Guenther  
28785
 
28786
        * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
28787
        fields.
28788
 
28789
2008-01-07  Richard Guenther  
28790
 
28791
        PR tree-optimization/34683
28792
        * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
28793
        VOPs of the needed size to save memory.  Use VEC_quick_push
28794
        to save compile-time.
28795
        (vdefs_to_vec): Likewise.
28796
 
28797
2008-01-07  Sa Liu  
28798
 
28799
        * config/spu/spu.md (divdf3): Genetate inline code for double
28800
        division.  The implementation doesn't handle INF or NAN, therefore it
28801
        only applies when -ffinite-math-only is given.
28802
 
28803
2008-01-06  Paolo Carlini  
28804
 
28805
        PR libstdc++/34680
28806
        * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
28807
        * doc/cpp.texi ([Common Predefined Macros]): Document.
28808
 
28809
2008-01-06  Uros Bizjak  
28810
 
28811
        * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
28812
        order to use commutative addition instead of subtraction.
28813
 
28814
2008-01-06  Andrew Pinski  
28815
            Mircea Namolaru  
28816
            Vladimir Yanovsky  
28817
            Revital Eres  
28818
 
28819
        PR tree-optimization/34263
28820
        * tree-outof-ssa.c (process_single_block_loop_latch,
28821
        contains_tree_r): New functions.
28822
        (analyze_edges_for_bb): Call process_single_block_loop_latch
28823
        function to empty single-basic-block latch block if possible.
28824
 
28825
2008-01-05  Uros Bizjak  
28826
 
28827
        * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
28828
        for TARGET_RECIP.
28829
        (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
28830
 
28831
2008-01-05  Richard Sandiford  
28832
 
28833
        * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
28834
 
28835
2008-01-05  Richard Sandiford  
28836
 
28837
        * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
28838
 
28839
2008-01-05  Jakub Jelinek  
28840
 
28841
        PR tree-optimization/34618
28842
        * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
28843
        flag from T.
28844
 
28845
2008-01-05  Uros Bizjak  
28846
 
28847
        PR target/34673
28848
        * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
28849
        in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
28850
        Update copyright year.
28851
 
28852
        * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
28853
        Update copyright year.
28854
        * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
28855
        using NR fixup.
28856
 
28857
2008-01-05  Zhouyi Zhou  
28858
 
28859
        * tree-vrp.c (find_conditional_asserts): Remove redundant check that
28860
        edge does not point to current bb before changing need_assert.
28861
 
28862
2008-01-04  Richard Guenther  
28863
 
28864
        PR middle-end/34029
28865
        * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
28866
        for verifying purposes if they are is_gimple_min_invariant.
28867
 
28868
2008-01-04  Aldy Hernandez  
28869
 
28870
        PR tree-optimization/34448
28871
        PR tree-optimization/34465
28872
        * gimplify.c (gimplify_init_constructor): Add new parameter
28873
        notify_temp_creation.  Use it.
28874
        (gimplify_modify_expr_rhs): Take volatiles into account when
28875
        optimizing constructors.
28876
        Do not optimize constructors if gimplify_init_constructor will dump to
28877
        memory.
28878
        * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
28879
        * gcc.c-torture/compile/pr34448.c: New.
28880
 
28881
2008-01-04  Jakub Jelinek  
28882
 
28883
        PR gcov-profile/34609
28884
        * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
28885
        return_slot if result is TREE_ADDRESSABLE.
28886
 
28887
2008-01-04  Richard Sandiford  
28888
 
28889
        * config/mips/mips.md (sqrt_condition): Tweak comment.
28890
        (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
28891
 
28892
2008-01-03  Tom Tromey  
28893
 
28894
        PR c/34457
28895
        * c-common.c (c_type_hash): Handle VLAs.
28896
 
28897
2008-01-03  Jan Hubicka  
28898
 
28899
        PR tree-optimization/31081
28900
        * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
28901
 
28902
        (remap_decl): When var is initialized to 0, don't set default_def.
28903
        (expand_call_inline): Set entry_bb.
28904
        * tree-inline.h (copy_body_data): Add entry_bb.
28905
 
28906
2008-01-03  Jakub Jelinek  
28907
 
28908
        PR c++/34619
28909
        * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
28910
        before returning.
28911
 
28912
        PR tree-optimization/29484
28913
        * tree-inline.c (inline_forbidden_p_2): New function.
28914
        (inline_forbidden_p): Disallow inlining if some static var
28915
        has an address of a local LABEL_DECL in its initializer.
28916
        * doc/extend.texi (Labels as Values): Document &&foo behaviour
28917
        vs. inlining.
28918
 
28919
2008-01-03  Sebastian Pop  
28920
 
28921
        PR tree-optimization/34635
28922
        * tree-data-ref.c (add_other_self_distances): Make sure that the
28923
        evolution step is constant.
28924
 
28925
2008-01-03  Jakub Jelinek  
28926
 
28927
        PR middle-end/34608
28928
        * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
28929
 
28930
2008-01-02  Richard Sandiford  
28931
 
28932
        * tree-sra.c (scalarize_init): Insert the generate_element_init
28933
        statements after the generate_element_zero statements.
28934
 
28935
2008-01-02  Richard Guenther  
28936
 
28937
        PR middle-end/34093
28938
        PR middle-end/31976
28939
        * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
28940
        for very large number of operands instead of ICEing.
28941
 
28942
2008-01-02  Arthur Norman  
28943
 
28944
        PR target/34013
28945
        * config/i386/i386.c (ix86_expand_prologue): Save red-zone
28946
        while stack probing.
28947
 
28948
2008-01-01  Douglas Gregor  
28949
 
28950
        * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
28951
        in C++0x mode.
28952
 
28953
2008-01-01  Volker Reichelt  
28954
 
28955
        PR libmudflap/26442
28956
        * tree-mudflap.c (mx_register_decls): Guard warning by
28957
        !DECL_ARTIFICIAL check.
28958
 
28959
2008-01-01  Jakub Jelinek  
28960
 
28961
        * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
28962
        sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
28963
        sse5_perm): Fix constraints.
28964
 
28965
 
28966
Copyright (C) 2008 Free Software Foundation, Inc.
28967
 
28968
Copying and distribution of this file, with or without modification,
28969
are permitted in any medium without royalty provided the copyright
28970
notice and this notice are preserved.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.