OSDN Git Service

742950c041bb8045ab683dc7b4c021645d4d0877
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2
3         * c-typeck.c (handle_warn_cast_qual): Add loc
4         parameter. Improve warning message.
5         (build_c_cast): Pass location to handle_warn_cast_qual.
6
7 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
8
9         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
10         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
11         insn mnemonic.
12         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
13
14 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
15
16         Fix bootstap on mips
17         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
18         be naming typedefs.
19
20 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
21
22         * system.h (helper_const_non_const_cast): New inline for
23         gcc version <= 4.0.
24         (CONST_CAST2): For gcc version <= 4.0 use
25         new helper to do const/non-const casting.
26
27 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
28
29         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
30         * Makefile.in (OBJS-common): Include insn-enums.o.
31         (insn-enums.o): New rule.
32         (simple_generated_c): Add insn-enums.c.
33         (build/genenums.o): New rule.
34         (genprogmd): Add "enums".
35         * genconstants.c (print_enum_type): Declare a C string array
36         for each enum.
37         * genenums.c: New file.
38         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
39         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
40         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
41
42 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
43
44         * doc/md.texi (define_enum_attr): Document.
45         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
46         * read-md.h (lookup_enum_type): Declare.
47         * read-md.c (lookup_enum_type): New function.
48         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
49         * genattrtab.c (attr_desc): Add an enum_name field.
50         (evaluate_eq_attr): Take the associated attribute as argument.
51         Get the enum prefix from the enum_name field, if defined.
52         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
53         (simplify_test_exp): Pass attr to evaluate_eq_attr.
54         (add_attr_value): New function, split out from...
55         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
56         (write_test_expr): Pass attr to evaluate_eq_attr.
57         (write_attr_get): Use the enum_name as the enum tag, if defined.
58         (write_attr_valueq): Use the enum_name as a prefix, if defined.
59         (find_attr): Initialize enum_name.
60         (main): Handle DEFINE_ENUM_ATTR.
61         * gensupport.c (process_rtx): Likewise.
62         * config/mips/mips.h (mips_tune_attr): Delete.
63         * config/mips/mips.md (cpu): Use define_attr_enum.
64
65 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
66
67         * doc/md.texi (define_c_enum, define_enum): Document.
68         * read-md.h (md_constant): Add a parent_enum field.
69         (enum_value, enum_type): New structures.
70         (upcase_string, traverse_enum_types): Declare.
71         * read-md.c (enum_types): New variable.
72         (upcase_string, add_constant): New functions.
73         (handle_constants): Don't create the hash table here.
74         Use add_constant.
75         (traverse_md_constants): Don't check for a null md_constants.
76         (decimal_string, handle_enum, traverse_enum_types): New functions.
77         (read_md_files): Initialize md_constants and md_enums.
78         * genconstants.c (print_md_constant): Ignore info argument.
79         Only print constants that belong to no enum.
80         (print_enum_type): New function.
81         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
82         for each defined enum type.
83         * config/mips/mips.md (processor): New define_enum.
84         (unspec): New define_c_enum.
85         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
86         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
87         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
88         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
89         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
90         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
91         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
92         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
93         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
94         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
95         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
96         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
97         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
98         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
99         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
100         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
101         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
102         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
103         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
104         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
105         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
106         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
107         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
108         (UNSPEC_RDDSP): Move to mips-dsp.md.
109         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
110         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
111         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
112         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
113         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
114         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
115         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
116         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
117         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
118         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
119         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
120         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
121         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
122         Moved to mips-dspr2.md.
123         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
124         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
125         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
126         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Moved from mips-ps-3d.md.
127         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
128         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
129         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
130         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
131         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
132         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
133         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD, UNSPEC_LOONGSON_PSADBH)
134         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
135         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
136         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
137         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
138         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
139         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
140         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved to mips-loongson2ef.md.
141         (cpu): Update comment.
142         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
143         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
144         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
145         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
146         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ)
147         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
148         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
149         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
150         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
151         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
152         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD, UNSPEC_LOONGSON_PSADBH)
153         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
154         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
155         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
156         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
157         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
158         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
159         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
160         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
161         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
162         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
163         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
164         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
165         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
166         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
167         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
168         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
169         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
170         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
171         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
172         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
173         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
174         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
175         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
176         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
177         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
178         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
179         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
180         (UNSPEC_RDDSP): Moved from mips.md.
181         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
182         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
183         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
184         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
185         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
186         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
187         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
188         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
189         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
190         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
191         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
192         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
193         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
194         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
195         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
196         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
197         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
198         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
199         (UNSPEC_SCC): Moved from mips.md.
200         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
201         "processor_type" to "processor".
202         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
203         * config/mips/mips.h (processor_type): Delete.
204         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
205         "processor_type" to "processor".
206
207 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
208
209         * configure.ac (tm_include_list): Add insn-constants.h.
210         * configure: Regenerate.
211         * Makefile.in (GTM_H): Move insn-constants.h here from...
212         (TM_H): ...here.
213         * mkconfig.sh: Remove special handling for insn-constants.h.
214
215 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
216
217         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
218         (BUILD_MD): ...this new variable.
219         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
220         that include the old contents of simple_generated_h and
221         simple_generated_c.
222         (simple_generated_h, simple_generated_c): Include them.  Add
223         insn-constants.h.
224         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
225         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
226         Remove these dependencies from the main rule and include
227         insn-conditions.md in the command line only if it appears
228         in the dependency list.
229         (insn-constants.h, s-constants): Delete.
230         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
231         or gensupport.h.
232         (build/genmddeps.o): Likewise.
233         (genprogrtl): New variable that contains everything from genprogmd
234         except mddeps and constants.
235         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
236         depend on $(BUILD_MD)
237         (genprog): New variable.  Make these programs depend on
238         $(BUILD_ERRORS).
239         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
240         (main): Use read_md_files instead of init_rtx_reader_args.
241         * genconstants.c: As for genmddeps.c.
242         * read-md.h (read_skip_construct): Declare.
243         * read-md.c (read_skip_construct): New function.
244         (handle_file): Allow a null handle_directive, skipping the
245         construct if so.
246         (parse_include): Update the comment accordingly.
247
248 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
249
250         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
251         * genmddeps.c: Include read-md.h.
252         (main): Call init_rtx_reader_args instead of init_md_reader_args.
253         * genattr.c (main): Likewise.
254         * genattrtab.c (main): Likewise.
255         * genautomata.c (main): Likewise.
256         * gencodes.c (main): Likewise.
257         * genconditions.c (main): Likewise.
258         * genconfig.c (main): Likewise.
259         * genconstants.c (main): Likewise.
260         * genemit.c (main): Likewise.
261         * genextract.c (main): Likewise.
262         * genflags.c (main): Likewise.
263         * genopinit.c (main): Likewise.
264         * genoutput.c (main): Likewise.
265         * genpeep.c (main): Likewise.
266         * genrecog.c (main): Likewise.
267         * genpreds.c (main): Likewise.
268         * gensupport.h (in_fname): Move to read-md.h.
269         (init_md_reader_args_cb): Rename to...
270         (init_rtx_reader_args_cb): ...this and return a bool.
271         (init_md_reader_args): Rename to...
272         (init_rtx_reader_args): ...this and return a bool.
273         (include_callback): Move to read-md.h.
274         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
275         (file_name_list, first_dir_md_include): Move to read-md.c
276         (first_bracket_include): Delete unused variable.
277         (last_dir_md_include): Move to read-md.c.
278         (process_include): Delete, moving code to read-md.c:handle_include.
279         (process_rtx): Don't handle INCLUDE.
280         (save_string): Delete.
281         (rtx_handle_directive): New function.
282         (init_md_reader_args_cb): Rename to...
283         (init_rtx_reader_args_cb): ...this and return a boolean success value.
284         Use read_md_args.
285         (init_md_reader_args): Rename to...
286         (init_rtx_reader_args): ...this and return a boolean success value.
287         * rtl.def (INCLUDE): Delete.
288         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
289         argument.
290         * read-rtl.c (read_conditions): Don't gobble ')' here.
291         (read_mapping): Likewise.
292         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
293         Handle top-level non-rtx constructs here rather than in read_rtx_1.
294         Store the whole queue in *X.  Remove call to init_md_reader.
295         (read_rtx_1): Rename to...
296         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
297         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
298         here.
299         (read_nested_rtx): New function.  Handle (nil) here rather than
300         in read_rtx_code.
301         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
302         gobble ')' here.
303         * read-md.h (directive_handler_t): New type.
304         (in_fname, include_callback): Moved from read-md.h.
305         (read_constants, init_md_reader): Delete.
306         (read_md_files): Declare.
307         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
308         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
309         from gensupport.c.
310         (read_constants): Rename to...
311         (handle_constants): ...this.  Don't gobble ')' here.
312         (handle_include, handle_file, handle_toplevel_file)
313         (parse_include): New functions, mostly taken from gensupport.c.
314         (init_md_reader): Subsume into...
315         (read_md_files): ...this new function.
316
317 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
318
319         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
320         (unread_char): Decrement read_md_lineno after putting back '\n'.
321         * read-md.c (fatal_with_file_and_line): Push back any characters
322         that we decide not to add to the context.
323         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
324         fatal_expected_char in cases where '/' ends a line (for example).
325         (read_name): Don't increment read_md_lineno here.
326         (read_escape): Likewise.
327         (read_quoted_string): Likewise.
328         (read_braced_string): Likewise.
329
330 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
331
332         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
333         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
334         * genconstants.c: Include read-md.h.
335         * read-rtl.c (md_constants): Move to read-md.c.
336         (md_name): Move to read-md.h.
337         (initialize_iterators): Use leading_string_hash instead of def_hash
338         and leading_string_eq_p instead of def_name_eq_p.
339         (read_name): Move to read-md.c.
340         (def_hash, def_name_eq_p): Delete.
341         (read_constants, traverse_md_constants): Move to read-md.c.
342         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
343         * read-md.h: Include hashtab.h.
344         (md_name): Moved from read-rtl.c.
345         (md_constant): Moved from read-md.h.
346         (leading_string_hash, leading_string_eq_p, read_name)
347         (read_constants, traverse_md_constants): Declare.
348         * read-md.c (md_constants): Moved from read-rtl.c.
349         (leading_string_hash, leading_string_eq_p): New functions.
350         (read_name, read_constants, traverse_md_constants): Moved from
351         read-rtl.c.
352
353 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
354
355         * read-rtl.c (md_name): New structure.
356         (read_name): Take an md_name instead of a buffer pointer.
357         Use the "string" field instead of strcpy when expanding constants.
358         (read_constants): Remove the tmp_char argument.  Update the calls
359         to read_name, using two local name buffers instead of the tmp_char
360         argument.  Merge the constant-creation code.
361         (read_conditions): Remove the tmp_char argument.  Update the calls
362         to read_name, using a local name buffer instead of the tmp_char
363         argument.
364         (read_mapping): Replace tmp_char variable with a local name buffer.
365         Update the calls to read_name.
366         (read_rtx_1): Likewise.  Update the calls to read_constants and
367         read_conditions.
368
369 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
370
371         * Makefile.in (build/read-md.o): Depend on errors.h.
372         * read-md.h (error_with_line): Declare.
373         * read-md.c: Include errors.h.
374         (message_with_line_1): New function, extracted from...
375         (message_with_line): ...here.
376         (error_with_line): New function.
377         * genattrtab.c: If a call to message_with_line is followed by
378         "have_error = 1;", replace both statements with a call to
379         error_with_line.
380         * genoutput.c: Likewise.
381         * genpreds.c: Likewise.
382         * genrecog.c: If a call to message_with_line is followed by
383         "error_count++;", replace both statements with a call to
384         error_with_line.
385         (errorcount): Delete.
386         (main): Don't check it.
387         * gensupport.c: If a call to message_with_line is followed by
388         "errors = 1;", replace both statements with a call to error_with_line.
389         (errors): Delete.
390         (process_define_cond_exec): Check have_error instead of errors.
391         (init_md_reader_args_cb): Likewise.  Don't set errors.
392
393 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
394
395         * read-md.h (read_md_file): Declare.
396         (read_char, unread_char): New functions.
397         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
398         (read_quoted_string, read_string): Remove FILE * argument.
399         * read-md.c (read_md_file): New variable.
400         (read_md_filename, read_md_lineno): Update comments and remove
401         unnecessary initialization.
402         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
403         (read_escape, read_quoted_string, read_braced_string, read_string):
404         Remove FILE * argument.  Update calls accordingly, using read_char
405         and unread_char instead of getc and ungetc.
406         * rtl.h (read_rtx): Remove FILE * argument.
407         * read-rtl.c (iterator_group): Remove FILE * argument from
408         "find_builtin".
409         (iterator_traverse_data): Remove "infile" field.
410         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
411         (add_mapping, read_name, read_constants, read_conditions)
412         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
413         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
414         Remove file arguments from all calls, using read_char and unread_char
415         instead of getc and ungetc.
416         * gensupport.c (process_include): Preserve read_md_file around
417         the include.  Set read_md_file to the handle of the included file.
418         Update call to read_rtx.
419         (init_md_reader_args_cb): Set read_md_file to the handle of the file
420         and remove local FILE *.  Update calls to read_rtx.
421
422 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
423
424         * read-md.h (read_rtx_lineno): Rename to...
425         (read_md_lineno): ...this.
426         (read_rtx_filename): Rename to...
427         (read_md_filename): ...this.
428         (copy_rtx_ptr_loc): Rename to...
429         (copy_md_ptr_loc): ...this.
430         (print_rtx_ptr_loc): Rename to...
431         (print_md_ptr_loc): ...this.
432         * read-md.c: Likewise.  Update references after renaming.
433         (string_obstack): Replace RTL with MD in comment.
434         (set_rtx_ptr_loc): Rename to...
435         (set_md_ptr_loc): ...this.
436         (get_rtx_ptr_loc): Rename to...
437         (get_md_ptr_loc): ...this.
438         * genconditions.c: Update references after renaming.
439         * genemit.c: Likewise.
440         * genoutput.c: Likewise.
441         * genpreds.c: Likewise.
442         * gensupport.c: Likewise.
443         * read-rtl.c: Likewise.
444
445 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
446
447         * Makefile.in (READ_MD_H): New variable.
448         (BUILD_RTL): Add build/read-md.o.
449         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
450         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
451         (build/genattrtab.o, build/genconditions.o build/genemit.o)
452         (build/genextract.o, build/genflags.o, build/genoutput.o)
453         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
454         (build/read-md.o): New rule.
455         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
456         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
457         * coretypes.h: ...here.
458         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
459         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
460         * genattr.c: Include read-md.h.
461         * genattrtab.c: Likewise.
462         * genconditions.c: Likewise.
463         * genemit.c: Likewise.
464         * genextract.c: Likewise.
465         * genflags.c: Likewise.
466         * genoutput.c: Likewise.
467         * genpreds.c: Likewise.
468         * genrecog.c: Likewise.
469         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
470         (join_c_conditions, print_c_condition, read_rtx_filename)
471         (read_rtx_lineno): Move to read-md.h.
472         * read-rtl.c: Include read-md.h.
473         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
474         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
475         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
476         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
477         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
478         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
479         (read_braced_string, read_string): Move to read-md.c.
480         (read_rtx): Move some initialization to init_md_reader and call
481         init_md_reader here.
482         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
483         Move to read-md.h.
484         * gensupport.c: Include read-md.h.
485         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
486         * read-md.h, read-md.c: New files.
487
488 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
489
490         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
491         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
492         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
493         * config/moxie/moxie.c (moxie_function_value): Make static.
494         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
495         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
496
497 2010-06-10  Martin Jambor  <mjambor@suse.cz>
498
499         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
500         * dbgcnt.def (tree_sra): New counter.
501         * tree-sra.c: Include dbgcnt.h.
502         (gate_intra_sra): Check tree_sra debug counter.
503
504 2010-06-10  Martin Jambor  <mjambor@suse.cz>
505
506         PR tree-optimization/44258
507         * tree-sra.c (build_access_subtree): Return false iff there is a
508         partial overlap.
509         (build_access_trees): Likewise.
510         (analyze_all_variable_accesses): Disqualify candidates if
511         build_access_trees returns true for them.
512
513 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
514
515         PR debug/41371
516         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
517         tail-recurse into canonical node.  Fast-forward over
518         non-canonical VALUEs.
519
520 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
521
522         PR boostrap/44470
523         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
524         (*addsi_1_zext) <TYPE_LEA>: Likewise.
525         (add lea splitter): Likewise.
526         (add_zext lea splitter): Likewise.
527
528 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
529
530         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
531
532 2010-06-10  Jan Hubicka  <jh@suse.cz>
533
534         * df-problems.c (df_live_problem_data): Add live_bitmaps.
535         (df_live_alloc): Initialize problem data and live_osbtacks.
536         (df_live_finalize): Remove obstack, problem data; do not
537         clear all bitmaps.
538         (df_live_top_dump, df_live_bottom_dump): Do not dump old
539         data when not allocated.
540         (df_live_verify_solution_start): Do not allocate problem data.
541         (df_live_verify_solution_end): Check if out is allocated.
542         (struct df_md_problem_data): New structure.
543         (df_md_alloc): Allocate problem data.
544         (df_md_free): Free problem data; do not clear bitmaps.
545
546 2010-06-10  Jan Beulich  <jbeulich@novell.com>
547
548         PR bootstrap/37304
549         * configure.ac: Replace $() with ${} when intending to expand
550         variables rather than invoking commands.
551         * configure: Re-generate.
552
553 2010-06-10  Jan Hubicka  <jh@suse.cz>
554
555         PR rtl-optimization/44460
556         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
557         TYPE_NEEDS_CONSTRUCTING sanity check.
558
559 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
560
561         * doc/include/fdl.texi: Move to GFDL version 1.3.
562
563         * doc/cpp.texi: Move to GFDL version 1.3.
564         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
565         * doc/gccint.texi: Move to GFDL version 1.3.
566         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
567         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
568         * doc/invoke.texi: Move to GFDL version 1.3.
569
570 2010-06-09  Jan Hubicka  <jh@suse.cz>
571
572         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
573         Break out from ...
574         (propagate) ... here; swap the order.
575
576 2010-06-09  Jan Hubicka  <jh@suse.cz>
577
578         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
579         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
580         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
581         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
582
583 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
584
585         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
586         Do not the gather memory reference in the outer loop if the step
587         is not a constant.
588
589 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
590
591         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
592         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
593         8 to 4.  Minor change of the related comments.
594
595 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
596
597         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
598         the scev analysis when the variable is not used outside the loop
599         in a close phi node: call compute_overall_effect_of_inner_loop.
600
601 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
602
603         * graphite-sese-to-poly.c (single_pred_cond): Renamed
604         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
605         (build_sese_conditions_before): Renamed call to single_pred_cond.
606         (build_sese_conditions_after): Same.
607
608 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
609
610         * graphite-poly.h: Fix comments and indentation.
611         * graphite-sese-to-poly.c: Same.
612         (build_sese_conditions_before): Compute stmt and gbb only when needed.
613         * tree-chrec.c: Fix comments and indentation.
614         (tree-ssa-loop-niter.c): Same.
615
616 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
617
618         PR rtl-optimization/42461
619         * dce.c (deletable_insn_p): Return true for const or pure calls again.
620         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
621
622 2010-06-09  Jan Hubicka  <jh@suse.cz>
623
624         * bitmap.c (bitmap_and): Walk array forward.
625         (bitmap_and_compl_into): Likewise.
626         (bitmap_xor): Likewise.
627         (bitmap_xor_into):  Likewise.
628         (bitmap_equal_p): Likewise.
629         (bitmap_intersect_p): Likewise.
630         (bitmap_intersect_compl_p): Likewise.
631         (bitmap_ior_and_into): Likewise.
632         (bitmap_elt_copy): Likewise.
633         (bitmap_and_compl): Likewise.
634         (bitmap_elt_ior): Likewise.
635
636 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
637
638         * opts-common.c (prune_options): Ensure replacement argv array
639         is correctly terminated by a NULL entry.
640
641 2010-06-09  Jan Hubicka  <jh@suse.cz>
642
643         * cgraph.h (varpool_first_static_initializer,
644         varpool_next_static_initializer): Make checking only when
645         checking enabled.
646         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
647         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
648         gcc_assert to gcc_checking_assert.
649         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
650         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
651         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
652         op_iter_init_phiuse, op_iter_init_phidef,
653         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
654         gcc_checking_assert.
655         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
656         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
657         partition_is_global, live_on_entry, live_on_exit,
658         live_merge_and_clear): Likewise.
659         * system.h (gcc_checking_assert): New macro.
660         * gimple.h (set_bb_seq): Use gcc_checking_assert.
661
662 2010-06-09  Jason Merrill  <jason@redhat.com>
663
664         * Makefile.in (TAGS): Collect tags info from c-family.
665
666 2010-06-09  Jan Hubicka  <jh@suse.cz>
667
668         * gimple.h (gcc_gimple_checking_assert): New macro.
669         (gimple_set_def_ops, gimple_set_use_ops,
670         gimple_set_vuse, gimple_set_vdef,
671         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
672         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
673         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
674         gimple_asm_output_op, gimple_asm_output_op_ptr,
675         gimple_asm_set_output_op, gimple_asm_clobber_op,
676         gimple_asm_set_clobber_op, gimple_asm_label_op,
677         gimple_asm_set_label_op, gimple_try_set_kind,
678         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
679         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
680         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
681         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
682         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
683         gimple_omp_for_set_initial, gimple_omp_for_final,
684         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
685         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
686         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
687         conditional with ENABLE_GIMPLE_CHECKING.
688         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
689
690 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
691
692         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
693         (get_computation_cost_at): Use it.
694         (determine_use_iv_cost_condition): Likewise.
695         (determine_iv_cost): Likewise.
696
697 2010-06-09  Richard Guenther  <rguenther@suse.de>
698
699         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
700         replace constants.
701
702 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
703
704         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
705
706 2010-06-09  Martin Jambor  <mjambor@suse.cz>
707
708         PR tree-optimization/44423
709         * tree-sra.c (dump_access): Dump also grp_assignment_read.
710         (analyze_access_subtree): Pass negative allow_replacements to children
711         if the current type is scalar.
712
713 2010-06-09  Joern Rennecke  <amylaar@spamcop.net>
714
715         PR testsuite/42843
716         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
717         * doc/plugins.texi (Plugin license check): Update information
718         on type of plugin_is_GPL_compatible.
719         * Makefile.in (PLUGINCC): Define as $(COMPILER).
720         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
721
722 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
723
724         * config/arm/arm.c (thumb2_reorg): New function.
725         (arm_reorg): Call it.
726         * config/arm/thumb2.md (define_peephole2 for flag clobbering
727         arithmetic operations): Delete.
728
729 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
730
731         PR target/44067
732         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
733         e500v2 target.
734
735 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
736
737         PR plugins/44459
738         * gcc-plugin.h: Encapsulate all declarations in extern "C".
739
740 2010-06-08  Jan Hubicka  <jh@suse.cz>
741
742         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
743         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
744
745 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
746
747         PR tree-optimization/39874
748         PR middle-end/28685
749         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
750         Declare.
751         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
752         same_bool_result_p): New.
753         (and_var_with_comparison, and_var_with_comparison_1,
754         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
755         (or_var_with_comparison, or_var_with_comparison_1,
756         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
757         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
758         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
759         of combine_comparisons.
760         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
761
762 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
763
764         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
765         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
766         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
767         pdp11_function_value_regno_p): New functions.
768         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
769         TARGET_FUNCTION_VALUE_REGNO_P): Define.
770
771 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
772
773         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
774         Thumb-2 in the MINUS case.
775
776 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
777
778         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
779
780         * doc/gty.texi (GTY Options): Document typed GC allocation and
781         variable_size GTY option.
782
783         * ggc-internal.h: New.
784
785         * ggc.h: Update copyright year.
786         (digit_string): Move to stringpool.c.
787         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
788         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
789         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
790         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
791         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
792         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
793         (ggc_force_collect, ggc_get_size, ggc_statistics)
794         (ggc_print_common_statistics): Move to ggc-internal.h.
795         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
796         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
797         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
798         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
799         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
800         (ggc_alloc_zone_pass_stat): Remove.
801         (ggc_internal_alloc_stat, ggc_internal_alloc)
802         (ggc_internal_cleared_alloc_stat): New.
803         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
804         (ggc_internal_vec_alloc_stat)
805         (ggc_internal_cleared_vec_alloc_stat)
806         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
807         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
808         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
809         (ggc_cleared_alloc_ptr_array_two_args): New.
810         (htab_create_ggc, splay_tree_new_ggc): Redefine.
811         (ggc_splay_alloc): Change the type of the first argument to
812         enum gt_types_enum.
813         (ggc_alloc_string): Make macro.
814         (ggc_alloc_string_stat): New.
815         (ggc_strdup): Redefine.
816         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
817         (ggc_alloc_rtvec_sized): New.
818         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
819         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
820         (ggc_internal_cleared_alloc_zone_stat)
821         (ggc_internal_zone_alloc_stat)
822         (ggc_internal_zone_cleared_alloc_stat)
823         (ggc_internal_zone_vec_alloc_stat)
824         (ggc_alloc_zone_rtx_def_stat)
825         (ggc_alloc_zone_tree_node_stat)
826         (ggc_alloc_zone_cleared_tree_node_stat)
827         (ggc_alloc_cleared_gimple_statement_d_stat): New.
828
829         * ggc-common.c: Include ggc-internal.h.
830         (ggc_internal_cleared_alloc_stat): Rename from
831         ggc_alloc_cleared_stat.
832         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
833         (ggc_calloc): Remove.
834         (ggc_cleared_alloc_htab_ignore_args): New.
835         (ggc_cleared_alloc_ptr_array_two_args): New.
836         (ggc_splay_alloc): Add obj_type parameter.
837         (init_ggc_heuristics): Formatting fixes.
838
839         * ggc-none.c: Update copyright year.
840         (ggc_alloc_stat): Rename to ggc_alloc_stat.
841         (ggc_alloc_cleared_stat): Rename to
842         ggc_internal_cleared_alloc_stat.
843         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
844
845         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
846         Remove references to ggc_alloc in comments.
847         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
848         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
849         (new_ggc_zone, destroy_ggc_zone): Remove.
850         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
851
852         * ggc-zone.c: Include ggc-internal.h.  Remove references to
853         ggc_alloc in comments.
854         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
855         (ggc_internal_alloc_zone_pass_stat): New.
856         (ggc_internal_cleared_alloc_zone_stat): New.
857         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
858         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
859         (new_ggc_zone, destroy_ggc_zone): Remove.
860
861         * stringpool.c: Update copyright year.  Include ggc-internal.h
862         (digit_vector): Make static.
863         (digit_string): Moved from ggc.h.
864         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
865         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
866
867         * Makefile.in (GGC_INTERNAL_H): New.
868         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
869         $(GGC_INTERNAL_H) to dependencies.
870
871         * gentype.c: Update copyright year.
872         (walk_type): Accept variable_size GTY option.
873         (USED_BY_TYPED_GC_P): New macro.
874         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
875         whitespace at the end of strings.
876         (get_type_specifier, variable_size_p): New functions.
877         (alloc_quantity, alloc_zone): New enums.
878         (write_typed_alloc_def): New function.
879         (write_typed_struct_alloc_def): Likewise.
880         (write_typed_typed_typedef_alloc_def): Likewise.
881         (write_typed_alloc_defns): Likewise.
882         (output_typename, write_splay_tree_allocator_def): Likewise.
883         (write_splay_tree_allocators): Likewise.
884         (main): Call write_typed_alloc_defns and
885         write_splay_tree_allocators.
886
887         * lto-streamer.h (lto_file_decl_data_ptr): New.
888
889         * passes.c (order): Define using cgraph_node_ptr.
890
891         * strinpool.c (struct string_pool_data): Declare nested_ptr using
892         ht_identifier_ptr.
893
894         * gimple.h (union gimple_statement_d): Likewise.
895
896         * rtl.h (struct rtx_def): Likewise.
897         (struct rtvec_def): Likewise.
898
899         * tree.h (union tree_node): Likewise.
900
901         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
902
903         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
904
905         * tree-scalar-evolution.c (scev_initialize): Likewise.
906
907         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
908
909         * dwarf2asm.c (dw2_force_const_mem): Likewise.
910
911         * omp-low.c (lower_omp_critical): Likewise.
912
913         * bitmap.h (struct bitmap_head_def): Update comment to not
914         reference ggc_alloc.
915
916         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
917
918         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
919
920         * ipa-prop.c (duplicate_ggc_array): Rename to
921         duplicate_ipa_jump_func_array.  Use typed GC allocation.
922         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
923
924         * gimple.c (gimple_alloc_stat): Use
925         ggc_alloc_cleared_gimple_statement_d_stat.
926
927         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
928
929         * tree.c (make_node_stat): Use
930         ggc_alloc_zone_cleared_tree_node_stat.
931         (make_tree_vec_stat): Likewise.
932         (build_vl_exp_stat): Likewise.
933         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
934         (make_tree_binfo_stat): Likewise.
935         (tree_cons_stat): Likewise.
936
937         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
938         (shallow_copy_rtx_stat): Likewise.
939         (make_node_stat): Likewise.
940
941         * lto-symtab.c: Fix comment.
942
943         * tree-cfg.c (create_bb): Update comment to not reference
944         ggc_alloc_cleared.
945         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
946
947         * varpool.c (varpool_node): Use typed GC allocation.
948         (varpool_extra_name_alias): Likewise.
949
950         * varasm.c (emutls_decl): Likewise.
951         (get_unnamed_section): Likewise.
952         (get_noswitch_section): Likewise.
953         (get_section): Likewise.
954         (get_block_for_section): Likewise.
955         (build_constant_desc): Likewise.
956         (create_constant_pool): Likewise.
957         (force_const_mem): Likewise.
958
959         * tree.c (build_vl_exp_stat): Likewise.
960         (build_real): Likewise.
961         (build_string): Likewise.
962         (decl_debug_expr_insert): Likewise.
963         (decl_value_expr_insert): Likewise.
964         (type_hash_add): Likewise.
965         (build_omp_clause): Likewise.
966
967         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
968
969         * tree-ssa.c (init_tree_ssa): Likewise.
970
971         * tree-ssa-structalias.c (heapvar_insert): Likewise.
972
973         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
974
975         * tree-ssa-loop-niter.c (record_estimate): Likewise.
976
977         * tree-ssa-alias.c (get_ptr_info): Likewise.
978
979         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
980
981         * tree-phinodes.c (allocate_phi_node): Likewise.
982
983         * tree-iterator.c (tsi_link_before): Likewise.
984         (tsi_link_after): Likewise.
985
986         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
987
988         * tree-dfa.c (create_var_ann): Likewise.
989
990         * tree-cfg.c (create_bb): Likewise.
991
992         * toplev.c (alloc_for_identifier_to_locale): Likewise.
993         (general_init): Likewise.
994
995         * stringpool.c (stringpool_ggc_alloc): Likewise.
996         (gt_pch_save_stringpool): Likewise.
997
998         * sese.c (if_region_set_false_region): Likewise.
999
1000         * passes.c (do_per_function_toporder): Likewise.
1001
1002         * optabs.c (set_optab_libfunc): Likewise.
1003         (set_conv_libfunc): Likewise.
1004
1005         * lto-symtab.c (lto_symtab_register_decl): Likewise.
1006
1007         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
1008         (input_eh_region): Likewise.
1009         (input_eh_lp): Likewise.
1010         (make_new_block): Likewise.
1011         (unpack_ts_real_cst_value_fields): Likewise.
1012
1013         * lto-section-in.c (lto_new_in_decl_state): Likewise.
1014
1015         * lto-cgraph.c (input_node_opt_summary): Likewise.
1016
1017         * loop-init.c (loop_optimizer_init): Likewise.
1018
1019         * lambda.h (lambda_vector_new): Likewise.
1020
1021         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
1022
1023         * ira.c (update_equiv_regs): Likewise.
1024
1025         * ipa.c (cgraph_node_set_new): Likewise.
1026         (cgraph_node_set_add): Likewise.
1027         (varpool_node_set_new): Likewise.
1028         (varpool_node_set_add): Likewise.
1029
1030         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
1031         (duplicate_ipa_jump_func_array): Likewise.
1032         (ipa_read_node_info): Likewise.
1033
1034         * ipa-cp.c (ipcp_create_replace_map): Likewise.
1035
1036         * integrate.c (get_hard_reg_initial_val): Likewise.
1037
1038         * gimple.c (gimple_alloc_stat): Likewise.
1039         (gimple_build_omp_for): Likewise.
1040         (gimple_seq_alloc): Likewise.
1041         (gimple_copy): Likewise.
1042
1043         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
1044         (gsi_insert_after_without_update): Likewise.
1045
1046         * function.c (add_frame_space): Likewise.
1047         (insert_temp_slot_address): Likewise.
1048         (assign_stack_temp_for_type): Likewise.
1049         (allocate_struct_function): Likewise.
1050         (types_used_by_var_decl_insert): Likewise.
1051
1052         * except.c (init_eh_for_function): Likewise.
1053         (gen_eh_region): Likewise.
1054         (gen_eh_region_catch): Likewise.
1055         (gen_eh_landing_pad): Likewise.
1056         (add_call_site): Likewise.
1057
1058         * emit-rtl.c (get_mem_attrs): Likewise.
1059         (get_reg_attrs): Likewise.
1060         (start_sequence): Likewise.
1061         (init_emit): Likewise.
1062
1063         * dwarf2out.c (new_cfi): Likewise.
1064         (queue_reg_save): Likewise.
1065         (dwarf2out_frame_init): Likewise.
1066         (new_loc_descr): Likewise.
1067         (find_AT_string): Likewise.
1068         (new_die): Likewise.
1069         (add_var_loc_to_decl): Likewise.
1070         (clone_die): Likewise.
1071         (clone_as_declaration): Likewise.
1072         (break_out_comdat_types): Likewise.
1073         (new_loc_list): Likewise.
1074         (loc_descriptor): Likewise.
1075         (add_loc_descr_to_each): Likewise.
1076         (add_const_value_attribute): Likewise.
1077         (tree_add_const_value_attribute): Likewise.
1078         (add_comp_dir_attribute): Likewise.
1079         (add_name_and_src_coords_attributes): Likewise.
1080         (lookup_filename): Likewise.
1081         (store_vcall_insn): Likewise.
1082         (dwarf2out_init): Likewise.
1083
1084         * dbxout.c (dbxout_init): Likewise.
1085
1086         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
1087
1088         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
1089
1090         * config/score/score7.c (score7_output_external): Likewise.
1091
1092         * config/score/score3.c (score3_output_external): Likewise.
1093
1094         * config/s390/s390.c (s390_init_machine_status): Likewise.
1095
1096         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
1097         (rs6000_init_machine_status): Likewise.
1098         (output_toc): Likewise.
1099
1100         * config/pa/pa.c (pa_init_machine_status): Likewise.
1101         (get_deferred_plabel): Likewise.
1102
1103         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
1104
1105         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
1106
1107         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
1108
1109         * config/mep/mep.c (mep_init_machine_status): Likewise.
1110         (mep_note_pragma_flag): Likewise.
1111
1112         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
1113
1114         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
1115
1116         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
1117
1118         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
1119         (i386_pe_maybe_record_exported_symbol): Likewise.
1120
1121         * config/i386/i386.c (get_dllimport_decl): Likewise.
1122         (ix86_init_machine_status): Likewise.
1123         (assign_386_stack_local): Likewise.
1124
1125         * config/frv/frv.c (frv_init_machine_status): Likewise.
1126
1127         * config/darwin.c (machopic_indirection_name): Likewise.
1128
1129         * config/cris/cris.c (cris_init_machine_status): Likewise.
1130
1131         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
1132
1133         * config/avr/avr.c (avr_init_machine_status): Likewise.
1134
1135         * config/arm/arm.c (arm_init_machine_status): Likewise.
1136
1137         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
1138         (alpha_need_linkage): Likewise.
1139         (alpha_use_linkage): Likewise.
1140
1141         * cgraph.c (cgraph_allocate_node): Likewise.
1142         (cgraph_create_edge_1): Likewise.
1143         (cgraph_create_indirect_edge): Likewise.
1144         (cgraph_add_asm_node): Likewise.
1145
1146         * cfgrtl.c (init_rtl_bb_info): Likewise.
1147
1148         * cfgloop.c (alloc_loop): Likewise.
1149         (rescan_loop_exit): Likewise.
1150
1151         * cfg.c (init_flow): Likewise.
1152         (alloc_block): Likewise.
1153         (unchecked_make_edge): Likewise.
1154
1155         * c-parser.c (c_parse_init): Likewise.
1156         (c_parse_file): Likewise.
1157
1158         * c-decl.c (bind): Likewise.
1159         (record_inline_static): Likewise.
1160         (push_scope): Likewise.
1161         (make_label): Likewise.
1162         (lookup_label_for_goto): Likewise.
1163         (finish_struct): Likewise.
1164         (finish_enum): Likewise.
1165         (c_push_function_context): Likewise.
1166
1167         * bitmap.c (bitmap_element_allocate): Likewise.
1168         (bitmap_gc_alloc_stat): Likewise.
1169
1170         * alias.c (record_alias_subset): Likewise.
1171         (init_alias_analysis): Likewise.
1172
1173 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
1174
1175         * fold-const.c (fold_comparison): Remove redundant parenthesis.
1176         * tree-inline.c (expand_call_inline): Pass translated return value of
1177         cgraph_inline_failed_string to diagnostic function.
1178
1179 2010-06-08  Andrew Pinski <pinskia@gmail.com>
1180             Shujing Zhao  <pearly.zhao@oracle.com>
1181
1182         PR c/37724
1183         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
1184         implicit bad conversions is initialization.
1185         (error_init): Use gmsgid instead of msgid for argument name and change
1186         the call for error.
1187         (pedwarn_init): Use gmsgid instead of msgid for argument name and
1188         change the call for pedwarn.
1189         (warning_init): Use gmsgid instead of msgid for argument name and
1190         change the call for warning.
1191
1192 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
1193
1194         * config/mips/mips-protos.h (mips_print_operand): Delete.
1195         (mips_print_operand_address): Delete.
1196         * config/mips/mips.h (mips_print_operand_punct): Delete.
1197         (PRINT_OPERAND): Delete.
1198         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1199         (PRINT_OPERAND_ADDRESS): Delete.
1200         * config/mips/mips.c (mips_print_operand_punct): Make static.
1201         (mips_print_operand_address): Make static.
1202         (mips_print_operand): Make static.  Call
1203         mips_print_operand_punct_valid_p.
1204         (mips_print_operand_punct_valid_p): New function.
1205         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
1206         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1207
1208 2010-06-07  Jan Hubicka  <jh@suse.cz>
1209
1210         PR middle-end/44454
1211         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
1212         are allocated.
1213
1214 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
1215
1216         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
1217         name of RECORD.
1218
1219 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1220
1221         * doc/sourcebuild.texi (Effective-Target Keywords, Other
1222         attributes): Document gas.
1223
1224 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
1225
1226         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
1227         <TYPE_LEA>: Split instruction.
1228         <default>: Remove alternative 2 handling.
1229         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
1230         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
1231         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
1232
1233         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
1234         (ashift_zext lea splitter): Use DImode for multiplication.
1235
1236         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
1237         to generate addition.
1238
1239 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
1240
1241         * common.opt (fira-verbose): Use Var.
1242         (fpcc-struct-return): Use Init instead of VarExists.
1243         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
1244         toplev.c.
1245         * flags.h (flag_signed_char, flag_short_enums,
1246         flag_pcc_struct_return, flag_ira_verbose,
1247         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
1248         * toplev.c (flag_detailed_statistics, flag_signed_char,
1249         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
1250         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
1251         * toplev.h (flag_crossjumping, flag_if_conversion,
1252         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
1253         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
1254         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
1255         flag_cprop_registers, time_report, flag_ira_loop_pressure,
1256         flag_ira_coalesce, flag_ira_move_spills,
1257         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
1258
1259 2010-06-07  Jan Hubicka  <jh@suse.cz>
1260
1261         * df-core.c (df_analyze_problem): Do verification after allocation.
1262
1263         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
1264         (df_lr_alloc): Initialize problem data; move bitmaps to
1265         lr_bitmaps obstack.
1266         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
1267         (df_lr_verify_solution_start): Do not initialize problem data;
1268         allocate bitmaps in lr_bitmaps.
1269         (df_lr_verify_solution_end): Do not free problem data.
1270
1271 2010-06-07  Jan Hubicka  <jh@suse.cz>
1272
1273         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
1274         if caller is noreturn.
1275         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
1276         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
1277         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
1278         * ipa-pure-const.c (check_decl): Add IPA parameter.
1279         (state_from_flags): New function.
1280         (better_state, worse_state): New functions.
1281         (check_call): When in IPA mode, do not care about callees.
1282         (check_load, check_store): Update.
1283         (check_ipa_load, check_ipa_store): New.
1284         (check_stmt): When in IPA mode, use IPA checkers.
1285         (analyze_function): Use state_from_flags.
1286         (propagate): Check indirect edges and references.
1287
1288 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
1289
1290         PR rtl-optimization/44404
1291         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
1292         of count_occurrences to see if it's safe to modify mem_insn.
1293
1294 2010-06-07  Richard Guenther  <rguenther@suse.de>
1295
1296         * gimplify.c (gimplify_cleanup_point_expr): For empty body
1297         and EH-only cleanup drop the cleanup instead of inserting it
1298         unconditionally.
1299
1300 2010-06-07  Ira Rosen  <irar@il.ibm.com>
1301
1302         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
1303         documentation.
1304         * targhooks.c (default_builtin_vectorization_cost): New function.
1305         * targhooks.h (default_builtin_vectorization_cost): Declare.
1306         * target.h (enum vect_cost_for_stmt): Define.
1307         (builtin_vectorization_cost): Change argument and comment.
1308         * tree-vectorizer.h: Remove cost model macros.
1309         * tree-vect-loop.c: Include target.h.
1310         (vect_get_cost): New function.
1311         (vect_estimate_min_profitable_iters): Replace cost model macros with
1312         calls to vect_get_cost.
1313         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
1314         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
1315         default implementation.
1316         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
1317         calls to target hook builtin_vectorization_cost.
1318         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
1319         Likewise.
1320         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
1321         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
1322         implementation to return costs.
1323         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
1324         * config/spu/spu.h: Remove vectorizer cost model macros.
1325         * config/i386/i386.h: Likewise.
1326         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
1327         a call to target hook builtin_vectorization_cost.
1328
1329 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
1330
1331         PR target/44319
1332         * config/i386/i386.c (override_options): Turn zee pass on for level 2
1333         and above and defer till target is known.
1334         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
1335         turn off otherwise.
1336
1337 2010-05-25  Jan Hubicka  <jh@suse.cz>
1338
1339         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
1340         (df_compact_blocks): Likewise.
1341         * df.h (struct df): Turn hardware_regs_used,
1342         regular_block_artificial_uses, eh_block_artificial_uses,
1343         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
1344         bitmap_head.
1345         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
1346         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
1347         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
1348         df_scan_blocks, df_insn_delete, df_insn_rescan,
1349         df_insn_rescan_debug_internal, df_insn_rescan_all,
1350         df_process_deferred_rescans, df_process_deferred_rescans,
1351         df_notes_rescan, df_get_call_refs, df_get_call_refs,
1352         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
1353         df_record_entry_block_defs, df_record_exit_block_uses,
1354         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
1355         df_scan_verify): Update.
1356
1357 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
1358
1359         PR c++/44188
1360         * c-common.c (is_typedef_decl): Move this definition ...
1361         * tree.c (is_typedef_decl): ... here.
1362         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
1363         * c-common.h (is_typedef_decl): Move this declaration ...
1364         * tree.h (is_typedef_decl): ... here.
1365         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
1366         * dwarf2out.c (is_naming_typedef_decl): New function.
1367         (gen_tagged_type_die): Split out of ...
1368         (gen_type_die_with_usage): ... this function. When an anonymous
1369         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
1370         is emitted for the typedef.
1371         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
1372         anonymous tagged types.
1373
1374 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1375
1376         PR c/20000
1377         * c-decl.c (grokdeclarator): Delete warning.
1378
1379 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
1380
1381         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
1382         newly built CALL_EXPR.
1383         * tree-profile.c (tree_profiling): Don't profile functions produced
1384         for built-in stuff.
1385
1386 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
1387
1388         PR bootstrap/44427
1389         PR bootstrap/44428
1390         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
1391         endianness-independent.
1392
1393 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
1394
1395         * c-common.c: Move to c-family/.
1396         * c-common.def: Likewise.
1397         * c-common.h: Likewise.
1398         * c-cppbuiltin.c: Likewise.
1399         * c-dump.c: Likewise.
1400         * c-format.c: Likewise.
1401         * c-format.h : Likewise.
1402         * c-gimplify.c: Likewise.
1403         * c-lex.c: Likewise.
1404         * c-omp.c: Likewise.
1405         * c.opt: Likewise.
1406         * c-opts.c: Likewise.
1407         * c-pch.c: Likewise.
1408         * c-ppoutput.c: Likewise.
1409         * c-pragma.c: Likewise.
1410         * c-pragma.h: Likewise.
1411         * c-pretty-print.c: Likewise.
1412         * c-pretty-print.h: Likewise.
1413         * c-semantics.c: Likewise.
1414         * stub-objc.c: Likewise.
1415
1416         * gengtype.c (get_file_langdir): Special-case files in c-family/.
1417         (get_output_file_with_visibility): Fix name for c-common.h.
1418         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
1419
1420         * c-tree.h: Update include path for moved files.
1421         * c-lang.c: Likewise.
1422         * c-lang.h: Likewise.
1423         * c-parser.c: Likewise.
1424         * c-convert.c: Likewise.
1425         * c-decl.c: Likewise.
1426         * c-objc-common.c: Likewise.
1427         * configure.ac: Make sure c-family/ exists in the build directory.
1428         * configure: Regenerate.
1429         * Makefile.in: Update paths for moved files.  Regroup files per
1430         location and update dependencies.  Move generated_files down after
1431         ALL_GTFILES_H.
1432
1433         * config/spu/spu-c.c: Update paths for moved files.
1434         * config/mep/mep-pragma.c: Likewise.
1435         * config/darwin-c.c: Likewise.
1436         * config/i386/msformat-c.c: Likewise.
1437         * config/i386/i386-c.c: Likewise.
1438         * config/avr/avr-c.c: Likewise.
1439         * config/sol2-c.c: Likewise.
1440         * config/ia64/ia64-c.c: Likewise.
1441         * config/rs6000/rs6000-c.c: Likewise.
1442         * config/arm/arm.c: Likewise.
1443         * config/arm/arm-c.c: Likewise.
1444         * config/h8300/h8300.c: Likewise.
1445         * config/v850/v850-c.c: Likewise.
1446
1447         * config/t-darwin: Fix dependencies for moved files.
1448         * config/t-sol2: Fix dependencies for moved files.
1449         * config/mep/t-mep: Fix dependencies for moved files.
1450         * config/ia64/t-ia64: Fix dependencies for moved files.
1451         * config/rs6000/t-rs6000: Fix dependencies for moved files.
1452         * config/v850/t-v850: Fix dependencies for moved files.
1453         * config/v850/t-v850e: Fix dependencies for moved files.
1454
1455         * config/m32c/m32c-pragma.c
1456
1457         * po/exgettext: Look in c-family/ also.
1458
1459 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
1460
1461         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
1462         (mark_control_dependent_edges_necessary): Call it instead of marking
1463         the last statement manually.
1464         (propagate_necessity): Likewise.
1465
1466 2010-06-05  Jan Hubicka  <jh@suse.cz>
1467
1468         * basic-block.h (compute_dominance_frontiers): Updated.
1469         (compute_idf): Likewise.
1470
1471         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
1472         for dominance frontiers.
1473         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
1474         (insert_updated_phi_nodes_for): Likewise.
1475         (update_ssa): Likewise.
1476         * cfganal.c (compute_dominance_frontiers_1): Likewise.
1477         (compute_dominance_frontiers): Likewise.
1478         (compute_idf): Likewise.
1479         * df-problems.c (df_md_local_compute): Likewise.
1480
1481 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
1482
1483         * target.h (struct gcc_target): Add memory_move_cost field.
1484         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
1485         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
1486         * targhooks.c (default_memory_move_cost): New function.
1487         * targhooks.h (default_memory_move_cost): Declare function.
1488         * reload.h (memory_move_cost): Declare.
1489         (memory_move_secondary_cost): Change type of 'in' argument to bool.
1490         * reginfo.c (memory_move_cost): New function.
1491         (memory_move_secondary_cost): Change type of 'in' argument to bool.
1492         * ira.h (ira_memory_move_cost): Update comment.
1493         * ira.c: (ira_memory_move_cost): Update comment.
1494         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
1495         with memory_move_cost.
1496         * postreload.c (reload_cse_simplify_set): (Ditto.).
1497         * reload1.c (choose_reload_regs): (Ditto.).
1498         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
1499         (MEMORY_MOVE_COST):  Revise documentation.
1500
1501         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
1502         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
1503         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
1504         type of 'in' argument to bool.
1505         (TARGET_MEMORY_MOVE_COST): Define.
1506
1507 2010-06-05  Jan Hubicka  <jh@suse.cz>
1508
1509         * ipa-pure-const.c (propagate): Fix typo in handling of functions
1510         that cannot return.  Be more careful when merging the results with
1511         previously known ones.
1512
1513 2010-06-05  Matthias Klose  <doko@ubuntu.com>
1514
1515         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
1516         function to add the -iplugindir option.
1517         (find_plugindir_spec_function): Add new declaration and function.
1518         (static_spec_func): Use it for "find-plugindir".
1519
1520 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
1521
1522         PR c++/44361
1523         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
1524         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
1525         statement expression.
1526
1527 2010-06-05  Jan Hubicka  <jh@suse.cz>
1528
1529         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
1530         (df_rd_problem_data): Convert sparse_invalidated_by_call,
1531         dense_invalidated_by_call to bitmap head.
1532         (df_rd_alloc, df_rd_bb_local_compute_process_def,
1533         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
1534         df_rd_start_dump, df_lr_verify_transfer_functions,
1535         df_live_verify_transfer_functions, df_chain_create_bb,
1536         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
1537         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
1538         df_simulate_one_insn_forwards, df_md_alloc,
1539         df_md_bb_local_compute_process_def,
1540         df_md_bb_local_compute_process_def, df_md_local_compute,
1541         df_md_transfer_function df_md_free): Update.
1542
1543 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
1544
1545         PR c/44322
1546         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
1547         target type for ADDR_EXPR; require no changes to qualifiers except
1548         for function types.
1549         * c-tree.h (c_build_type_variant): Remove.
1550
1551 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
1552
1553         * genautomata.c (get_excl_set): Do work per element, not per char.
1554         (check_presence_pattern_sets): Similar.
1555         (check_absence_pattern_sets): Similar.
1556
1557 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
1558
1559         * genautomata.c (curr_state_pass_num): Delete.
1560         (min_issue_delay_pass_states): Delete.
1561         (min_issue_delay): Delete.
1562         (initiate_min_issue_delay_pass_states): Delete.
1563         (output_min_issue_delay_table): Compute min_issue_delay_vect
1564         using a breadth-first search variant.
1565         (output_tables): Don't call initiate_min_issue_delay_pass_states.
1566
1567 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
1568
1569         PR boostrap/44421
1570         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
1571         (df_byte_lr_bb_local_compute): Likewise.
1572
1573 2010-06-03  Jason Merrill  <jason@redhat.com>
1574
1575         Implement noexcept operator (5.3.7)
1576         * c-common.c (c_common_reswords): Add noexcept.
1577         * c-common.h (enum rid): Add RID_NOEXCEPT.
1578
1579 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
1580
1581         * config/darwin-driver.c (darwin_default_min_version): Use
1582         GCC-specific formats in diagnostics.
1583         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
1584         diagnostics.
1585         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
1586         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
1587         eval_spec_function, handle_braces, process_brace_body, main,
1588         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
1589         getenv_spec_function, compare_version_strings,
1590         version_compare_spec_function): Use GCC-specific formats in
1591         diagnostics.
1592
1593 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
1594
1595         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
1596         that operand 0 and operand 1 are equal.
1597         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
1598         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
1599         and operand 1 are equal.
1600         <default>: Ditto.  Remove ??? comment.
1601         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
1602         and operand 1 are equal.
1603         <default>: Ditto.  Remove ??? comment.
1604         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
1605         are equal.
1606         (*add<mode>_4) <default>: Ditto.
1607         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
1608
1609 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
1610
1611         * config/i386/i386-protos.h (ix86_print_operand): Declare.
1612         * config/i386/i386.c (ix86_print_operand): Make non-static.
1613         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
1614         * output.h (output_operand): Declare.
1615         * final.c (output_operand): Make non-static.
1616
1617 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
1618
1619         PR rtl-optimization/44013
1620         * sched-deps.c (add_dependence_list_and_free): Don't free lists
1621         when processing debug insns.
1622
1623         PR debug/41371
1624         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
1625         recursing.  Check that recursion is bounded.  Rename inner var
1626         to avoid hiding incoming argument.
1627
1628 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
1629
1630         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
1631         operands[2] == 255.
1632         (*addqi_3): Ditto.
1633         (*addqi_4): Ditto.
1634         (*addqi_5): Ditto.
1635         (*addqi_ext_1_rex64): Ditto.
1636         (*addqi_ext_1): Ditto.
1637
1638         (*addqi_4): Check for incdec_operand in QImode.
1639
1640         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
1641         using SWI mode iterator.
1642         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
1643         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
1644         mode iterator.
1645         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
1646         using SWI mode iterator.
1647
1648 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1649
1650         PR c/25880
1651         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
1652         * c-format.c (gcc_diag_flag_specs): Add hash.
1653         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
1654         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
1655         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
1656         pp_c_cv_qualifiers. Handle qualifiers spelling here.
1657         (pp_c_type_qualifier_list): Call the function above.
1658         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
1659         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
1660         (WARN_FOR_QUALIFIERS): New macro.
1661         (convert_for_assignment): Use it.
1662
1663 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
1664
1665         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
1666
1667 2010-06-04  Jan Hubicka  <jh@suse.cz>
1668
1669         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
1670         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
1671         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
1672         DF_BYTE_LR_OUT): Update for embedded bitmaps.
1673         * fwprop.c (single_def_use_enter_block): Likewise.
1674         * ddg.c (create_ddg_dep_from_intra_loop_link,
1675         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
1676         * loop-iv.c (latch_dominating_def): Likewise.
1677         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
1678         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
1679         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
1680         df_rd_transfer_function, df_rd_top_dump,
1681         df_rd_bottom_dump): Update.
1682         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
1683         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
1684         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
1685         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
1686         df_lr_verify_solution_start, df_lr_verify_solution_end,
1687         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
1688         df_live_free_bb_info, df_live_alloc, df_live_reset,
1689         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
1690         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
1691         df_live_verify_solution_start, df_live_verify_solution_end,
1692         df_live_verify_transfer_functions, df_chain_create_bb,
1693         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
1694         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
1695         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
1696         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
1697         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
1698         df_byte_lr_transfer_function, df_byte_lr_top_dump,
1699         df_byte_lr_bottom_dump, df_create_unused_note,
1700         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
1701         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
1702         df_md_transfer_function, df_md_init, df_md_confluence_0,
1703         df_md_confluence_n,
1704         df_md_top_dump, df_md_bottom_dump): Update.
1705         (struct df_lr_problem_data): Embedd bitmap headers.
1706
1707 2010-06-04  Jan Hubicka  <jh@suse.cz>
1708
1709         * dce.c (dce_process_block): Do not re-scan already marked
1710         instructions.
1711
1712 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
1713
1714         PR rtl-optimization/39871
1715         PR rtl-optimization/40615
1716         PR rtl-optimization/42500
1717         PR rtl-optimization/42502
1718         * ira.c (init_reg_equiv_memory_loc: New function.
1719         (ira): Call it twice.
1720         * reload.h (calculate_elim_costs_all_insns): Declare.
1721         * ira-costs.c: Include "reload.h".
1722         (regno_equiv_gains): New static variable.
1723         (init_costs): Allocate it.
1724         (finish_costs): Free it.
1725         (ira_costs): Call calculate_elim_costs_all_insns.
1726         (find_costs_and_classes): Take estimated elimination costs
1727         into account.
1728         (ira_adjust_equiv_reg_cost): New function.
1729         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
1730         * reload1.c (init_eliminable_invariants, free_reg_equiv,
1731         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
1732         (elim_bb): New static variable.
1733         (reload): Move code out of here into init_eliminable_invariants and
1734         free_reg_equiv.  Call them.
1735         (calculate_elim_costs_all_insns): New function.
1736         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
1737         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
1738         but call note_reg_elim_costly if we turned a valid memory address
1739         into an invalid one.
1740         * Makefile.in (ira-costs.o): Depend on reload.h.
1741
1742 2010-06-04  Julian Brown  <julian@codesourcery.com>
1743
1744         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
1745         for pool ranges.
1746
1747 2010-06-04  Richard Guenther  <rguenther@suse.de>
1748
1749         PR lto/41584
1750         * cgraph.h (struct varpool_node): Add lto_file_data field.
1751         * lto-cgraph.c (input_varpool_node): Initialize it.
1752
1753 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
1754
1755         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
1756         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
1757         predicate in "type" attribute calculation.
1758         (*addsi_1_zext): Ditto.
1759         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
1760         (*addsi_2_zext): Ditto.
1761         (*add<mode>_3): Ditto.
1762         (*addsi_3_zext): Ditto.
1763         (*add<mode>_5): Ditto.
1764
1765 2010-06-03  Jan Hubicka  <jh@suse.cz>
1766
1767         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
1768         of bitmap_bit_p.
1769         * cfganal.c (compute_dominance_frontiers_1): Likewise.
1770
1771 2010-06-03  Jan Hubicka  <jh@suse.cz>
1772
1773         * df-problems.c (df_create_unused_note, df_note_bb_compute):
1774         micro-optimize the checks when to add new note.
1775
1776 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
1777
1778         * final.c (output_asm_insn): Call
1779         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
1780         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
1781         (output_address): Call targetm.asm_out.print_operand_address.
1782         Update comments.
1783         * target.h (struct gcc_target): Add print_operand,
1784         print_operand_address, and print_operand_punct_valid_p fields.
1785         * targhooks.h (default_print_operand): Declare.
1786         (default_print_operand_address): Declare.
1787         (default_print_operand_punct_valid_p): Declare.
1788         * targhooks.c (default_print_operand): Define.
1789         (default_print_operand_address): Define.
1790         (default_print_operand_punct_valid_p): Define.
1791         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
1792         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
1793         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
1794         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
1795         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
1796         * vmsdbgout.c (addr_const_to_string): Update comment.
1797         * config/i386/i386.c (print_operand): Rename to...
1798         (ix86_print_operand): ...this.  Make static.
1799         (print_operand_address): Rename to...
1800         (ix86_print_operand_address): ...this.  Make static.  Call
1801         ix86_print_operand instead of PRINT_OPERAND.
1802         (ix86_print_operand_punct_valid_p): New function.
1803         (TARGET_PRINT_OPERAND): Define.
1804         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1805         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1806         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
1807         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1808         (PRINT_OPERAND): Delete.
1809         (PRINT_OPERAND_ADDRESS): Delete.
1810         * config/i386/i386-protos.h (print_operand): Delete prototype.
1811         (print_operand_address): Delete prototype.
1812
1813 2010-06-03  Richard Guenther  <rguenther@suse.de>
1814
1815         PR tree-optimization/44403
1816         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
1817         Preserve pointer qualifiers.
1818         (vect_create_data_ref_ptr): Likewise.
1819
1820 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1821
1822         PR c++/44294
1823         * defaults.h (MAX_FIXED_MODE_SIZE): New.
1824
1825         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
1826
1827 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
1828
1829         PR debug/44375
1830         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
1831         return false if merging the bbs would lead to goto_locus
1832         location being lost from the IL.
1833
1834 2010-06-03  Jan Hubicka  <jh@suse.cz>
1835             Jakub Jelinek  <jakub@redhat.com>
1836
1837         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
1838         set->regs[i] is NULL or has just one entry.
1839
1840 2010-06-03  Jan Hubicka  <jh@suse.cz>
1841
1842         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
1843         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
1844
1845 2010-06-03  Paul Brook  <paul@codesourcery.com>
1846
1847         * config/arm/arm.c (FL_TUNE): Define.
1848         (arm_default_cpu, arm_cpu_select): Remove.
1849         (all_cores): Populate core field.
1850         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
1851         (arm_find_cpu): New function.
1852         (arm_handle_option): Lookup cpu/architecture names.
1853         (arm_override_options): Cleanup mcpu/march/mtune handling.
1854         (arm_file_start): Ditto.
1855
1856 2010-06-03  Alan Modra  <amodra@gmail.com>
1857
1858         PR target/44169
1859         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
1860         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
1861         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
1862         (rs6000_emit_load_toc_table): Likewise.
1863
1864 2010-06-02  Jan Hubicka  <jh@suse.cz>
1865
1866         * passes.c (init_optimization_passes): Put ipa reference
1867         after ipa pure-const.
1868
1869 2010-06-02  Jan Hubicka  <jh@suse.cz>
1870
1871         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
1872         calls_read_all and calls_write_all.
1873         (get_reference_optimization_summary): Fix formatting.
1874         (is_proper_for_analysis): Check that decl is not readonly.
1875         (propagate_bits): Check CONST/PURE/noreturn flags.
1876         (ipa_init): Move all_module_statics to optimization_summary_obstack.
1877         (analyze_function): Ignore indirect edges.
1878         (copy_global_bitmap): For all module statics, do nothing.
1879         (generate_summary): Do not print calls_read_all/calls_write_all.
1880         (read_write_all_from_decl): Take node as argument; check
1881         cgraph_node_cannot_return.
1882         (propagate): Reorganize read_all/write_all computation;
1883         check indirect edges; check ecf flags; use all_module_statics
1884         in the results; do not free all_module_statics.
1885         (stream_out_bitmap): Handle all_module_statics.
1886         (ipa_reference_write_optimization_summary): Likewise; use
1887         varpool/cgraph encoders to get boundaries.
1888         (ipa_reference_read_optimization_summary): Read in all_module_statics;
1889         use it when possible.
1890
1891 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1892
1893         PR target/44218
1894         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
1895         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
1896
1897         * doc/extend.texi (powerpc builtins): Document vec_recip,
1898         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
1899
1900         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
1901         (rs6000_emit_swrsqrt): Ditto.
1902         (rs6000_emit_swdivsf): Delete.
1903         (rs6000_emit_swdivdf): Ditto.
1904         (rs6000_emit_swrsqrtsf): Ditto.
1905
1906         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
1907         describe the reciprocal estimate support for each type.
1908         (recip_options): Map -mrecip=<opt> into option bits.
1909         (gen_2arg_fn_t): New typedef for binary rtx gen function.
1910         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
1911         reciprocal estimate instructions.
1912         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
1913         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
1914         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
1915         cost information if -mdebug=cost or -mdebug=reg.
1916         (rs6000_override_options): Set -mrecip-precision for power6, and
1917         power7 machines.  If -mvsx or -mdfp, enable various options that
1918         came in previous instruction set ISAs, unless the option was
1919         explicitly disabled by the command line option.  Parse
1920         -mrecip=<opt> options.
1921         (rs6000_builtin_vectorized_function): Add support for vectorizing
1922         the reciprocal estimate builtins and expansions.
1923         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
1924         (bdesc_2arg): Add reciprocal estimate builtins.
1925         (bdesc_1arg): Add reciprocal square root estimate builtins.
1926         (rs6000_expand_builtin): Rewrite to use a switch statement,
1927         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
1928         (rs6000_init_builtins): Create declarations for reciprocal
1929         estimate builtins.
1930         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
1931         sized, prefer traditional floating point registers, if integer
1932         vector types, prefer altivec registers.  Don't actually look at
1933         the memory address any more.
1934         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
1935         builtins.
1936         (rs6000_load_constant_and_splat): New helper function to load up
1937         the constant for reciprocal estimate instructions.
1938         (rs6000_emit_madd): New helper function for generating
1939         multiply/add type instructions, based on the current switches.
1940         (rs6000_emit_msub): Ditto.
1941         (rs6000_emit_mnsub): Ditto.
1942         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
1943         replace a divide with a reciprocal estimate and fixup, adding
1944         support for machines with high precision and vectors.
1945         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
1946         low precision machines.
1947         (rs6000_emit_swdiv): New common function to be called to replace a
1948         division with reciprocal estimate and fixup.
1949         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
1950         for double and vector types.  Add support for high precision machines.
1951
1952         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
1953         the reciprocal estimate instructions can be generated.
1954         (TARGET_FRE): Ditto.
1955         (TARGET_FRSQRTES): Ditto.
1956         (TARGET_FRSQRTE): Ditto.
1957         (RS6000_RECIP_*): New macros for reciprocal estimate support.
1958
1959         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
1960         square root estimate on vectors.
1961         (re<mode>2): New insn for reciprocal division estimate on vectors.
1962
1963         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
1964         New builtin.
1965         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
1966         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
1967         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
1968         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
1969         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
1970         (RS6000_BUILTIN_RSQRT): Ditto.
1971         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
1972         floating point builtin.
1973
1974         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1975         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
1976         __RECIP_PRECISION__ based on the command line switches.
1977         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
1978
1979         * config/rs6000/rs6000.opt (-mrecip): Document add support for
1980         replacing division instructions with reciprocal estimate and fixup.
1981         (-mrecip=<opt>): New option.
1982         (-mrecip-precision): Ditto.
1983
1984         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
1985         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
1986         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
1987         precision scalar.
1988
1989         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
1990         (UNSPEC_VREFP): Ditto.
1991         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
1992         conterparts with regard to support of -mno-fused-madd and -ffast-math.
1993         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
1994         reciprocal estimate instructions to be generated.
1995         (altivec_vrefp): Ditto.
1996
1997         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
1998         estimate support.
1999         (rreg): New mode attribute for reciprocal estimate support.
2000         (recip<mode>3): New insn for division using reciprocal estimate
2001         and fixup builtins.
2002         (divide define_split): New define_split to convert floating point
2003         division to use reciprocal estimate if the user used the
2004         appropriate options and the split is run when we can add new
2005         pseudo registers for the fixup.
2006         (rsqrt<mode>2): New insn for reciprocal square root support.
2007         (recipsf3): Move into recip<mode>3.
2008         (recipdf3): Ditto.
2009         (fres): Use TARGET_FRES.
2010         (rsqrtsf2): Move into rsqrt<mode>2.
2011         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
2012         (copysignsf3): Add support for VSX.
2013         (fred): Use TARGET_FRE.
2014         (fred_fpr): Ditto.
2015         (rsqrtdf_internal1): New function for frsqrte instruciton.
2016
2017         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
2018         (vec_rsqrt): Ditto.
2019
2020 2010-06-03  Richard Guenther  <rguenther@suse.de>
2021
2022         PR middle-end/44291
2023         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
2024         (set_user_assembler_libfunc): Likewise.
2025
2026 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
2027
2028         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
2029         defaults.h.
2030         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
2031         to defaults.h
2032         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
2033         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
2034         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
2035         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
2036         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
2037         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
2038         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
2039         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
2040         * defaults.h: Updated for above mentioned changes.
2041
2042 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
2043
2044         * c-common.c: Remove header include of tm_p.h.
2045         * Makefile.in (c-common.o): Remove TM_P_H dependency.
2046
2047 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
2048
2049         * tree.h (struct tree_decl_map): New type.
2050         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
2051         (tree_decl_map_hash): New prototype.
2052         (debug_expr_for_decl, value_expr_for_decl): Change into
2053         tree_decl_map hashtab from tree_map.
2054         (init_ttree): Adjust initialization.
2055         (tree_decl_map_hash): New function.
2056         (decl_debug_expr_lookup, decl_debug_expr_insert,
2057         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
2058
2059 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2060
2061         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
2062         linker emulations.
2063         * configure: Regenerate.
2064         * config.in: Regenerate.
2065
2066         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
2067         (X86_64_EMULATION): Define.
2068         (TARGET_LD_EMULATION): Use them.
2069
2070         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
2071         (SPARC64_EMULATION): Define.
2072         (LINK_ARCH_SPEC): Use them.
2073
2074 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
2075
2076         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
2077         smallest_mode_for_size for computing the precision types of new
2078         graphite IVs.  Do not call lang_hooks.types.type_for_size.
2079
2080 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
2081
2082         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
2083         information.
2084         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
2085
2086 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
2087
2088         PR middle-end/44363
2089         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
2090         return false instead.
2091
2092 2010-06-02  Jan Hubicka  <jh@suse.cz>
2093
2094         PR middle-end/44295
2095         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
2096         create new cgraph node to check callee.
2097
2098 2010-06-02  Richard Guenther  <rguenther@suse.de>
2099
2100         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
2101
2102 2010-06-02  Richard Guenther  <rguenther@suse.de>
2103
2104         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
2105         (lto_wrapper_cleanup): ... this.  Do not exit.
2106         (fatal): Adjust.  Exit here.
2107         (fatal_perror): Likewise.
2108         (fatal_signal): New function.
2109         (main): Set up signal handlers to cleanup temporary files.
2110         * Makefile.in (lto-wrapper.o): Adjust dependencies.
2111
2112 2010-06-02  Richard Guenther  <rguenther@suse.de>
2113
2114         PR tree-optimization/44377
2115         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
2116
2117 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2118
2119         * config/s390/2097.md (z10_fhex): Remove insn reservation.
2120         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
2121         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
2122         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
2123         instruction.
2124         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
2125
2126 2010-06-02  Jan Hubicka  <jh@suse.cz>
2127
2128         * bitmap.c (bitmap_descriptor): Add search_iter.
2129         (bitmap_find_bit): Increment it.
2130         (print_statistics): Print it.
2131
2132 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
2133
2134         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
2135         instead of gimple_build_call_vec.  Delete unnecessary local variable.
2136
2137 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
2138
2139         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
2140         change from yesterday.
2141
2142 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
2143
2144         * c-ada-spec.c: Clean up redundant includes.
2145
2146 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
2147
2148         * gimplify.c: Do not include except.h and optabs.h.
2149         (gimplify_body): Do not initialize RTL profiling.
2150         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
2151         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
2152         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
2153         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
2154         langhooks.h.
2155
2156         * tree-pretty-print.h: Include pretty-print.h.
2157         * gimple-pretty-print.h: Include pretty-print.h.
2158
2159         * tree-pretty-print.c: Do not include diagnostic.h.
2160         * tree-vrp.c: Likewise.
2161         * tree-tailcall.c: Likewise
2162         * tree-scalar-evolution.c: Likewise
2163         * tree-ssa-dse.c: Likewise
2164         * tree-chrec.c: Likewise
2165         * tree-ssa-sccvn.c: Likewise
2166         * tree-ssa-copyrename.c: Likewise
2167         * tree-nomudflap.c: Likewise
2168         * tree-call-cdce.c: Likewise
2169         * tree-stdarg.c: Likewise
2170         * tree-ssa-math-opts.c: Likewise
2171         * tree-nrv.c: Likewise
2172         * tree-ssa-sink.c: Likewise
2173         * tree-browser.c: Likewise
2174         * tree-ssa-loop-ivcanon.c: Likewise
2175         * tree-ssa-loop.c: Likewise
2176         * tree-parloops.c: Likewise
2177         * tree-ssa-address.c: Likewise
2178         * tree-ssa-ifcombine.c: Likewise
2179         * tree-if-conv.c: Likewise
2180         * tree-data-ref.c: Likewise
2181         * tree-affine.c: Likewise
2182         * tree-ssa-phiopt.c: Likewise
2183         * tree-ssa-coalesce.c: Likewise
2184         * tree-ssa-pre.c: Likewise
2185         * tree-ssa-live.c: Likewise
2186         * tree-predcom.c: Likewise
2187         * tree-ssa-forwprop.c: Likewise
2188         * tree-ssa-dce.c: Likewise
2189         * tree-ssa-ter.c: Likewise
2190         * tree-ssa-loop-prefetch.c: Likewise
2191         * tree-optimize.c: Likewise
2192         * tree-ssa-phiprop.c: Likewise
2193         * tree-object-size.c: Likewise
2194         * tree-outof-ssa.c: Likewise
2195         * tree-ssa-structalias.c: Likewise
2196         * tree-switch-conversion.c: Likewise
2197         * tree-ssa-reassoc.c: Likewise
2198         * tree-ssa-operands.c: Likewise
2199         * tree-vectorizer.c: Likewise
2200         * tree-vect-data-refs.c: Likewise
2201         * tree-vect-generic.c: Likewise
2202         * tree-vect-stmts.c: Likewise
2203         * tree-vect-patterns.c: Likewise
2204         * tree-vect-slp.c: Likewise
2205         * tree-vect-loop.c: Likewise
2206         * tree-ssa-loop-ivopts.c: Likewise
2207         * tree-ssa-loop-im.c: Likewise
2208         * tree-ssa-loop-niter.c: Likewise
2209         * tree-ssa-loop-unswitch.c: Likewise
2210         * tree-ssa-loop-manip.c: Likewise
2211         * tree-ssa-loop-ch.c: Likewise
2212         * tree-dump.c: Likewise
2213         * tree-complex.c: Likewise
2214
2215         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
2216         * tree-ssa-uninit.c: Likewise
2217         * tree-ssa-threadupdate.c: Likewise
2218         * tree-ssa-uncprop.c: Likewise
2219         * tree-ssa-ccp.c: Likewise
2220         * tree-ssa-dom.c: Likewise
2221         * tree-ssa-propagate.c: Likewise
2222         * tree-ssa-alias.c: Likewise
2223         * tree-dfa.c: Likewise
2224         * tree-cfgcleanup.c: Likewise
2225         * tree-sra.c: Likewise
2226         * tree-ssa-copy.c: Likewise
2227         * tree-ssa.c: Likewise
2228         * tree-profile.c: Likewise
2229         * tree-cfg.c: Likewise
2230         * tree-ssa-threadedge.c: Likewise
2231         * tree-vect-loop-manip.c: Likewise
2232
2233         * tree-inline.c: Do not include diagnostic.h and expr.h.
2234         Include rtl.h.
2235         (copy_decl_for_dup_finish): Do not use NULL_RTX.
2236
2237         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
2238         * tree-loop-distribution.c: Likewise.
2239
2240 2010-06-01  Jan Hubicka  <jh@suse.cz>
2241
2242         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
2243
2244 2010-06-01  Jan Hubicka  <jh@suse.cz>
2245
2246         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
2247         remove return value.
2248         (split_bbs_on_noreturn_calls) .... here.
2249         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
2250         * tree-flow.h (fixup_noreturn_call): New.
2251
2252 2010-06-01  Jan Hubicka  <jh@suse.cz>
2253
2254         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
2255
2256 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
2257
2258         * tree.h (build_nt_call_list): Delete.
2259         * tree.c (build_nt_call_list): Delete.
2260
2261 2010-06-01  Jan Hubicka  <jh@suse.cz>
2262
2263         * fwprop.c: Make emit-rtl.h include last.
2264         * rtlanal.c: Include emit-rtl.h.
2265         * genautomata.c: Output emit-rtl include into insn-automata.c
2266         * df-scan.c: Include emit-rtl.h.
2267         * haifa-sched.c: Indlude emit-rtl.h.
2268         * mode-switching.c: Indlude emit-rtl.h.
2269         * graph.c: Indlude emit-rtl.h.
2270         * sel-sched.c: Include emit-rtl.h.
2271         * sel-sched-ir.c: Include emit-rtl.h.
2272         * ira-build.c: Include emit-rtl.h.
2273         * emit-rtl.c: (first_insn, last_insn): Remove defines.
2274         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
2275         Move to emit-rtl.h.
2276         (set_new_first_and_last_insn, get_last_insn_anywhere,
2277         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
2278         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
2279         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
2280         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
2281         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
2282         Use accessor functions.
2283         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
2284          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
2285         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
2286         mem_expr_equal_p): Move here from rtl.h.
2287         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
2288         Move here from emit-rtl.c; make inline.
2289         * cfglayout.h: Include emit-rtl.h.
2290         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
2291          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
2292         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
2293         mem_expr_equal_p, get_insns, set_first-insn,
2294         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
2295         * reg-stack.c: Include emit-rtl.h.
2296         * dce.c: Likewise.
2297
2298 2010-06-01  Jan Hubicka  <jh@suse.cz>
2299
2300         * cgraph.h (tree_function_versioning): Update prototype.
2301         (cgraph_function_versioning): Update prototype.
2302         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
2303         bitmap.
2304         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
2305         (cgraph_materialize_clone, save_inline_function_body): Update use of
2306         tree_function_versioning.
2307         * tree-inline.c (copy_bb): Look for previous copied block to link
2308         after; fix debug output.
2309         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
2310         (copy_body): Likewise.
2311         (expand_call_inline): Update use of copy_body.
2312         (tree_function_versioning): Update use of copy body; accept
2313         blocks_to_copy and new_entry.
2314
2315 2010-06-01  Jan Hubicka  <jh@suse.cz>
2316
2317         * gegenrtl.c: Remove unnecesary prototypes.
2318         (gendecl): Remove.
2319         (gendef): Produce static inline.
2320         (gencode): Remove.
2321         (main): Do not decode parameters; generate header only.
2322         * Makefile.in (genrtl.c): Remove.
2323
2324 2010-06-01  Jan Hubicka  <jh@suse.cz>
2325
2326         * tree-switch-conversion.c (build_one_array): Make it readonly.
2327
2328 2010-06-01  Richard Guenther  <rguenther@suse.de>
2329
2330         * optabs.c (init_optabs): Guard all accesses to reinit.
2331         * ipa-pure-const.c (propagate): Fix another typo.
2332         * opts.c (common_handle_option): Split assignment to bool.
2333         * c-opts.c (c_common_handle_option): Likewise.
2334
2335 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
2336             Matthew Gingell  <gingell@adacore.com>
2337
2338         * doc/invoke.texi: Mention -fdump-ada-spec.
2339         * tree-dump.c (dump_files): Add ada-spec.
2340         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
2341         * tree-pass.h (tree_dump_index): Add TDI_ada.
2342         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
2343         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
2344         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
2345         * c-decl.c: Include c-ada-spec.h.
2346         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
2347         functions.
2348         (c_write_global_declarations): Add handling of -fdump-ada-spec.
2349         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
2350         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
2351         * c-ada-spec.h, c-ada-spec.c: New files.
2352
2353 2010-06-01  Richard Guenther  <rguenther@suse.de>
2354
2355         PR lto/43853
2356         * ipa-pure-const.c (get_function_state): Hand back varying state
2357         if we do not have one.
2358         (has_function_state): New function.
2359         (duplicate_node_data): Adjust.
2360         (remove_node_data): Likewise.
2361         (pure_const_write_summary): Likewise.
2362         (propagate): Likewise.  Fix typo.
2363
2364 2010-06-01  Jan Hubicka  <jh@suse.cz>
2365
2366         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
2367         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
2368         (execute_all_ipa_transforms): Do not play with the states.
2369
2370 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
2371
2372         * config/arm/t-linux-androideabi: New.
2373         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
2374
2375 2010-06-01  Jan Hubicka  <jh@suse.cz>
2376
2377         * tree-inline.c (estimate_num_insns): For stdarg functions look
2378         into call statement to count cost of argument passing.
2379
2380 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
2381
2382         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
2383         argument for fprintf.
2384         (ix86_output_addr_diff_elt): Likewise.
2385         (x86_function_profiler): Likewise.
2386         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
2387         (LPREFIX): Likewise.
2388         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2389
2390 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
2391
2392         PR target/44338
2393         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
2394         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
2395         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
2396         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
2397         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
2398         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
2399         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
2400         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
2401         TARGET_FUSED_MADD.
2402
2403 2010-05-31  Jan Hubicka  <jh@suse.cz>
2404
2405         * tree.h (tree_range_check_failed): Declare noreturn.
2406
2407 2010-05-31  Jan Hubicka  <jh@suse.cz>
2408
2409         * gimple.c (gimple_call_builtin_p): New function.
2410         * gimple.h (gimple_call_builtin_p): Declare.
2411         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
2412         to exit.
2413         (execute_warn_function_return): BUILT_IN_RETURN is return.
2414         (split_critical_edges): Return edges are not critical.
2415         (is_ctrl_altering_stmt): Builtin_in_return is altering.
2416         (gimple_verify_flow_info): Handle built_in_return.
2417         (execute_warn_function_return): Handle built_in_return.
2418         * ipa-pure-const.c (check_call): Ignore builtin_return.
2419
2420 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
2421
2422         PR middle-end/44337
2423         * expr.c (expand_assignment): Don't store anything for out-of-bounds
2424         array accesses with non-MEM.
2425
2426         PR tree-optimization/44182
2427         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
2428         newly needs to end a bb is followed by debug stmts, instead return
2429         true from the function at the end.
2430         (maybe_move_debug_stmts_to_successors): New function.
2431         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
2432
2433 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
2434
2435         PR target/44161
2436         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
2437
2438 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
2439
2440         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
2441         for nested functions in non-optimized compilation.
2442
2443 2010-05-31  Richard Guenther  <rguenther@suse.de>
2444
2445         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
2446
2447 2010-05-30  Jan Hubicka  <jh@suse.cz>
2448
2449         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
2450
2451 2010-05-30  Richard Guenther  <rguenther@suse.de>
2452
2453         PR lto/42975
2454         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
2455         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
2456         no longer needed.
2457
2458 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
2459
2460         * config/darwin.c (output_objc_section_asm_op): Add comment.
2461         (name_needs_quotes): Add '_' to list of valid comment chars.
2462         (machopic_output_function_base_name): Remove unneeded quotes.
2463         (darwin_encode_section_info): Adjust asm whitespace.
2464         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
2465         (ASM_OUTPUT_LOCAL): Ditto.
2466         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
2467         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
2468         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
2469
2470 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2471
2472         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
2473         RS6000_OUTPUT_BASENAME unconditionally.
2474         (rs6000_output_function_epilogue): Likewise.
2475
2476 2010-05-30  Jan Hubicka  <jh@suse.cz>
2477
2478         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
2479         nodes.
2480
2481 2010-05-30  Richard Guenther  <rguenther@suse.de>
2482
2483         * tree-cfg.c (verify_gimple_assign_single): Implement
2484         verification for COND_EXPR rhs.
2485
2486 2010-05-30  Jan Hubicka  <jh@suse.cz>
2487
2488         * cgraph.h (cgraph_dump_file): Declare.
2489         * cgraphunit.c (cgraph_dump_file): Export.
2490         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
2491
2492 2010-05-30  Jan Hubicka  <jh@suse.cz>
2493
2494         * dwarf2out.c (reference_to_unused,
2495         premark_types_used_by_global_vars_helper): Avoid creation of new
2496         varpool nodes.
2497
2498 2010-05-30  Jan Hubicka  <jh@suse.cz>
2499
2500         * cgraph.h (cgraph_node_cannot_return,
2501         cgraph_edge_cannot_lead_to_return): New functions.
2502         * cgraph.c (cgraph_node_cannot_return,
2503         cgraph_edge_cannot_lead_to_return): Use them.
2504         * ipa-pure-const.c (pure_const_names): New static var.
2505         (check_call): Handle calls not leading to return.
2506         (pure_const_read_summary): Dump info read.
2507         (propagate): Dump info about propagation process; ignore side effects
2508         of functions not leading to exit; fix handling of pure functions.
2509
2510 2010-05-30  Jan Hubicka  <jh@suse.cz>
2511
2512         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
2513         for tail call epilogues.
2514
2515 2010-05-30  Jan Hubicka  <jh@suse.cz>
2516
2517         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
2518         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
2519         dump files.
2520
2521 2010-05-29  Jan Hubicka  <jh@suse.cz>
2522
2523         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
2524         node; remove references in node we no longer keep in cgrpah but need
2525         body of.
2526
2527 2010-05-29  Jan Hubicka  <jh@suse.cz>
2528
2529         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
2530
2531 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2532
2533         PR target/44165
2534         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
2535
2536 2010-05-29  Jan Hubicka  <jh@suse.cz>
2537
2538         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
2539         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
2540         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
2541         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
2542         debug_names_replaced_by, debug_update_ssa): Likewise.
2543         * sbitmap.c (debug_sbitmap): Likewise.
2544         * genrecog.c (debug_decision, debug_decision_list): Likewise.
2545         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
2546         debug_tree_chain): Likewise.
2547         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
2548         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
2549         * optabs.c  (debug_optab_libfuncs): Likewise.
2550         (verify_loop_closed_ssa): Likewise.
2551         * value-prof.c (verify_histograms): Likewise.
2552         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
2553         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
2554         * cfghooks.c (verify_flow_info): Likewise.
2555         * fold-const.c (debug_fold_checksum): Likewise.
2556         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
2557         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
2558         Likewise.
2559         * omega.c (debug_omega_problem): Likewise.
2560         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
2561         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
2562         * dominance.c (verify_dominators, debug_dominance_info,
2563         debug_dominance_tree): Likewise.
2564         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
2565         * df_regno_debug, df_ref_debug,
2566         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
2567         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
2568         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
2569         * sel-sched.c (debug_state): Likewise.
2570         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
2571         Likewise.
2572         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
2573         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
2574         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
2575         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
2576         Likewise.
2577         * c-pretty-print.c (debug_c_tree): Likewise.
2578         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
2579         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
2580         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
2581         * ebitmap.c (debug_ebitmap): Likewise.
2582         * function.c (debug_find_var_in_block_tree): Likewise.
2583         * print-rtl.c (debug_rtx): Likewise.
2584         (debug_rtx_count): Likewise.
2585         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
2586         * stor-layout.c (debug_rli): Likewise.
2587         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
2588         * tree-data-ref.c (debug_data_references,
2589         debug_data_dependence_relations, debug_data_reference,
2590         debug_data_dependence_relation, debug_rdg_vertex,
2591         debug_rdg_component, debug_rdg): Likewise.
2592         * tree-affine.c (debug_aff): Likewise.
2593         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
2594         Likewise.
2595         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
2596         * emit-rtl.c (verify_rtl_sharing): Likewise.
2597         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
2598         debug_value_expressions): Likewise.
2599         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
2600         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
2601         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
2602         * cfglayout.c (verify_insn_chain): Likewise.
2603         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
2604         debug_clast_stmt, debug_generated_program): Likewise.
2605         * ggc-page.c (debug_print_page_list): Likewise.
2606         * tree-ssa-ter.c (debug_ter): Likewise.
2607         * graphite-dependences.c (debug_pddr): Likewise.
2608         * sched-deps.c (debug_ds): Likewise.
2609         * tree-ssa.c (verify_ssa): Likewise.
2610         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
2611         debug_scattering_functions, debug_iteration_domains, debug_pdr,
2612         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
2613         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
2614         * tree-inline.c (debug_find_tree): Likewise.
2615         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
2616         debug_ppl_powerset_matrix): Likewise.
2617         * var-tracking.c (debug_dv): Likewise.
2618         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
2619         * cfgloop.c (verify_loop_structure): Likewise.
2620         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
2621         * c-common.c (verify_sequence_points): Likewise.
2622         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
2623         debug_candidates, debug_rgn_dependencies): Likewise.
2624         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
2625         * debug_constraint_graph, debug_solution_for_var,
2626         debug_sa_points_to_info): Likewise.
2627         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
2628         Likewie.
2629         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
2630         debug_loops, debug_loop, debug_loop_num): Likewise.
2631         * passes.c (debug_pass): Likewise.
2632         (dump_properties): Likewise; add cfglayout property.
2633         (debug_properties): Likewise.
2634         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
2635         * varpool.c (debug_varpool): Likewise.
2636         * regcprop.c (debug_value_data): Likewise.
2637         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
2638         debug_immediate_uses_for): Likewise.
2639
2640 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2641
2642         PR bootstrap/44315
2643         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
2644         Filter out insn-flags.h.
2645
2646 2010-05-29  Jan Hubicka  <jh@suse.cz>
2647
2648         * cgraph.h (struct varpool_node_set_def,
2649         struct cgraph_node_set_def): Remove unused AUX pointer.
2650         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
2651         VEC_empty macro.
2652
2653 2010-05-29  Jan Hubicka  <jh@suse.cz>
2654
2655         PR middle-end/44324
2656         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
2657
2658 2010-05-29  Richard Guenther  <rguenther@suse.de>
2659
2660         * lto-streamer.c (cached_bp): New global variable.
2661         (bitpack_create): Return the cached bitpack, if available.
2662         (bitpack_delete): Clear and cache the bitpack, if appropriate.
2663         (bp_pack_value): Remove redundant asserts.
2664
2665 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
2666
2667         PR middle-end/44306
2668         * tree-if-conv.c (is_true_predicate): New.
2669         (is_predicated): Use is_true_predicate.
2670         (add_to_predicate_list): Same.  Do not use unshare_expr.
2671         (add_to_dst_predicate_list): Same.
2672
2673 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
2674
2675         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
2676         field on edges.
2677         (predicate_bbs): Same.
2678         (clean_predicate_lists): Same.
2679         (find_phi_replacement_condition): Do not AND the predicate from
2680         edge->aux.
2681
2682 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2683
2684         PR bootstrap/44315
2685         * Makefile.in (build/gencondmd.o): Add a missing `\'.
2686
2687 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2688
2689         PR target/44261
2690         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
2691         (negdf2): Adjust expander pattern and use negdf2_slow.
2692         (negsf2): Likewise.
2693
2694 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
2695
2696         * basic-block.h (struct control_flow_graph): Move last_label_uid field
2697         up.
2698         * df.h (struct df_base_ref): Move regno field up.
2699         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
2700         * expr.h (struct separate_ops): Move location field up.
2701         * optabs.h (struct optab_d): Move libcall_basename field down.
2702         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
2703         * config/i386/i386.h (struct machine_function): Convert call_abi field
2704         into a bitfield.  Move cfa field to the end of the structure.
2705
2706 2010-05-29  Jan Hubicka  <jh@suse.cz>
2707
2708         * varpool.c (varpool_get_node): Fix lookup.
2709
2710 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2711
2712         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
2713         RTL specific prototypes with #ifdef RTX_CODE.
2714         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
2715         * config/spu/t-spu-elf: Fix dependencies.
2716
2717         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
2718
2719 2010-05-29  Mike Stump  <mikestump@comcast.net>
2720
2721         PR bootstrap/44315
2722         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
2723         TM_H when building to avoid dependency loops.
2724
2725 2010-05-29  Jan Hubicka  <jh@suse.cz>
2726
2727         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
2728         refs and body; not the whole node for masters of materialized
2729         clones.
2730
2731 2010-05-29  Mike Stump  <mikestump@comcast.net>
2732
2733         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
2734
2735 2010-05-29  Jan Hubicka  <jh@suse.cz>
2736
2737         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
2738         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
2739         use of clone_function_name.
2740         * cgraph.h (cgraph_create_virtual_clone,
2741         cgraph_function_versioning): update prototypes.
2742         (clone_function_name): Declare.
2743         * ipa-cp.c (ipcp_insert_stage): Update call of
2744         cgraph_create_virtual_clone.
2745         * omp-low.c (create_omp_child_function_name): Use
2746         cgraph_create_virtual_clone.
2747         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
2748         (cgraph_function_versioning): Take SUFFIX argument; produce new name
2749         and make decl local.
2750
2751 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2752
2753         * vec.h: Include statistics.h
2754         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
2755         with VEC_H.
2756
2757 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2758
2759         * c-lex.c: Do not include c-tree.h.
2760         * c-pretty-print.c: Likewise.
2761         * c-opts.c: Likewise.
2762         * c-gimplify.c: Likewise.
2763         * c-common.c: Likewise.
2764         * c-dump.c: Likewise.  Include c-common.h.
2765
2766 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2767
2768         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
2769         before including diagnostic-core.h.
2770         (c_cpp_error): New prototype moved from c-tree.h.
2771         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
2772         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
2773         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
2774         (c_cpp_error): Prototype moved to c-common.h.
2775         * Makefile.in: Update dependency for C_COMMON_H.
2776
2777 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2778
2779         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
2780         * c-common.c (c_register_addr_space): Remove here.
2781         * c-decl.c (c_register_addr_space): Re-add here.
2782
2783 2010-05-28  Mike Stump  <mikestump@comcast.net>
2784
2785         * config/darwin-c.c: Remove c-tree.h include.
2786
2787 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2788
2789         * gcc.c: Include diagnostic.h.
2790         (error_count): Remove.  All users changed to use errorcount.
2791         (programname): Remove.  All users changed to use progname.
2792         (fancy_abort, internal_error, fatal_error, error, warning, inform,
2793         fnotice): Remove.
2794         (execute): Don't include "Internal error" and bug reporting
2795         information in argument of internal_error call.
2796         (process_command): Don't increment error_count after calling
2797         perror_with_name.
2798         (input_filename): Rename to gcc_input_filename.  All users
2799         changed.
2800         (main): Call diagnostic_initialize.  Register delete_temp_files
2801         with atexit.  Use seen_error to test for errors.
2802         * gcc.h: Include diagnostic-core.h.
2803         (fatal_error, error, warning): Remove.
2804         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
2805         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
2806         (gcc.o): Update dependencies.
2807
2808 2010-05-28  Jeff Law  <law@redhat.com>
2809
2810         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
2811         functions.
2812         * ira.h (ira_bad_reload_regno): Declare
2813         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
2814
2815         * ira-color.c (update_curr_costs): Free updated hard reg costs.
2816         (ira_reassign_conflict_allocnos): Remove bogus asserts.
2817         (allocno_reload_assign): Likewise.
2818
2819 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
2820
2821         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
2822         build1_stat.
2823
2824 2010-05-28  Richard Guenther  <rguenther@suse.de>
2825
2826         PR lto/44312
2827         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
2828         Stream fixed-point constants mode.
2829         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
2830         and TYPE_PRECISION.
2831         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
2832         Stream fixed-point constants mode.
2833         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
2834         and TYPE_PRECISION.
2835
2836 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
2837
2838         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
2839         only place it was called from.
2840         (number_of_latch_executions): Do not return chrec_dont_know when the
2841         may_be_zero is a runtime condition: instead, return a COND_EXPR
2842         including the may_be_zero condition.
2843         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
2844         of nb_iterations.
2845         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
2846         COND_EXPRs.
2847
2848 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
2849
2850         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
2851         generate COND_EXPRs for degenerate_phi_result.
2852
2853 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
2854
2855         PR middle-end/44293
2856         * tree-if-conv.c (if_convertible_loop_p): Check the
2857         if-convertibility of phi nodes in non predicated BBs.
2858
2859 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2860
2861         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
2862
2863 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2864
2865         PR driver/15303
2866         * gcc.c (inform, warning, inform): New functions.
2867         (fatal_ice): Rename to internal_error; change cmsgid parameter to
2868         gmsgid.  All callers changed.
2869         (notice): Rename to fnotice; add parameter fp.  All callers
2870         changed.
2871         (fatal_error): Rename to fatal_signal.  All users changed.
2872         (fatal): Rename to fatal_error; change cmsgid parameter to
2873         gmsgid.  All callers changed.
2874         (process_command): Use warning instead of error for warnings.
2875         (end_going_arg): Don't use _() around argument of error.
2876         (do_spec_1): Use inform for message from %n specs.  Use warning
2877         instead of error for warnings.
2878         (main): Use inform for comparison messages.  Use warning for
2879         message about unused linker input.
2880         (error): Increment error_count.  Print "error: ".
2881         * gcc.h (fatal): Change to fatal_error.
2882         (warning): Declare.
2883         * config/darwin-driver.c (darwin_default_min_version): Use warning
2884         instead of fprintf for warnings.
2885         * cppspec.c (lang_specific_driver): Use fatal_error instead of
2886         fatal.
2887
2888 2010-05-28  Julian Brown  <julian@codesourcery.com>
2889
2890         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
2891         (*thumb2_addsi3_compare0_scratch): New.
2892         * config/arm/constraints.md (Pv): New.
2893         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
2894         for ARM mode only.
2895         (*addsi3_compare0_scratch): Likewise.
2896
2897 2010-05-28  Jan Hubicka  <jh@suse.cz>
2898
2899         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
2900         check.
2901         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
2902         only on local statics.
2903
2904 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
2905
2906         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
2907
2908 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
2909
2910         PR bootstrap/44314
2911         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
2912         (OPTION_GLIBC): Define.
2913
2914 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
2915
2916         PR debug/41048
2917         * dwarf2out.c (double_int_type_size_in_bits): New function.
2918         (round_up_to_align): Change first argument and return value to
2919         double_int.
2920         (field_byte_offset): Work internally on double_ints.
2921
2922         PR target/43636
2923         * builtins.c (expand_movstr): Use a temporary pseudo instead
2924         of target even when target is not NULL and not const0_rtx, but
2925         fails movstr predicate.
2926         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
2927
2928 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2929
2930         * final.c (rest_of_clean_state): Use %m in errors instead of
2931         strerror (errno).
2932         * gengtype.c (read_input_list, close_output_files): Use xstrerror
2933         instead of strerror.
2934         * toplev.c (process_options): Use %m in errors instead of strerror
2935         (errno).
2936         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
2937         (errno).
2938
2939 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
2940
2941         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
2942         (ix86_canonical_va_list_type): Make static.  Add declaration.
2943         (ix86_enum_va_list): Make static.  Reindent.
2944         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
2945         (ix86_canonical_va_list_type): Ditto.
2946         (ix86_enum_va_list): Ditto.
2947
2948 2010-05-28  Richard Guenther  <rguenther@suse.de>
2949
2950         * lto-wrapper.c (run_gcc): With -save-temps generate a
2951         user-visible ltrans filename.  Fixup ltrans unit numbering.
2952
2953 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
2954
2955         * c-common.c (c_common_nodes_and_builtins): Replace use
2956         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
2957         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
2958         to ix86_enum_va_list.
2959         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
2960         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
2961         (TARGET_ENUM_VA_LIST_P): Add hook description.
2962         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
2963         * target.h (gcc_target): Add enum_va_list hook.
2964
2965         PR bootstrap/44299
2966         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
2967         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
2968         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
2969
2970 2010-05-28  Alan Modra  <amodra@gmail.com>
2971
2972         PR target/44266
2973         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2974         emit_library_call machinery to set up __tls_get_addr calls.
2975
2976 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2977
2978         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
2979
2980 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
2981
2982         Revert fix for PR c++/44188
2983         * c-common.c (is_typedef_decl): Revert the moving of  this
2984         definition ...
2985         * tree.c (is_typedef_decl): ... here.
2986         (typdef_variant_p): Revert the moving of this  definition
2987         here from gcc/cp/tree.c.
2988         * c-common.h (is_typedef_decl): Revert the moving of this
2989         declaration ...
2990         * tree.h (is_typedef_decl): ... here.
2991         (typedef_variant_p): Revert the moving of this  declaration here
2992         from gcc/cp/cp-tree.h
2993         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
2994         (gen_tagged_type_die): Revert the splitting out of ...
2995         (gen_type_die_with_usage): ... this function. Revert the anonymous
2996         tagged type handling.
2997         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
2998         typedefs naming anonymous tagged types.
2999
3000 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
3001
3002         * config/rs6000/rs6000-modes.def (PSImode): Delete.
3003
3004 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
3005
3006         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
3007         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
3008         throughout.
3009         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
3010         "xer" to "ca".
3011         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
3012         XER_REGS to CA_REGS throughout.
3013         * config/rs6000/rs6000.h: Same.
3014         (ADDITIONAL_REGISTER_NAMES): Add "xer".
3015         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
3016         that mode_iterator "P" is the size for arithmetic carries as well.
3017         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
3018
3019 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
3020
3021         PR bootstrap/44255
3022         * combine.c (struct rtx_subst_pair): Define unconditionally.
3023         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
3024         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
3025         Call make_compound_operation on pair->to.
3026         (propagate_for_debug): Don't call make_compound_operation here.
3027         Always use simplify_replace_fn_rtx.
3028
3029 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
3030
3031         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
3032         * config/xtensa/xtensa.c (override_options): Check
3033           TARGET_FORCE_NO_PIC and set flag_pic.
3034         * config/xtensa/xtensa.opt: Document -mforce-no-pic
3035
3036 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
3037
3038         PR bootstrap/44299
3039         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
3040         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
3041
3042 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
3043
3044         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
3045         toplev.h.
3046         * diagnostic.c: Don't include toplev.h.
3047         (progname): Define.  Moved from toplev.c.
3048         (seen_error): New function.
3049         * diagnostic.h: Include diagnostic-core.h.
3050         (diagnostic_t, emit_diagnostic): Don't declare here.
3051         * toplev.c (progname): Move to toplev.c.
3052         (emit_debug_global_declarations, compile_file, finalize,
3053         do_compile, toplev_main): Use seen_error.
3054         * toplev.h: Include diagnostic-core.h.
3055         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
3056         internal_error, warning, warning_at, error, error_n, error_at,
3057         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
3058         verbatim, fnotice, progname): Move to diagnostic-core.h.
3059         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
3060         (expand_builtin_expect): Use seen_error.
3061         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
3062         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
3063         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
3064         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
3065         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
3066         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
3067         errorcount for errors.
3068         * c-opts.c (c_common_finish): Use seen_error.
3069         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
3070         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
3071         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
3072         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
3073         (get_coverage_counts): Use seen_error.
3074         * dwarf2out.c (dwarf2out_finish): Use seen_error.
3075         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
3076         gimplify_body): Use seen_error.
3077         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
3078         * ipa-pure-const.c (gate_pure_const): Use seen_error.
3079         * ipa-reference.c (gate_reference): Use seen_error.
3080         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
3081         * lambda-code.c: Include diagnostic-core.h instead of
3082         diagnostic.h.
3083         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
3084         * lto-compress.c: Include diagnostic-core.h instead of
3085         diagnostic.h.
3086         * lto-section-in.c: Include diagnostic-core.h instead of
3087         diagnostic.h.
3088         * lto-streamer-out.c: Include diagnostic-core.h instead of
3089         diagnostic.h.
3090         * lto-streamer.c: Include diagnostic-core.h instead of
3091         diagnostic.h.
3092         (gate_lto_out): Use seen_error.
3093         * matrix-reorg.c: Include diagnostic-core.h instead of
3094         diagnostic.h.
3095         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
3096         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
3097         (gate_expand_omp, lower_omp_1): Use seen_error.
3098         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
3099         (rest_of_decl_compilation, rest_of_type_compilation,
3100         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
3101         * tree-cfg.c (label_to_block_fn): Use seen_error.
3102         * tree-inline.c (optimize_inline_calls): Use seen_error.
3103         * tree-mudflap.c (mudflap_finish_file): Use
3104         seen_error.
3105         * tree-optimize.c (gate_all_optimizations,
3106         gate_all_early_local_passes, gate_all_early_optimizations): Use
3107         seen_error.
3108         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
3109         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
3110         (varpool_remove_unreferenced_decls,
3111         varpool_assemble_pending_decls): Use seen_error.
3112         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
3113         (TOPLEV_H, DIAGNOSTIC_H): Update.
3114         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
3115         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
3116         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
3117         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
3118         coverage.o, lambda-code.o): Update dependencies.
3119
3120 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
3121
3122         PR c++/44188
3123         * c-common.c (is_typedef_decl): Move this definition ...
3124         * tree.c (is_typedef_decl): ... here.
3125         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
3126         * c-common.h (is_typedef_decl): Move this declaration ...
3127         * tree.h (is_typedef_decl): ... here.
3128         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
3129         * dwarf2out.c (is_naming_typedef_decl): New function.
3130         (gen_tagged_type_die): Split out of ...
3131         (gen_type_die_with_usage): ... this function. When an anonymous
3132         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
3133         is emitted for the typedef.
3134         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
3135         anonymous tagged types.
3136
3137 2010-05-27  Jason Merrill  <jason@redhat.com>
3138
3139         * print-tree.c (debug_vec_tree): New fn.
3140         (print_vec_tree): New fn.
3141         * tree.h: Declare them.
3142         * gdbinit.in (pvt): New command.
3143
3144         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
3145
3146         * gdbinit.in (pdd): New command.
3147
3148 2010-05-27  Jan Hubicka  <jh@suse.cz>
3149
3150         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
3151         (update_caller_keys): Return early if there are no callers;
3152         only update fibheap when decresing the key.
3153         (update_callee_keys): Avoid recursion.
3154         (decide_inlining_of_small_functions): When badness does not match;
3155         re-insert into fibheap.
3156
3157 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
3158
3159         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
3160         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
3161         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
3162         (ALL_HOST_OBJS): Now a union of the above two.
3163         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
3164         all files in ALL_HOST_FRONTEND_OBJS.
3165         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
3166
3167         * c-common.c: Pretend to be a backend file by undefining
3168         IN_GCC_FRONTEND (still need rtl.h here).
3169
3170 2010-05-27  Jan Hubicka  <jh@suse.cz>
3171
3172         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
3173         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
3174
3175 2010-05-27  Jan Hubicka  <jh@suse.cz>
3176
3177         * sched-ebb.c: Rename struct deps to struct deps_desc.
3178         * ddg.c: Likewise.
3179         * sel-sched-ir.c: Likewise.
3180         * sched-deps.c: Likewise.
3181         * sched-int.h: Likewise.
3182         * sched-rgn.c: Likewise.
3183
3184 2010-05-27  Jon Beniston <jon@beniston.com>
3185
3186         PR 43726
3187         * config/lm32/lm32.h: Remove definition of
3188         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
3189
3190 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3191
3192         PR lto/44230
3193         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
3194
3195 2010-05-27  Richard Guenther  <rguenther@suse.de>
3196
3197         PR tree-optimization/44284
3198         * tree-vect-stmts.c (vectorizable_assignment): Handle
3199         sign-changing conversions as simple copy.
3200
3201 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3202
3203         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
3204         Bionic C library.
3205         (__gthread_active_p): Check for pthread_create if compiling against
3206         Bionic C library.
3207
3208 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3209
3210         Support compilation for Android platform.  Reimplement -mandroid.
3211
3212         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
3213         (*android*): Set ANDROID_DEFAULT.
3214         (arm*-*-linux*): Include linux-android.h.
3215         (arm*-*-eabi*): Don't include previous -mandroid implementation.
3216         * config/arm/eabi.h: Remove, move Android-specific parts ...
3217         * config/linux-android.h: ... here.  New file.
3218         * config/arm/eabi.opt: Rename to ...
3219         * config/linux-android.opt: ... this.
3220         (mandroid): Allow -mno-android option.  Initialize based on
3221         ANDROID_DEFAULT.
3222         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
3223         Move logic to corresponding LINUX_TARGET_* macros.
3224         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
3225         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
3226         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
3227         Android definitions.
3228         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
3229         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
3230         Document.
3231
3232 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3233
3234         Add support for Bionic C library
3235
3236         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
3237         macro.
3238         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
3239         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
3240
3241         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
3242         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
3243         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
3244         to support multiple C libraries.  Handle Bionic.
3245         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
3246         (BIONIC_DYNAMIC_LINKER64): Define.
3247         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
3248         Update.
3249         (TARGET_HAS_SINCOS): Enable for Bionic.
3250
3251         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
3252         the last option specified on command line take effect.
3253         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
3254         (mbionic): New.
3255         (mglibc, muclibc): Update.
3256
3257         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
3258         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
3259         DEFAULT_LIBC.
3260
3261         * doc/invoke.texi (-mglibc, -muclibc): Update.
3262         (-mbionic): Document.
3263
3264 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3265
3266         * c-common.h (c_register_addr_space): Add prototype.
3267         (ADDR_SPACE_KEYWORD): Remove.
3268         * c-common.c (c_register_addr_space): New function.
3269         (c_addr_space_name): Reimplement.
3270         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
3271
3272         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
3273         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
3274
3275         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
3276         Remove TARGET_ADDR_SPACE_KEYWORDS.
3277
3278 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
3279
3280         * input.c: New file.
3281         * input.h (main_input_filename): Move declaration to toplev.h.
3282         * toplev.c (input_location, line_table): Move to input.c
3283         * toplev.h (main_input_filename): Move declaration from input.h.
3284         * tree.c (expand_location): Move to input.c.
3285         * Makefile.in (OBJS-common): Add input.o.
3286         (input.o): Add dependencies.
3287
3288 2010-05-27  Richard Guenther  <rguenther@suse.de>
3289
3290         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
3291         for non-existant files.
3292         (fork_execute): Mark args_name file as deleted.
3293
3294 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
3295
3296         PR bootstrp/44287
3297         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
3298         (narrow_signed_type): Likewise.
3299
3300 2010-05-26  Jan Hubicka  <jh@suse.cz>
3301
3302         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
3303         edge only when checking is enabled; check using former_clone_of;
3304         check inline clones too.
3305         (cgraph_materialize_clone): Record former_clone_of pointer.
3306         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
3307         combining redirections; dump args_to_skip bitmap
3308         (cgraph_materialize_all_clones): Do no redirection here.
3309         * ipa-inline.c (inline_transform): Do redirection here.
3310         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
3311         cheking only).
3312
3313 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3314
3315         * config/avr/avr-c.c: Do not include regs.h.
3316         Include cpplib.h for cpp_define and tree.h for c-common.h.
3317         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
3318         * config/avr/t-avr: Fix dependencies for avr-c.o.
3319
3320 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3321
3322         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
3323         string instead of SYMBOL_REF rtx.
3324         * rtl.h (set_stack_check_libfunc): Move prototype from here...
3325         * libfuncs.h: ...to here.  Adjust for explow.c change.
3326
3327 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
3328
3329         * pretty-print.c: Don't include ggc.h.
3330         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
3331         (identifier_to_locale): Use them for allocation.
3332         * pretty-print.h (identifier_to_locale_alloc,
3333         identifier_to_locale_free): Declare.
3334         * toplev.c (alloc_for_identifier_to_locale): New.
3335         (general_init): Set identifier_to_locale_alloc and
3336         identifier_to_locale_free.
3337         * Makefile.in (pretty-print.o): Update dependencies.
3338
3339 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3340
3341         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
3342         pointer types if they have different alignment or mode.
3343
3344 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
3345
3346         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
3347         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
3348         * config/sparc/sparc-protos.h (function_value): Remove declaration.
3349         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
3350         sparc_function_value_regno_p): New functions.
3351         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3352         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3353         (function_value): Rename to...
3354         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
3355         argument to 'outgoing'.
3356         (function_arg_record_value, function_arg_union_value,
3357         function_arg_vector_value): Update comment.
3358
3359 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3360
3361         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
3362         (fde_needed_for_eh_p): New predicate.
3363         (output_call_frame_info): Use it throughout to decide whether FDEs
3364         are needed for EH purpose.
3365         (dwarf2out_begin_prologue): Reorder assignments.
3366
3367 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3368
3369         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
3370         special case loop->header.
3371         (is_predicated): New.
3372         (if_convertible_loop_p): Call it.
3373
3374 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3375
3376         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
3377         iterator in parameter.  Do not generate code during the analysis.
3378         (tree_if_convert_cond_stmt): Removed.
3379         (tree_if_convert_stmt): Removed.
3380         (predicate_bbs): New.
3381         (if_convertible_loop_p): Call predicate_bbs.
3382         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
3383         now contains all the analysis part.
3384
3385 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3386
3387         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
3388         statements in the analysis part.
3389         (tree_if_convert_stmt): Update comment.
3390         (remove_conditions_and_labels): New.
3391         (combine_blocks): Call remove_conditions_and_labels.
3392         (tree_if_conversion): Update comment.
3393
3394 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3395
3396         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
3397         than 2 predecessors or more than 2 successors.
3398
3399 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3400
3401         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
3402         of loops in which the data dependence analysis fails.
3403
3404 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3405
3406         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
3407         CDI_POST_DOMINATORS.
3408         (tree_if_conversion): Same.
3409
3410 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3411
3412         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
3413
3414 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3415
3416         * tree-if-conv.c: Update copyright years.  Fix comments.
3417         Fix indentation.
3418
3419 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
3420
3421         * builtin-types.def (BT_INT128): New primitive type.
3422         (BT_UINT128): Likewise.
3423         * c-common.c (c_common_r): Add __int128 keyword.
3424         (c_common_type_for_size): Handle __int128.
3425         (c_common_type_for_mode): Likewise.
3426         (c_common_signed_or_unsigned_type): Likewise.
3427         (c_common_nodes_and_builtins): Add builtin type
3428         if target supports 128-bit integer scalar.
3429         * c-common.h (enum rid): Add RID_INT128.
3430         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
3431         if target supports 128-bit integer scalar.
3432         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
3433         (finish_declspecs): Likewise.
3434         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
3435         (c_token_starts_declspecs): Likewise.
3436         (c_parser_declspecs): Likewise.
3437         (c_parser_attributes): Likewise.
3438         (c_parser_objc_selector): Likewise.
3439         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
3440         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
3441         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
3442         * tree.c (make_or_reuse_type): Likewise.
3443         (make_unsigned_type): Likewise.
3444         (build_common_tree_nodes_2): Likewise.
3445         * tree.h (enum integer_type_kind): Add itk_int128 and
3446         itk_unsigned_int128.
3447         (int128_integer_type_node): New define.
3448         (int128_unsigned_type_node): New define.
3449         * doc/extend.texi: Add documentation about __int128 type.
3450
3451 2010-05-26  Richard Guenther  <rguenther@suse.de>
3452
3453         * tree-ssa-sccvn.c (copy_nary): Adjust.
3454         (copy_phis): Rename to ...
3455         (copy_phi): ... this.  Adjust.
3456         (copy_references): Rename to ...
3457         (copy_reference): ... this.  Adjust.
3458         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
3459         result into the valid table.
3460
3461 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3462
3463         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
3464         insn-config.h, insn-codes.h, recog.h, and optabs.h.
3465
3466 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3467
3468         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
3469
3470 2010-05-26  Richard Guenther  <rguenther@suse.de>
3471
3472         * opts.c (common_handle_option): Handle OPT_Ofast.
3473
3474 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
3475
3476         * diagnostic.c: Don't include opts.h.
3477         (permissive_error_option): Define.
3478         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
3479         for classify_diagnostic.  Don't use memset for
3480         classify_diagnostic.  Initialize new and recently added fields.
3481         (diagnostic_classify_diagnostic): Use context->n_opts instead of
3482         N_OPTS.
3483         (diagnostic_report_diagnostic): Pass context parameter to
3484         diagnostic_report_warnings_p.  Use option_enabled and option_name
3485         hooks from context.
3486         (emit_diagnostic): Use permissive_error_option.
3487         (permerror): Likewise.
3488         * diagnostic.h: Don't include options.h.
3489         (struct diagnostic_context): Add n_opts, opt_permissive,
3490         inhibit_warnings, warn_system_headers, option_enabled and
3491         option_name fields.  Change classify_diagnostic to a pointer.
3492         * opts-diagnostic.h: New file.
3493         * opts.c: Include opts-diagnostic.h.
3494         (common_handle_option): Set global_dc fields for -Wfatal-errors,
3495         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
3496         (option_name): New function.
3497         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
3498         (c_common_handle_option): Set global_dc->permissive for
3499         -fpermissive.
3500         * c-common.c (c_cpp_error): Save and restore
3501         global_dc->warn_system_headers, not variable warn_system_headers.
3502         * toplev.c: Include opts-diagnostic.h.
3503         (general_init): Update call to diagnostic_initialize.  Set
3504         global_dc->show_column, global_dc->option_enabled and
3505         global_dc->option_name.
3506         (process_options): Don't set global_dc fields here.
3507         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
3508         (diagnostic.o, opts.o, toplev.o): Update dependencies.
3509
3510 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3511
3512         * config/picochip/picochip.md (movsi): Split a movsi from a
3513         const after reload.
3514
3515 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3516
3517         * ggc-zone.c: Update copyright year.
3518         (poison_region): Mark memory for Valgrind as undefined before
3519         memset () call and inaccessible afterwards.
3520         (ggc_pch_total_size): Change type of i to int.
3521
3522 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3523
3524         * ggc-common.c (ggc_free_overhead): Allow empty slot.
3525
3526 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3527
3528         * ggc-common.c: Update copyright year.
3529         (ggc_rlimit_bound): Remove prototype.  Compile only if
3530         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
3531         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
3532         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
3533         (ggc_min_heapsize_heuristic): Likewise.
3534
3535 2010-05-26  Richard Guenther  <rguenther@suse.de>
3536
3537         PR rtl-optimization/44164
3538         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
3539         no-common access-path disambiguation.
3540         (indirect_ref_may_alias_decl_p): Adjust.
3541         (indirect_refs_may_alias_p): Likewise.
3542         (refs_may_alias_p_1): Likewise.
3543
3544 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3545
3546         * c-typeck.c: Do not include expr.h.
3547
3548 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3549
3550         * rtl.h (decl_default_tls_model): Move prototype from here...
3551         * output.h: ...to here.
3552         * c-decl.c: Do not include rtl.h.
3553         * c-pragma.c: Likewise.
3554         * c-parser.c: Likewise.
3555         * c-gimplify.c: Likewise.  And also not hard-reg-set.
3556         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
3557         FIXME note for it.  Add a FIXME note for expr.h.
3558         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
3559         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
3560         defined.
3561
3562 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
3563
3564         PR target/44199
3565         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
3566         or total_size is larger than red zone size for non-V4 ABI, emit a
3567         stack_tie resp. frame_tie insn before stack pointer restore.
3568         * config/rs6000/rs6000.md (frame_tie): New insn.
3569
3570 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3571
3572         * function.h (struct function): Add can_throw_non_call_exceptions bit.
3573         * lto-streamer-in.c (input_function): Stream it in.
3574         * lto-streamer-out.c (output_function): Stream it out.
3575         * function.c (allocate_struct_function): Set it.
3576         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
3577         for flag_non_call_exceptions.
3578         * cfgbuild.c (control_flow_insn_p): Likewise.
3579         (make_edges): Likewise.
3580         * cfgexpand.c (expand_stack_alignment): Likewise.
3581         * combine.c (distribute_notes): Likewise.
3582         * cse.c (cse_extended_basic_block): Likewise.
3583         * except.c (insn_could_throw_p): Likewise.
3584         * gcse.c (simple_mem): Likewise.
3585         * ipa-pure-const.c (check_call): Likewise.
3586         (check_stmt ): Likewise.
3587         * lower-subreg.c (lower-subreg.c): Likewise.
3588         * optabs.c (emit_libcall_block): Likewise.
3589         (prepare_cmp_insn): Likewise.
3590         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
3591         * postreload.c (rest_of_handle_postreload): Likewise.
3592         * reload1.c (reload_as_needed): Likewise.
3593         (emit_input_reload_insns): Likewise.
3594         (emit_output_reload_insns): Likewise.
3595         (fixup_abnormal_edges): Likewise.
3596         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
3597         * store-motion.c (find_moveable_store): Likewise.
3598         * tree-eh.c (stmt_could_throw_p): Likewise.
3599         (tree_could_throw_p): Likewise.
3600         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3601         * config/arm/arm.c (arm_expand_prologue): Likewise.
3602         (thumb1_expand_prologue): Likewise.
3603         * config/rx/rx.md (cbranchsf4): Likewise.
3604         (cmpsf): Likewise.
3605         * config/s390/s390.c (s390_emit_prologue): Likewise.
3606         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
3607         (inline_forbidden_into_p): New predicate.
3608         (expand_call_inline): Use it to forbid inlining.
3609         (tree_can_inline_p): Likewise.
3610
3611 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
3612
3613         * config/i386/i386-c.c: Do not include rtl.h.
3614         * config/i386/t-i386: Update dependencies.
3615
3616 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
3617
3618         * attribs.c: Do not include rtl.h.
3619         * Makefile.in: Update dependencies.
3620
3621 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
3622
3623         * double-int.h (double_int_and): New.
3624         * combine.c (try_combine): Clean up, use double_int_* and
3625         immed_double_int_const functions.
3626
3627 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3628
3629         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
3630         stderr to /dev/null instead of grep -q.
3631         * configure: Regenerate.
3632
3633 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
3634
3635         * Makefile.in (EXCEPT_H): Fix typo.
3636
3637 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
3638
3639         * ira-build.c (update_conflict_hard_reg_costs): New.
3640         (ira_build): Call update_conflict_hard_reg_costs.
3641
3642 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
3643
3644         PR debug/41371
3645         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
3646         ENABLE_CHECKING.
3647         (intersect_loc_chains): Walk the s2var's loc_chain together
3648         with s1node chain as long as the locations are equal, don't
3649         call find_loc_in_1pdv in that case.
3650
3651         PR debug/42801
3652         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
3653         (copy_bind_expr): ... instead of here.
3654         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
3655         if the block hasn't been remapped.
3656         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
3657         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
3658
3659 2010-05-25  Richard Guenther  <rguenther@suse.de>
3660
3661         PR middle-end/44069
3662         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
3663         out-of-bounds array accesses.
3664
3665 2010-05-25  Richard Guenther  <rguenther@suse.de>
3666
3667         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
3668         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
3669         (run_gcc): Re-organize to make cleanup easier.
3670
3671 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3672
3673         * config/s390/s390.c (optimization_options): Fix and move the
3674         flag_prefetch_loop_arrays override ...
3675         (override_options): ... here.
3676
3677 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
3678
3679         * diagnostic.c: Don't include plugin.h.
3680         (diagnostic_report_diagnostic): Don't handle plugins specially
3681         here.  Pass context to internal_error callback.
3682         * diagnostic.h (struct diagnostic_context): Add context parameter
3683         to internal_error callback.
3684         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
3685         * plugin.h (struct diagnostic_context): Declare.
3686         (warn_if_plugins, plugins_internal_error_function): Declare.
3687         * toplev.c (general_init): Set global_dc->internal_error.
3688         * Makefile.in (diagnostic.o): Update dependencies.
3689
3690 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
3691
3692         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
3693         * config/rs6000/t-darwin64: New.
3694         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
3695         build crt2.
3696
3697 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
3698
3699         PR 44203
3700         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
3701         match the original (and intended) behaviour before r159557.  This
3702         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
3703         in two ways.
3704
3705 2010-05-25  Richard Guenther  <rguenther@suse.de>
3706
3707         * doc/invoke.texi: Document -Ofast.
3708         * target.h (struct gcc_target): Add handle_ofast.
3709         * target-def.h (TARGET_HANDLE_OFAST): Add.
3710         (TARGET_INITIALIZER): Adjust.
3711         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
3712         * common.opt (Ofast): Add.
3713
3714 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
3715
3716         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
3717         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
3718
3719 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
3720
3721         PR target/43610
3722         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
3723         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
3724         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
3725         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
3726
3727 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
3728
3729         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
3730         DW_OP_minus with negated offset instead of DW_OP_plus.
3731         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
3732
3733 2010-05-25  Wei Guozhi  <carrot@google.com>
3734
3735         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
3736         tst instruction and a new alternative.
3737         * config/arm/constraints.md (Pu): New constraint.
3738
3739 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
3740
3741         * function.c (assign_stack_local_1): Initialize variable
3742         to avoid warning when bootstrapping at -O3.
3743
3744 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
3745
3746         * configure.ac (all_lang_makefiles): Remove everything related to it.
3747         * configure: Regenerate.
3748         * Makefile.in: Fix reference to ada Make-lang.in.
3749         Remove support for LANG_MAKEFILES.
3750
3751 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
3752             Sandra Loosemore  <sandra@codesourcery.com>
3753
3754         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
3755         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
3756         description.  Add arm_neon_fp16_ok.
3757         (Add Options): Add arm_neon and arm_neon_fp16.
3758
3759 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
3760
3761         * diagnostic.c: Don't include flags.h.
3762         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
3763         context parameters.  Check flags in the context passed as a parameter.
3764         (diagnostic_build_prefix): Add context parameter.  Check
3765         show_column flag in context.
3766         (diagnostic_action_after_output): Check fatal_errors flag in context.
3767         (diagnostic_report_current_module): Check show_column flag in context.
3768         (default_diagnostic_starter): Update call to
3769         diagnostic_build_prefix.
3770         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
3771         (emit_diagnostic): Pass context to permissive_error_kind.
3772         (permerror): Pass context to permissive_error_kind.
3773         * diagnostic.h (struct diagnostic_context): Add show_column,
3774         pedantic_errors, permissive and fatal_errors fields.
3775         (diagnostic_build_prefix): Update prototype.
3776         * langhooks.c
3777         * toplev.c (process_options): Set flags in global_dc from
3778         flag_show_column, flag_pedantic_errors, flag_permissive,
3779         flag_fatal_errors.
3780         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
3781         to diagnostic_build_prefix.
3782         * Makefile.in (diagnostic.o): Update dependencies.
3783
3784 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3785
3786         * config/i386/ia32intrin.h (__crc32q): Define only if
3787         __SSE4_2__ is defined.
3788
3789 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
3790
3791         PR target/44132
3792         PR middle-end/43602
3793         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
3794         DECL_VISIBILITY_SPECIFIED.
3795         (emutls_decl): Set DECL_PRESERVE_P and copy
3796         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
3797         (emutls_finalize_control_var): New callback.
3798         (emutls_finish): Finalize emutls control variables.
3799         * toplev.c (compile_file): Move the call to emutls_finish ()
3800         before varpool_assemble_pending_decls ().
3801
3802 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
3803
3804         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
3805         added to the preprocessor condition.
3806
3807 2010-05-24  Paul Brook  <paul@codesourcery.com>
3808
3809         * gengtype-lex.l: Add HARD_REG_SET.
3810         * expr.c (expand_expr_real_1): Record writes to hard registers.
3811         * function.c (rtl_data): Add asm_clobbers.
3812         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
3813         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
3814         Use crtl->asm_clobbers.
3815
3816 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3817
3818         * doc/makefile.texi (Makefile): Mention stages 'profile'
3819         and 'feedback' for profiledbootstrap.
3820
3821 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
3822
3823         PR target/44245
3824         * config/i386/i386.c (def_builtin): Properly check
3825         OPTION_MASK_ISA_64BIT.
3826
3827 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
3828
3829         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
3830         typedefs with different but compatible types.  Allow duplicate
3831         typedefs with the same type except for pedantic non-C1X, but give
3832         warning for variably modified types.
3833         * c-typeck.c (tagged_types_tu_compatible_p,
3834         function_types_compatible_p, type_lists_compatible_p,
3835         comptypes_internal): Add parameter different_types_p; set
3836         *different_types_p for different but compatible types.  All
3837         callers changed.
3838         (comptypes_check_different_types): New.
3839         * c-tree.h (comptypes_check_different_types): Declare.
3840
3841 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
3842
3843         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
3844         * jump.c: Include basic-block.h.
3845         * profile.c: Likewise.
3846         * tree-profile.c: Likewise.
3847         * coverage.c: Likewise.
3848         * basic-block.h (optimize_function_for_size_p): Move to function.h.
3849         (optimize_function_for_speed_p): Likewise.
3850         * function.h (optimize_function_for_size_p,
3851         optimize_function_for_speed_p): Moved here from basic-block.h.
3852         * Makefile.in: Update dependencies.
3853
3854 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3855
3856         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
3857         before calling make; allow override through $MAKE.
3858         * doc/invoke.texi (Optimize Options): Document override.
3859
3860 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
3861
3862         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
3863         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3864         (rs6000_mode_dependent_address_ptr): Make static.
3865         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3866         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
3867         Remove.
3868
3869 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
3870
3871         PR target/43869
3872         * config/i386/i386.c: Make sure that the correct regparm is passed.
3873
3874 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
3875
3876         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
3877         * sbitmap.c: ...to here to internalize sbitmap element access.
3878         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
3879         Explain why basic-block.h is included.
3880         * function.h: Include tm.h for CUMULATIVE_ARGS.
3881         * Makefile.in: Update dependencies.
3882
3883 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
3884
3885         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
3886         New core types.
3887         * sbitmap.h (struct sbitmap_def): Do not typedef here.
3888         * sbitmap.c: Include sbitmap.h.
3889         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
3890         hard-reg-set.h.  Split everything related to regsets out from here...
3891         * regset.h: ...to here.  New file.
3892         * df.h: Include regset.h and sbitmap.h.
3893         * tree-flow.h: Likewise.
3894         * cfgloop.h: Likewise.
3895         * except.h: Do not include sbitmap.h.  Include hashtab.h.
3896         * cgraph.h: Include vec.h and function.h.
3897         * reload.h (struct insn_chain): Change types of live_throughout
3898         and dead_or_set from regset_head to bitmap_head.
3899         (compute_use_by_pseudos): Be defined also if regset.h is not included.
3900         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
3901         spilled_regs from regset_head to bitmap_head to avoid dependency
3902         in regset.h.
3903         * sel-sched-ir.h: Include regset.h.
3904         * reload.c: Include df.h before reload.h.
3905         * caller-save.c: Likewise.
3906         * reload1.c: Likewise.
3907         * ira.c: Likewise.
3908         (mark_elimination): Update type of r to bitmap, consistent with
3909         DF_LR_IN.
3910         * dominance.c: Include bitmap.h.
3911         * modulo-sched.c: Include df.h.
3912         * cfganal.c: Include bitmap.h and sbitmap.h.
3913         * cfgbuild.c: Include sbitmap.h.
3914         * lcm.c: Include sbitmap.h.
3915         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
3916         * domwalk.c: Include sbitmap.h, exclude ggc.h.
3917         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
3918         * cselib.c: Include bitmap.h.
3919         * tree-optimize.c: Include regset.h.
3920         * stmt.c: Include bitmap.h.
3921         * Makefile.in: Update dependencies.
3922
3923 2010-05-22  Jan Hubicka  <jh@suse.cz>
3924
3925         * cgraph.h (struct varpool_node): Add same_comdat_group.
3926         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
3927         pointer.
3928         (output_varpool): Update call of lto_output_varpool_node.
3929         (input_varpool): Read same_comdat_group pointer.
3930         (input_varpool_1): Fixup same_comdat_group pointer.
3931         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
3932         group is needed, all are.
3933         * varpool.c (varpool_remove_node): Remove node from same comdat group
3934         linklist too.
3935         (varpool_analyze_pending_decls): Walk same comdat groups.
3936
3937 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
3938
3939         * rtl.h (union rtunion_def): Remove rt_bit member.
3940         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
3941         * print-rtl (print_rtx): Do not print the member.
3942         * gengtype.c (adjust_field_rtx_def): Do not handle it.
3943         * gengenrtl.c (type_from_format): Likewise.
3944         (accessor_from_format): Likewise.
3945
3946 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
3947
3948         * dbgcnt.c: Include toplev.h instead of errors.h.
3949         * ira-emit.c: Don't include errors.h.
3950         * ira.c: Include toplev.h instead of errors.h.
3951         * lto-compress.c: Include toplev.h instead of errors.h.
3952         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
3953         ira.o, dbgcnt.o): Update dependencies.
3954
3955 2010-05-22  Richard Guenther  <rguenther@suse.de>
3956
3957         * gimple.c (gimple_types_compatible_p): Check type qualifications
3958         before merging pointer to complete and pointer to incomplete type.
3959         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
3960         we use our own resolution algorithm.  The gold linker plugin
3961         doesn't do the job we want it to do here.
3962
3963 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
3964
3965         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3966         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3967         (sparc_mode_dependent_address_p): New function.
3968
3969 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3970
3971         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
3972
3973         * timevar.c: Do not include any core headers.
3974         (timevar_print): De-i18n-ize.
3975         (print_time): Likewise.
3976         * timevar.h (timevar_push, timevar_pop): Make inline functions.
3977
3978 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
3979
3980         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
3981         langhooks-def.h.
3982         (diagnostic_initialize): Initialize x_data not last_function.
3983         (diagnostic_report_current_function): Move to tree-diagnostic.c.
3984         (default_diagnostic_starter): Call
3985         diagnostic_report_current_module not
3986         diagnostic_report_current_function.
3987         (diagnostic_report_diagnostic): Initialize x_data not
3988         abstract_origin.
3989         (verbatim): Likewise.
3990         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
3991         x_data.
3992         (struct diagnostic_context): Change last_function to x_data.
3993         (diagnostic_auxiliary_data): Replace with
3994         diagnostic_context_auxiliary_data and
3995         diagnostic_info_auxiliary_data.
3996         (diagnostic_last_function_changed, diagnostic_set_last_function,
3997         diagnostic_report_current_function): Move to tree-diagnostic.h.
3998         (print_declaration, dump_generic_node, print_generic_stmt,
3999         print_generic_stmt_indented, print_generic_expr,
4000         print_generic_decl, debug_c_tree, dump_omp_clauses,
4001         print_call_name, debug_generic_expr, debug_generic_stmt,
4002         debug_tree_chain, default_tree_printer): Move to
4003         tree-pretty-print.h.
4004         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
4005         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
4006         gimple-pretty-print.h.
4007         * pretty-print.c: Don't include tree.h
4008         (pp_base_format): Don't handle %K here.
4009         (pp_base_tree_identifier): Move to tree-pretty-print.c.
4010         * pretty-print.h (text_info): Change abstract_origin to x_data.
4011         (pp_tree_identifier, pp_unsupported_tree,
4012         pp_base_tree_identifier): Move to tree-pretty-print.h.
4013         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
4014         tree-pretty-print.h: New files.
4015         * tree-pretty-print.c: Include tree-pretty-print.h.
4016         (percent_K_format): New.  Moved from pretty-print.c.
4017         (pp_base_tree_identifier): Move from pretty-print.c.
4018         * c-objc-common.c: Include tree-pretty-print.h.
4019         (c_tree_printer): Handle %K here.
4020         * langhooks.c: Include tree-diagnostic.h.
4021         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
4022         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
4023         (default_tree_printer): Handle %K using percent_K_format.
4024         (general_init): Use default_tree_diagnostic_starter.
4025         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
4026         (free_lang_data): Use default_tree_diagnostic_starter.
4027         * c-pretty-print.c: Include tree-pretty-print.h.
4028         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
4029         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
4030         * dwarf2out.c: Include tree-pretty-print.h.
4031         * except.c: Include tree-pretty-print.h.
4032         * gimple-pretty-print.c: Include tree-pretty-print.h and
4033         gimple-pretty-print.h.
4034         * gimplify.c: Include tree-pretty-print.h.
4035         * graphite-poly.c: Include tree-pretty-print.h and
4036         gimple-pretty-print.h.
4037         * ipa-cp.c: Include tree-pretty-print.h.
4038         * ipa-inline.c: Include gimple-pretty-print.h.
4039         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
4040         * ipa-pure-const.c: Include gimple-pretty-print.h.
4041         * ipa-struct-reorg.c: Include tree-pretty-print.h and
4042         gimple-pretty-print.h.
4043         * ipa-type-escape.c: Include tree-pretty-print.h.
4044         * print-rtl.c: Include tree-pretty-print.h.
4045         * print-tree.c: Include gimple-pretty-print.h.
4046         * sese.c: Include tree-pretty-print.h.
4047         * tree-affine.c: Include tree-pretty-print.h.
4048         * tree-browser.c: Include tree-pretty-print.h.
4049         * tree-call-cdce.c: Include gimple-pretty-print.h.
4050         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
4051         * tree-chrec.c: Include tree-pretty-print.h.
4052         * tree-data-ref.c: Include tree-pretty-print.h and
4053         gimple-pretty-print.h.
4054         * tree-dfa.c: Include tree-pretty-print.h.
4055         * tree-if-conv.c: Include tree-pretty-print.h and
4056         gimple-pretty-print.h.
4057         * tree-inline.c: Include tree-pretty-print.h.
4058         * tree-into-ssa.c: Include tree-pretty-print.h and
4059         gimple-pretty-print.h.
4060         * tree-nrv.c: Include tree-pretty-print.h.
4061         * tree-object-size.c: Include tree-pretty-print.h and
4062         gimple-pretty-print.h.
4063         * tree-outof-ssa.c: Include tree-pretty-print.h and
4064         gimple-pretty-print.h.
4065         * tree-parloops.c: Include tree-pretty-print.h and
4066         gimple-pretty-print.h.
4067         * tree-predcom.c: Include tree-pretty-print.h and
4068         gimple-pretty-print.h.
4069         * tree-scalar-evolution.c: Include tree-pretty-print.h and
4070         gimple-pretty-print.h.
4071         * tree-sra.c: Include tree-pretty-print.h.
4072         * tree-ssa-address.c: Include tree-pretty-print.h.
4073         * tree-ssa-alias.c: Include tree-pretty-print.h.
4074         * tree-ssa-ccp.c: Include tree-pretty-print.h and
4075         gimple-pretty-print.h.
4076         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
4077         * tree-ssa-copy.c: Include tree-pretty-print.h and
4078         gimple-pretty-print.h.
4079         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
4080         * tree-ssa-dce.c: Include tree-pretty-print.h and
4081         gimple-pretty-print.h.
4082         * tree-ssa-dom.c: Include tree-pretty-print.h and
4083         gimple-pretty-print.h.
4084         * tree-ssa-dse.c: Include gimple-pretty-print.h.
4085         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
4086         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
4087         * tree-ssa-live.c: Include tree-pretty-print.h and
4088         gimple-pretty-print.h.
4089         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
4090         gimple-pretty-print.h.
4091         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
4092         gimple-pretty-print.h.
4093         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
4094         gimple-pretty-print.h.
4095         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
4096         gimple-pretty-print.h.
4097         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
4098         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
4099         * tree-ssa-operands.c: Include tree-pretty-print.h and
4100         gimple-pretty-print.h.
4101         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
4102         gimple-pretty-print.h.
4103         * tree-ssa-pre.c: Include tree-pretty-print.h and
4104         gimple-pretty-print.h.
4105         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
4106         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
4107         gimple-pretty-print.h.
4108         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
4109         gimple-pretty-print.h.
4110         * tree-ssa-sink.c: Include gimple-pretty-print.h.
4111         * tree-ssa-ter.c: Include tree-pretty-print.h and
4112         gimple-pretty-print.h.
4113         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
4114         * tree-ssa.c: Include tree-pretty-print.h and
4115         gimple-pretty-print.h.
4116         * tree-stdarg.c: Include gimple-pretty-print.h.
4117         * tree-switch-conversion.c: Include gimple-pretty-print.h.
4118         * tree-tailcall.c: Include tree-pretty-print.h and
4119         gimple-pretty-print.h.
4120         * tree-vect-data-refs.c: Include tree-pretty-print.h and
4121         gimple-pretty-print.h.
4122         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
4123         gimple-pretty-print.h.
4124         * tree-vect-loop.c: Include tree-pretty-print.h and
4125         gimple-pretty-print.h.
4126         * tree-vect-patterns.c: Include gimple-pretty-print.h.
4127         * tree-vect-slp.c: Include tree-pretty-print.h and
4128         gimple-pretty-print.h.
4129         * tree-vect-stmts.c: Include tree-pretty-print.h and
4130         gimple-pretty-print.h.
4131         * tree-vectorizer.c: Include tree-pretty-print.h.
4132         * tree-vrp.c: Include tree-pretty-print.h and
4133         gimple-pretty-print.h.
4134         * value-prof.c: Include tree-pretty-print.h and
4135         gimple-pretty-print.h.
4136         * var-tracking.c: Include tree-pretty-print.h.
4137         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
4138         (tree-diagnostic.o): New dependencies.
4139         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
4140         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
4141         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
4142         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
4143         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
4144         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
4145         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
4146         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
4147         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
4148         tree-ssa-address.o, tree-ssa-loop-niter.o,
4149         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
4150         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
4151         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
4152         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
4153         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
4154         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
4155         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
4156         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
4157         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
4158         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
4159         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
4160         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
4161         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
4162         tree-switch-conversion.o, var-tracking.o, value-prof.o,
4163         cfgexpand.o, pretty-print.o): Update dependencies.
4164
4165 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
4166
4167         * tree-ssa-structalias.c: Remove tm_p.h from include.
4168
4169 2010-05-21  Jeff Law  <law@redhat.com>
4170
4171         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
4172
4173 2010-05-21  Jason Merrill  <jason@redhat.com>
4174
4175         * tree-eh.c (cleanup_is_dead_in): New.
4176         (lower_try_finally): Don't generate a dead cleanup region.
4177         (lower_cleanup): Likewise.
4178
4179 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
4180
4181         PR debug/44223
4182         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
4183         unchain each use from the cyclic next_regno_use chain first.
4184
4185 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
4186
4187         * real: Do not include gmp.h, mpfr.h, and mpc.h.
4188         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
4189         (real_value_negate, real_value_abs): New prototypes.
4190         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
4191         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
4192         new include file for interface between MPFR and REAL_VALUE_TYPE.
4193         * real.c: Include realmpfr.h.
4194         (real_arithmetic2): Remove legacy function.
4195         (real_value_negate): New.
4196         (real_value_abs): New.
4197         (mfpr_from_real, real_from_mpfr): Move from here...
4198         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
4199         * builtins.c: Include realmpfr.h.
4200         * fold-const.c: Include realmpfr.h.
4201         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
4202         (fold_negate_const): Likewise.
4203         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
4204         * toplev.c: Include realmpfr.h.
4205         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
4206         and real_value_negate.
4207         * fixed-value.c (check_real_for_fixed_mode): Likewise.
4208         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
4209         (vfp3_const_double_index): Likewise.
4210         (arm_print_operand): Likewise.
4211         * Makefile.in: Update dependencies.
4212
4213 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4214
4215         * config/s390/s390.c (override_options): Increase the default
4216         of max-completely-peel-times.
4217
4218 2010-05-21  Julian Brown  <julian@codesourcery.com>
4219             Mark Mitchell  <mark@codesourcery.com>
4220
4221         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
4222         sibling calls for Thumb-1.
4223         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
4224         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
4225         Thumb-2.
4226         (*call_insn, *call_value_insn): Don't use for Thumb-2.
4227         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
4228         for Thumb-2.
4229         (return): New expander.
4230         (*arm_return): New name for ARM return insn.
4231         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
4232
4233 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
4234
4235         * config.gcc (sparc64-*-rtems*): New target.
4236
4237 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
4238
4239         * tree.c (build_function_decl_skip_args): Fix grammar.
4240         (build_function_type_list_1): Fix typos, adjust formatting.
4241
4242 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
4243
4244         * tree.h: Include real.h and fixed-value.h as basic datatypes.
4245         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
4246         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
4247         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
4248         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
4249         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
4250         tree-pretty-print.c, tree-loop-distribution.c,
4251         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
4252         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
4253         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
4254         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
4255         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
4256         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
4257         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
4258         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
4259         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
4260         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
4261         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
4262         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
4263         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
4264         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
4265         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
4266         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
4267         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
4268         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
4269         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
4270         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
4271         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
4272         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
4273         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
4274         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
4275         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
4276         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
4277         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
4278         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
4279         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
4280         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
4281         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
4282         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
4283         config/score/score7.c, config/score/score.c, config/arm/arm.c,
4284         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
4285         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
4286         config/bfin/bfin.c: Clean up redundant includes.
4287         * Makefile.in: Update accordingly.
4288
4289 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
4290
4291         PR middle-end/44204
4292         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
4293         statement has no arguments.
4294
4295 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
4296
4297         PR/44139
4298         * varasm.c (emutls_decl): Merge attributes to new decl.
4299
4300 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
4301
4302         PR middle-end/44101
4303         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
4304         around the uniquized constructor if its type requires a conversion.
4305
4306 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
4307
4308         PR debug/44205
4309         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
4310         at -O0 goto_locus of any of the incoming edges differs from
4311         goto_locus of outgoing edge, or gimple_location of any of the
4312         labels differs.
4313
4314 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
4315
4316         * ira.c (ira_non_ordered_class_hard_regs): Define.
4317         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
4318         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
4319         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
4320         cost of unaligned hard regs when allocating multi-reg pseudos.
4321
4322 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
4323
4324         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
4325         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
4326         for TARGET_NO_FLOAT.
4327         * config/mips/mips.c (mips_file_start): Expand conditional expression
4328         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
4329         (mips_override_options): Move -mno-float override -msoft-float and
4330         -mhard-float.
4331         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
4332         Condition(TARGET_SUPPORTS_NO_FLOAT).
4333         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
4334         __mips_no_float here.
4335         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
4336         (TARGET_SUPPORTS_NO_FLOAT): Define.
4337         * config/mips/sdemtk.opt: Delete.
4338
4339 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
4340
4341         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
4342
4343 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
4344
4345         PR target/43733
4346         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
4347         * configure: Regenerate.
4348         * config.in: Regenerate.
4349         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
4350         instead of sahf only for 64bit targets.
4351
4352 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
4353
4354         PR debug/44178
4355         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
4356         setup_ref_regs for DEBUG_INSNs.
4357
4358 2010-05-20  Jan Hubicka  <jh@suse.cz>
4359
4360         PR middle-end/44197
4361         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
4362
4363 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
4364
4365         PR bootstrap/43870
4366         * df-scan.c (df_ref_compare): Stabilize sort.
4367
4368 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
4369
4370         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
4371         argument.  Don't use DW_OP_piece if offset is non-zero,
4372         put offset into second DW_OP_bit_piece argument.
4373         (dw_sra_loc_expr): Adjust callers.  For memory expressions
4374         compute offset.
4375
4376 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
4377
4378         PR target/44202
4379         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
4380         settings for 16-bit-constant "addo" alternative.
4381
4382 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
4383
4384         * config/mips/mips-dsp.md (add<DSPV:mode>3,
4385         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
4386
4387         PR target/43764
4388         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
4389         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
4390         Use it.
4391
4392 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
4393
4394         * diagnostic.c (FLOAT, FFS): Don't undefine.
4395         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
4396         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
4397         include ordering.
4398
4399 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
4400
4401         * combine.c (propagate_for_debug): Call make_compound_operation
4402         on the source value.
4403         (try_combine): When implementing a split chosen by find_split_point,
4404         either copy i2src or set it to null.  Assert that i2src is not null
4405         before substituting into CALL_INSN_FUNCTION_USAGE.
4406
4407 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
4408
4409         * double-int.h (double_int_ior): New function.
4410         * tree.h (build_int_cst_wide_type): Remove.
4411         * tree.c (build_int_cst_wide_type): Remove.
4412         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
4413         of build_int_cst_wide_type.
4414         * stor-layout.c (set_sizetype): (Ditto.).
4415         * dojump.c (do_jump): Use build_int_cstu instead of
4416         build_int_cst_wide_type.
4417
4418 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4419
4420         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
4421         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
4422         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
4423         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
4424         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
4425         propagate the 'data' argument to copy_tree_r.
4426         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
4427         Propagate 'data' argument to walk_tree.
4428         (copy_if_shared): New function.
4429         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
4430         (unmark_visited): New function.
4431         (unshare_body): Call copy_if_shared instead of doing it manually.
4432         (unvisit_body): Call unmark_visited instead of doing it manually.
4433
4434 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
4435
4436         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
4437         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
4438         * hooks.c: Likewise.
4439         * target-def.h (TARGET_FOLD_BUILTIN): Define to
4440         hook_tree_tree_int_treep_bool_null.
4441         * target.h (struct gcc_target): Update signature of fold_builtin
4442         field.
4443         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
4444         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
4445         instead of the call expression.
4446         (fold_builtin_call_array): Pass n and argarray directly.
4447         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
4448         consing a list.
4449         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
4450         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
4451         `i' and use it in place of `arity'.
4452         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
4453         Dereference `args' directly.
4454         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
4455
4456 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4457
4458         * doc/sourcebuild.texi (Effective-Target Keywords): Document
4459         3dnow, sse3, sse2.
4460         (Directives): Document optional dg-require-effective-target
4461         selector.
4462
4463 2010-05-19  Richard Guenther  <rguenther@suse.de>
4464
4465         PR lto/44196
4466         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
4467
4468 2010-05-19  Richard Guenther  <rguenther@suse.de>
4469
4470         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
4471         * common.opt (fwhopr=): New.
4472         * opts.c (common_handle_option): Handle OPT_fwhopr.
4473         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
4474         * collect2.c (main): Match -fwhopr*.
4475         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
4476         Execute ltrans stage in parallel when jobs is bigger than 1.
4477
4478 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4479
4480         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
4481         pentiumpro on Solaris 8/x86 with Sun as.
4482         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
4483         hidden alias bug.
4484         (gcc_cv_as_ix86_quad): Check for .quad directive.
4485         * configure: Regenerate.
4486         * config.in: Regenerate.
4487         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
4488
4489 2010-05-19  Martin Jambor  <mjambor@suse.cz>
4490
4491         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
4492         also for indirect edges.  Actual printing moved...
4493         (ipa_print_node_jump_functions_for_edge): ...here.
4494         (ipa_compute_jump_functions): Renamed to
4495         ipa_compute_jump_functions_for_edge and made static.
4496         (ipa_compute_jump_functions): New function.
4497         (make_edge_direct_to_target): Check if the number of arguments on
4498         the newly direct edge is the same as the number of parametrs of
4499         the callee.
4500         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
4501         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
4502         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
4503         analysis functions unconditionally, call the new
4504         ipa_analyze_params_uses on the node instead of every edge.
4505
4506 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
4507
4508         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
4509         to tree.
4510         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
4511         also checks for a constant int vs.  non-constant but
4512         loop-invariant steps.
4513         (find_or_create_group): Change the sort algorithm to only consider
4514         steps that are constant ints.
4515         (idx_analyze_ref): Adopt code to handle a tree instead of a
4516         HOST_WIDE_INT for step.
4517         (gather_memory_references_ref): Handle tree instead of int and be
4518         prepared to see a NULL_TREE.
4519         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
4520         prefetches if the step cannot be calculated at compile time.
4521         (issue_prefetch_ref): Issue prefetches for non-constant but
4522         loop-invariant steps.
4523
4524 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
4525
4526         Revert:
4527         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
4528
4529         * tree.h (build_call_list): Remove.
4530         * tree.c (build_call_list): Remove.
4531
4532 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
4533
4534         * tree.h (build_call_list): Remove.
4535         * tree.c (build_call_list): Remove.
4536
4537 2010-05-18  Jan Hubicka  <jh@suse.cz>
4538
4539         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
4540
4541 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
4542
4543         PR rtl-optimization/43332
4544         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
4545
4546 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
4547
4548         * tree.h (build_int_cstu): Implement as static inline.
4549         * tree.c (build_int_cstu): Remove function.
4550         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
4551         sign extended.
4552
4553 2010-05-18  Richard Guenther  <rguenther@suse.de>
4554
4555         PR lto/44143
4556         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
4557         (debug): Initialize from -save-temps.
4558         (collect_execute): Print command-line when verbose.
4559         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
4560         for ltrans invocation.  Produce -dumpbase flag again.
4561         (process_args): Remove.
4562         (main): Simplify.
4563         * collect2.c (maybe_run_lto_and_relink): Only pass object
4564         files to lto-wrapper.
4565         * gcc.c (LINK_COMMAND_SPEC): Likewise.
4566
4567 2010-05-18  Jan Hubicka  <jh@suse.cz>
4568
4569         * opts.c (decode_options): Do not disable whopr at ipa_cp.
4570         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
4571
4572 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
4573
4574         PR lto/44184
4575         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
4576         in a GIMPLE_ASM.
4577         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
4578         in a GIMPLE_ASM.
4579
4580 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
4581
4582         PR debug/41371
4583         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
4584         rtx_equal_p inline.
4585
4586 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
4587
4588         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
4589         lto-macho as lto_binary_reader.
4590
4591         * darwin.c (darwin_asm_named_section): Do not add assembler comment
4592         after .section directive; just print it before the directive instead.
4593
4594 2010-05-17  Jan Hubicka  <jh@suse.cz>
4595
4596         * cgraph.c (cgraph_create_virtual_clone): Only check
4597         versionable_function_p when not in wpa and checking is enabled.
4598         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
4599         there are no more functions to materialize.
4600
4601 2010-05-17  Jan Hubicka  <jh@suse.cz>
4602
4603         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
4604         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
4605         New functions.
4606         (output_cgraph): Call output_cgraph_opt_summary.
4607         (input_cgrpah): Call input_cgraph_opt_summary.
4608         (output_cgraph_opt_summary_p, output_node_opt_summary,
4609         input_node_opt_summary, input_cgraph_opt_section): New functions.
4610         * lto-section-in.c (lto_section_name): Add cgraphopt.
4611         * tree-inline.c (tree_function_versioning): Handle parm_num.
4612         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
4613         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
4614
4615 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
4616
4617         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
4618         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
4619         the insn to prefetch ratio heuristic to loops with known trip count.
4620
4621 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
4622
4623         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
4624         (schedule_prefetches): Do not generate a prefetch if the unroll factor
4625         is far from what is required by the prefetch.
4626
4627 2010-05-17  Jan Hubicka  <jh@suse.cz>
4628
4629         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
4630         (ipcp_estimate_growth): Likewise.
4631         (ipcp_const_param_count): Likewise.
4632         (ipcp_insert_stage): Likewise.
4633         * ipa-prop.c (visit_load_for_mod_analysis): New function.
4634         (visit_store_addr_for_mod_analysis): Set used flag.
4635         (ipa_detect_param_modifications): Set used flag for SSE params;
4636         update use of walk_stmt_load_store_addr_ops.
4637         (ipa_print_node_params): Print used flag.
4638         (ipa_write_node_info): Stream used flag.
4639         (ipa_read_node_info): Likewise.
4640         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
4641         (ipa_is_param_used): New function.
4642         (lto_ipa_fixup_call_notes): Remove unused declaration.
4643
4644 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4645
4646         PR target/44074
4647         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
4648         * configure: Regenerate.
4649         * config.in: Regenerate.
4650         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
4651         !HAVE_AS_IX86_REP_LOCK_PREFIX.
4652         Don't emit whitespace.
4653         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
4654         (*rep_movsi): Likewise.
4655         (*rep_movsi_rex64): Likewise.
4656         (*rep_movqi): Likewise.
4657         (*rep_movqi_rex64): Likewise.
4658         (*rep_stosdi_rex64): Likewise.
4659         (*rep_stossi): Likewise.
4660         (*rep_stossi_rex64): Likewise.
4661         (*rep_stosqi): Likewise.
4662         (*rep_stosqi_rex64): Likewise.
4663         (*cmpstrnqi_nz_1): Use {%;} after repz.
4664         (*cmpstrnqi_nz_rex_1): Likewise.
4665         (*cmpstrnqi_1): Likewise.
4666         (*cmpstrnqi_rex_1): Likewise.
4667         (*strlenqi_1): Use {%;} after repnz.
4668         (*strlenqi_rex_1): Likewise.
4669         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
4670         (*sync_compare_and_swap<mode>): Likewise.
4671         (sync_double_compare_and_swap<mode>): Likewise.
4672         (*sync_double_compare_and_swapdi_pic): Likewise.
4673         (sync_old_add<mode>): Likewise.
4674         (sync_add<mode>): Likewise.
4675         (sync_sub<mode>): Likewise.
4676         (sync_<code><mode>): Likewise.
4677
4678 2010-05-17  Martin Jambor  <mjambor@suse.cz>
4679
4680         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
4681         otr_token and polymorphic.
4682         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
4683         (cgraph_clone_edge): Copy the above fields.
4684         * tree.c (get_binfo_at_offset): New function.
4685         * tree.h (get_binfo_at_offset): Declare.
4686         * ipa-prop.h (enum jump_func_type): Added known_type jump function
4687         type, reordered items, updated comments.
4688         (union jump_func_value): Added base_type field, reordered fields.
4689         (enum ipa_lattice_type): Moved down in the file.
4690         (struct ipa_param_descriptor): New field polymorphic.
4691         (ipa_is_param_polymorphic): New function.
4692         * ipa-prop.c: Include gimple.h and gimple-fold.h.
4693         (ipa_print_node_jump_functions): Print known type jump functions.
4694         (compute_complex_pass_through): Renamed to...
4695         (compute_complex_assign_jump_func): this.
4696         (compute_complex_ancestor_jump_func): New function.
4697         (compute_known_type_jump_func): Likewise.
4698         (compute_scalar_jump_functions): Create known type and complex ancestor
4699         jump functions.
4700         (ipa_note_param_call): New parameter polymorphic, set the corresponding
4701         flag in the call note accordingly.
4702         (ipa_analyze_call_uses): Renamed to...
4703         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
4704         variable var only in the block where it is used.
4705         (ipa_analyze_virtual_call_uses): New function.
4706         (ipa_analyze_call_uses): Likewise.
4707         (combine_known_type_and_ancestor_jfs): Likewise.
4708         (update_jump_functions_after_inlining): Implemented handling of a
4709         number of new jump function types combination.
4710         (print_edge_addition_message): Removed.
4711         (make_edge_direct_to_target): New function.
4712         (try_make_edge_direct_simple_call): Likewise.
4713         (try_make_edge_direct_virtual_call): Likewise.
4714         (update_call_notes_after_inlining): Renamed to...
4715         (update_indirect_edges_after_inlining): this.  Moved edge creation for
4716         indirect calls to try_make_edge_direct_simple_call, also calls
4717         try_make_edge_direct_virtual_call for virtual calls.
4718         (ipa_print_node_params): Changed the header message.
4719         (ipa_write_jump_function): Stream also known type jump functions.
4720         (ipa_read_jump_function): Likewise.
4721         (ipa_write_indirect_edge_info): Stream new fields in
4722         cgraph_indirect_call_info.
4723         (ipa_read_indirect_edge_info): Likewise.
4724         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
4725         GIMPLE_FOLD_H.
4726
4727 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4728
4729         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
4730
4731 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
4732
4733         * tree.h (CALL_EXPR_ARGS): Delete.
4734         (call_expr_arglist): Delete.
4735         * tree.c (call_expr_arglist): Delete.
4736         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
4737         targetm.fold_builtin.
4738         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
4739         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
4740         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
4741         arglist parameter.  Use CALL_EXPR_ARG.
4742         (picochip_expand_builtin_3op): Likewise.
4743         (picochip_expand_builtin_2opvoid): Likewise.
4744         (picochip_expand_array_get): Likewise.
4745         (picochip_expand_array_put): Likewise.
4746         (picochip_expand_array_testport): Likewise.
4747         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
4748         rather than arglist.
4749         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
4750         CALL_EXPR_ARGS.
4751         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
4752         than TREE_VALUE and TREE_CHAIN.
4753         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
4754         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
4755         the arglist.
4756
4757 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
4758
4759         PR bootstrap/42347
4760         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
4761         to have no fallthru edge.
4762
4763         PR middle-end/44102
4764         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
4765         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
4766         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
4767         add BARRIER after previous bb if needed.
4768
4769 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
4770
4771         * tree.c (build_function_type_list_1): Remove bogus assert condition.
4772
4773 2010-05-17  Alan Modra  <amodra@gmail.com>
4774
4775         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
4776         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
4777         with copy_reg rtx param.
4778         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
4779         Correct cases where code for ABI_V4 did not initialise the reg
4780         used to access frame.  Also leave frame_reg_rtx as sp for large
4781         frames that save no regs.
4782
4783 2010-05-17  Martin Jambor  <mjambor@suse.cz>
4784
4785         PR middle-end/44133
4786         * tree-sra.c (create_access_replacement): New parameter rename, mark
4787         the replaement for renaming only when it is true.
4788         (get_access_replacement): Pass true in the rename parameter of
4789         create_access_replacement.
4790         (get_unrenamed_access_replacement): New function.
4791         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
4792         replacement declaration from it.
4793
4794 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
4795
4796         * function.c (try_fit_stack_local, add_frame_space): New static
4797         functions.
4798         (assign_stack_local_1): Use them.  Look for opportunities to use
4799         space previously wasted on alignment.
4800         * function.h (struct frame_space): New.
4801         (struct rtl_data): Add FRAME_SPACE_LIST member.
4802         * reload1.c (something_was_spilled): New static variable.
4803         (alter_reg): Set it.
4804         (reload): Test it in addition to testing if the frame size changed.
4805
4806 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
4807
4808         * config/s390/s390.c: Define sane prefetch settings and activate
4809         flag_prefetch_loop_arrays on -O3.
4810         * config/s390/s390.h: Declare that read can use write prefetch.
4811
4812 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
4813
4814         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
4815         build.
4816
4817 2010-05-16  Jan Hubicka  <jh@suse.cz>
4818
4819         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
4820         function body; do not check stdarg field of struct function.
4821
4822 2010-05-16  Jan Hubicka  <jh@suse.cz>
4823
4824         * cgraph.c (dump_cgraph_node): Dump versionable flag.
4825         * cgraph.h (cgraph_local_info): Add versionable flag.
4826         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
4827         (ipcp_versionable_function_p): Use it.
4828         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
4829         versionable flag.
4830
4831 2010-05-16  Jan Hubicka  <jh@suse.cz>
4832
4833         * cgraph.c (cgraph_clone_node): Take decl argument and insert
4834         clone into hash when it is different from orig.
4835         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
4836         * cgraph.h (cgraph_clone_node): Update prototype.
4837         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
4838         (lto_cgraph_encoder_delete): Delete body map.
4839         (lto_cgraph_encoder_size): Move to header.
4840         (lto_cgraph_encoder_encode_body_p,
4841         lto_set_cgraph_encoder_encode_body): New.
4842         (lto_output_node): Do not take written_decls argument; output clone_of
4843         pointer.
4844         (add_node_to): Add include_body_argument; call
4845         lto_set_cgraph_encoder_encode_body on master of the clone.
4846         (add_references): Update use of add_node_to.
4847         (compute_ltrans_boundary): Likewise.
4848         (output_cgraph): Do not create written_decls bitmap.
4849         (input_node): Take nodes argument; stream in clone_of correctly.
4850         (input_cgraph_1): Update use of input_node.
4851         * lto-streamer-out.c (lto_output): Use encoder info to decide
4852         what bodies to output.
4853         * ipa-inline.c (cgraph_clone_inlined_nodes,
4854         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
4855         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
4856         (lto_cgraph_encoder_size): Define here.
4857         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
4858         Declare.
4859
4860 2010-05-16  Richard Guenther  <rguenther@suse.de>
4861
4862         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
4863         -fipa-type-escape.
4864         * ipa-type-escape.c (gate_type_escape_vars): Run when
4865         -fipa-struct-reorg runs.
4866         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
4867         * common.opt (fipa-type-escape): Remove.
4868
4869 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
4870
4871         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
4872         (decode_options): Likewise.
4873         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
4874
4875 2010-05-16  Jan Hubicka  <jh@suse.cz>
4876
4877         * ipa.c (function_and_variable_visibility): Also bring local all
4878         aliases.
4879
4880 2010-05-16  Richard Guenther  <rguenther@suse.de>
4881
4882         * alias.c (nonoverlapping_memrefs_p): Remove use of
4883         IPA type-escape information.
4884
4885 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
4886
4887         * c-common.c (c_common_reswords): Add _Static_assert for C.
4888         * c-parser.c (c_token_starts_declaration,
4889         c_parser_next_token_starts_declaration,
4890         c_parser_static_assert_declaration_no_semi,
4891         c_parser_static_assert_declaration): New.
4892         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
4893         Handle static assertions if static_assert_ok.
4894         (c_parser_external_declaration, c_parser_declaration_or_fndef,
4895         c_parser_compound_statement_nostart, c_parser_label,
4896         c_parser_for_statement, c_parser_objc_methodprotolist,
4897         c_parser_omp_for_loop): All callers of
4898         c_parser_declaration_or_fndef changed.
4899         (c_parser_struct_declaration): Handle static assertions.
4900         (c_parser_compound_statement_nostart): Use
4901         c_parser_next_token_starts_declaration and
4902         c_token_starts_declaration to detect start of declarations.
4903         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
4904         Likewise.
4905
4906 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
4907
4908         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
4909         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
4910         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4911         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4912         (mmix_function_outgoing_value): Rename to...
4913         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
4914         (mmix_function_value_regno_p): Make static.
4915         (mmix_libcall_value): New function.
4916         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
4917         mmix_function_value_regno_p): Remove declaration.
4918
4919 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
4920
4921         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
4922         BUILT_IN_ALLOCA if stack checking is enabled.
4923
4924 2010-05-16  Richard Guenther  <rguenther@suse.de>
4925
4926         * var-tracking.c (vars_copy_1): Inline ...
4927         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
4928         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
4929         (variable_merge_over_cur): Adjust.  Merge asserts.
4930         (variable_merge_over_src): Likewise.
4931         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
4932         (variable_post_merge_new_vals): Merge asserts.
4933         (variable_post_merge_perm_vals): Likewise.
4934         (find_mem_expr_in_1pdv): Likewise.
4935         (dataflow_set_different_value): Remove.
4936         (onepart_variable_different_p): Merge asserts.
4937         (variable_different_p): Likewise.
4938         (dataflow_set_different_1): Inline ...
4939         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
4940         (emit_notes_for_differences_1): Merge asserts.
4941
4942 2010-05-16  Richard Guenther  <rguenther@suse.de>
4943
4944         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
4945         * optabs.c (libfunc_decl_hash): Likewise.
4946         * varasm.c (emutls_decl): Likewise.
4947
4948 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
4949
4950         * c-decl.c: Don't include gimple.h.
4951         (merge_decls): Do not copy gimple_body.
4952
4953 2010-05-15  Jason Merrill  <jason@redhat.com>
4954
4955         * c.opt: Add -fnothrow-opt.
4956
4957 2010-05-15  Jan Hubicka  <jh@suse.cz>
4958
4959         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
4960         analyzed.
4961         * passes.c (ipa_write_summaries): Write all analyzed nodes.
4962
4963 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
4964
4965         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
4966         * Makefile.in: Add it.
4967         Fix all other Makefile dependencies for changes below.
4968         * tree.h: Include it instead of defining VEC primitives here.
4969         * gimple.h: Likewise.
4970         * rtl.h: Likewise.
4971         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
4972         * except.h: Include vecir.h, break dependence on tree.h.
4973
4974         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
4975         Move from here...
4976         * tree-iterator.c: ...to here.
4977         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
4978
4979         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
4980         tm_p.h.
4981         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
4982         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
4983         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
4984         tree-mudflap.h, and target.h.
4985         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
4986         predict.h, tree-inline.h, gimple.h, and langhooks.h.
4987         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
4988         Add FIXME for why gimple.h is still included (should be unnecessary
4989         since GCC 4.5 gimplification unit-at-a-time).
4990         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
4991         * c-pragma.c: Add FIXME for why function.h needs to be included just
4992         for cfun, at front-end level.
4993         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
4994         Do not include ggc.h, but include vecprim.h for VEC(char).
4995         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
4996         Explain why target.h is included.
4997         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
4998         Explain why gimple.h is included.
4999         * c-ppoutput.c: Do not include tm.h.
5000         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
5001         * c-parses.c: Explain why rtl.h is included, and that this (and only
5002         this) is also why tm.h must be included.
5003         Do not include except.h.
5004         * c-lang.c: Do not include ggc.h.
5005
5006 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
5007
5008         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
5009
5010 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
5011
5012         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
5013         unions by default if those structs and unions have no tags.  Do
5014         not condition anonymous struct and unions handling on flag_iso.
5015         Allow anonymous structs and unions for C1X.
5016         (finish_struct): Do not diagnose lack of named fields when
5017         anonymous structs and unions present for C1X.  Accept flexible
5018         array members in structure with anonymous structs or unions but no
5019         directly named fields.
5020         * doc/extend.texi (Unnamed Fields): Update.
5021
5022 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
5023
5024         * gimple.h (compare_field_offset): Rename into...
5025         (gimple_compare_field_offset): ...this.
5026         * gimple.c (compare_field_offset): Rename into...
5027         (gimple_compare_field_offset): ...this.  Compare the full access if
5028         the offset is self-referential.
5029         (gimple_types_compatible_p): Adjust for above renaming.
5030         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
5031         DECL_NONADDRESSABLE_P flag of fields before merging them.
5032
5033 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
5034
5035         * tree.h (ctor_to_list): Delete.
5036         * tree.c (ctor_to_list): Delete.
5037
5038 2010-05-15  Jan Hubicka  <jh@suse.cz>
5039
5040         * ipa-reference.c: Include toplev.h
5041         (is_proper_for_analysis): Only add to all_module_statics
5042         if it is allocated.
5043         (write_node_summary_p, stream_out_bitmap,
5044         ipa_reference_write_optimization_summary,
5045         ipa_reference_read_optimization_summary): New.
5046         (struct ipa_opt_pass_d pass_ipa_reference): Add
5047         optimization summary streaming.
5048         * lto-cgraph.c (referenced_from_this_partition_p,
5049         reachable_from_this_partition_p): New functions.
5050         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
5051         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
5052         * opts.c (decode_options): Enable ipa_reference.
5053         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
5054         * lto-streamer.h (referenced_from_this_partition_p,
5055         reachable_from_this_partition_p): Declare.
5056
5057 2010-05-15  Richard Guenther  <rguenther@suse.de>
5058
5059         PR tree-optimization/44038
5060         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
5061         taking the address of a V_C_E of a constant.
5062
5063 2010-05-14  Jan Hubicka  <jh@suse.cz>
5064
5065         * tree.h (memory_identifier_string): Remove.
5066         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
5067         (ipa_reference_global_vars_info_d): Remove statics_not_read and
5068         statics_not_written.
5069         (ipa_reference_optimization_summary_d): New structure.
5070         (ipa_reference_optimization_summary_t): New type and vector.
5071         (ipa_reference_vars_info_d): Embedd structures instead of using
5072         pointers.
5073         (reference_vars_to_consider): Remove out of GGC space.
5074         (module_statics_escape): Remove.
5075         (global_info_obstack): Rename to ...
5076         (optimization_summary_obstack): ... this one.
5077         (initialization_status_t): Remove.
5078         (memory_identifier_string): Remove.
5079         (get_reference_vars_info): Fix indenting.
5080         (set_reference_vars_info): Likewise.
5081         (get_reference_optimization_summary): New.
5082         (set_reference_optimization_summary): New.
5083         (get_global_reference_vars_info): Remove.
5084         (ipa_reference_get_read_global): Remove.
5085         (ipa_reference_get_written_global): Remove.
5086         (ipa_reference_get_not_read_global): Update.
5087         (ipa_reference_get_not_written_global): Update.
5088         (is_proper_for_analysis): Outlaw addressable.
5089         (propagate_bits): Update for new datastructures.
5090         (analyze_variable): Remove.
5091         (init_function_info): Update for new datastructures.
5092         (clean_function_local_data): Remove.
5093         (clean_function): Remove.
5094         (copy_global_bitmap): Use optimizations_summary_obstack.
5095         (duplicate_node_data): Duplicate optimization summary only.
5096         (remove_node_data): Remove optimization summary only.
5097         (generate_summary): Do not analyze variables; do not compute
5098         module_statics_escape; do not prune solutions by it.
5099         (read_write_all_from_decl): Fix typos in comments.
5100         (propagate): Doscover readonly and nonaddressable first;
5101         update for new datastructures; share global bitmaps.
5102         * ipa-reference.h (ipa_reference_get_read_global,
5103         ipa_reference_get_written_global): Remove.
5104         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
5105         * Makefile.in: Remove ipa-refereference from GT files.
5106
5107 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
5108
5109         PR debug/44112
5110         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
5111         for all SYMBOL_REF_DECLs.
5112
5113 2010-05-14  Jan Hubicka  <jh@suse.cz>
5114
5115         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
5116         (varpool_all_refs_explicit_p): New inline function.
5117         * ipa-reference.c: Update comment.
5118         (module_statics_written): Remove.
5119         (get_static_decl): Remove.
5120         (ipa_init): Do not initialize module_statics_written.
5121         (analyze_function): Likewise.
5122         (generate_summary): Likewise; do not compute module_statics_readonly
5123         and do not update variable flags.
5124         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
5125         * ipa.c: Inlucde flags.h
5126         (cgraph_local_node_p): New.
5127         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
5128         promote functions to local.
5129         (ipa_discover_readonly_nonaddressable_vars): New function.
5130         (function_and_variable_visibility): Use cgraph_local_node_p.
5131         * varpool.c (varpool_finalize_decl): Set force_output for
5132         DECL_PRESERVE_P vars.
5133
5134 2010-05-14  Jan Hubicka  <jh@suse.cz>
5135
5136         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
5137
5138 2010-05-14  Richard Guenther  <rguenther@suse.de>
5139
5140         PR tree-optimization/44119
5141         * tree-ssa-pre.c (eliminate): Properly mark replacement of
5142         a PHI node necessary.
5143
5144 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
5145
5146         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
5147
5148 2010-05-14  Jason Merrill  <jason@redhat.com>
5149
5150         PR c++/44127
5151         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
5152         (gimple_call_set_nothrow): New.
5153         * gimple.c (gimple_build_call_from_tree): Call it.
5154         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
5155
5156         PR c++/44127
5157         * gimplify.c (gimplify_seq_add_stmt): No longer static.
5158         * gimple.h: Declare it.
5159         * gimple.c (gimple_build_eh_filter): No ops.
5160
5161 2010-05-14  Jan Hubicka  <jh@suse.cz>
5162
5163         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
5164         nodes already in queue.
5165         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
5166         re-enqueueing node.
5167
5168 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
5169
5170         PR debug/44136
5171         * cfgexpand.c (expand_debug_expr): If non-memory op0
5172         has BLKmode, return NULL.
5173
5174 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
5175
5176         * config.gcc: Add support for --with-cpu option for bdver1.
5177         * config/i386/i386.h (TARGET_BDVER1): New macro.
5178         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
5179         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
5180         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
5181         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
5182         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
5183         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
5184         (processor_type): Add PROCESSOR_BDVER1.
5185         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
5186         processor_type in config/i386/i386.h.
5187         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
5188         movaps <reg, reg> instead of movapd <reg, reg> when replacing
5189         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
5190         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
5191         to emit packed xor instead of packed double/packed integer
5192         xor for SSE and AVX when moving a zero value.
5193         * config/i386/sse.md: Add check for
5194         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
5195         movapd/movdqa for SSE and AVX.
5196         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
5197         single logical operations i.e and, or and xor instead of packed double
5198         logical operations for SSE and AVX.
5199         * config/i386/i386-c.c (ix86_target_macros_internal):
5200         Add PROCESSOR_BDVER1.
5201         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
5202         (has_fma4, has_xop): New.
5203         * config/i386/i386.c (bdver1_cost): New variable.
5204         (m_BDVER1): New macro.
5205         (m_AMD_MULTIPLE): Add m_BDVER1.
5206         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
5207         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
5208         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
5209         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
5210         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
5211         x86_tune_sse_partial_reg_dependency,
5212         x86_tune_sse_unaligned_load_optimal,
5213         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
5214         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
5215         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
5216         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
5217         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
5218         Enable/disable for bdver1.
5219         (processor_target_table): Add bdver1_cost.
5220         (cpu_names): Add bdver1.
5221         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
5222          processor_alias_table.
5223         (ix86_expand_vector_move_misalign): Change.
5224         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
5225         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
5226         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
5227         of movupd/movdqu for SSE and AVX.
5228         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
5229         (ix86_tune_adjust_cost): Add code for bdver1.
5230         (standard_sse_constant_opcode): Add check for
5231         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
5232         of packed double xor for SSE and AVX.
5233
5234 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
5235
5236         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
5237         result to unsigned.
5238
5239 2010-05-14  Tristan Gingold  <gingold@adacore.com>
5240
5241         * toplev.c (default_debug_hooks): Remove this variable.
5242         (process_options): Remove assignments to default_debug_hooks.
5243
5244 2010-05-14  Martin Jambor  <mjambor@suse.cz>
5245
5246         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
5247         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
5248         * langhooks.h (struct lang_hooks_for_decls): Removed field
5249         fold_obj_type_ref.
5250         * tree.c (free_lang_data): Remove assignment to
5251         lang_hooks.fold_obj_type_ref.
5252         * tree.def (OBJ_TYPE_REF): Update comment.
5253
5254 2010-05-14  Richard Guenther  <rguenther@suse.de>
5255
5256         PR tree-optimization/44124
5257         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
5258
5259 2010-05-14  Alan Modra  <amodra@gmail.com>
5260
5261         PR target/44075
5262         * config/rs6000/rs6000.c (struct machine_function): Reorder
5263         fields for better packing.  Add lr_save_state.
5264         (rs6000_ra_ever_killed): Return lr_save_state if set.
5265         (rs6000_emit_eh_reg_restore): Set lr_save_state.
5266
5267 2010-05-13  Jan Hubicka  <jh@suse.cz>
5268
5269         * varpool.c (decide_is_variable_needed): Drop code checking
5270         TREE_SYMBOL_REFERENCED.
5271
5272 2010-05-13  Jan Hubicka  <jh@suse.cz>
5273
5274         * final.c (output_addr_const): Do not call mark_decl_referenced.
5275         * cgraphunit.c (process_function_and_variable_attributes): Use
5276         mark_needed_node dirrectly.
5277         (assemble_thunk): Do not call mark_decl_referenced.
5278
5279 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
5280
5281         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
5282
5283 2010-05-13  Jeff Law  <law@redhat.com>
5284
5285         * ira-conflicts.c (print_allocno_conflicts): New function broken out
5286         from...
5287         (print_conflicts): Call print_allocno_conflicts.
5288
5289 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
5290
5291         PR debug/44104
5292         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
5293         if it is NULL.
5294
5295 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
5296
5297         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
5298         t-mingw-w64 or t-mingw-w32 for multilib configuration.
5299         * config/i386/t-mingw-w32: New.
5300         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
5301
5302 2010-05-13  Martin Jambor  <mjambor@suse.cz>
5303
5304         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
5305         gimple-fold.c).
5306         * gimple-fold.c (get_base_binfo_for_type): New function.
5307         (gimple_get_relevant_ref_binfo): Likewise.
5308         (gimple_fold_obj_type_ref_known_binfo): Likewise.
5309         (gimple_fold_obj_type_ref): Likewise.
5310         (fold_gimple_call): Simplify condition for folding virtual calls
5311         and call gimple_fold_obj_type_ref.
5312         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
5313         (gimple_fold_obj_type_ref_known_binfo): Likewise.
5314
5315 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
5316
5317         * config/rs6000/rs6000-protos.h
5318         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
5319         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
5320         (rs6000_debug_mode_dependent_address)
5321         (rs6000_mode_dependent_address_ptr): Likewise.
5322
5323 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
5324
5325         PR debug/43983
5326         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
5327         by SRA.
5328         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
5329         * tree-sra.c (create_access_replacement): Call unshare_expr before
5330         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
5331         * dwarf2out.c: Include tree-flow.h.
5332         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
5333         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
5334         Handle DW_OP_bit_piece.
5335         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
5336         construct_piece_list, adjust_piece_list): New functions.
5337         (add_var_loc_to_decl): Handle SRA optimized variables.
5338         Adjust for var_loc_note to loc field renaming.
5339         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
5340         in VAR_LOCATION note.
5341         (new_loc_descr_op_bit_piece): New function.
5342         (dw_sra_loc_expr): New function.
5343         (dw_loc_list): Use it.  Don't handle the last range after the
5344         loop, handle it inside of the loop.  Adjust for var_loc_note
5345         to loc field renaming.
5346         (add_location_or_const_value_attribute): Only special case
5347         single entry loc lists if loc is NOTE_P.  Adjust for
5348         var_loc_note to loc field renaming.
5349         (dwarf2out_var_location): Don't set newloc->var_loc_note
5350         and newloc->next here.
5351
5352 2010-05-12  Jan Hubicka  <jh@suse.cz>
5353
5354         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
5355         flag.
5356         * cgraph.h (cgraph_only_called_directly_p,
5357         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
5358         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
5359         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
5360         (assemble
5361         * ipa.c (cgraph_remove_unreachable_nodes): Use
5362         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
5363         flags.
5364         * tree-inline.c (copy_bb): Check address_taken flag.
5365         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
5366         externally_visible flag.
5367
5368 2010-05-12  Jason Merrill  <jason@redhat.com>
5369
5370         PR bootstrap/44048
5371         PR target/44099
5372         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
5373         * sdbout.c (plain_type_1): Likewise.
5374         * dwarf2out.c (is_base_type): Likewise.
5375         (gen_type_die_with_usage): Likewise.  Generate
5376         DW_TAG_unspecified_type for any LANG_TYPE.
5377
5378 2010-05-12  Jan Hubicka  <jh@suse.cz>
5379
5380         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
5381         indrect edges too.
5382         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
5383         (cgraph_clone_edge): Update.
5384         (cgraph_node_remove_callees): Remove indirect calls too.
5385         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
5386         (cgraph_create_indirect_edge): Update prototype.
5387         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
5388         is_proper_for_analysis.
5389         (add_new_function, visited_nodes, function_insertion_hook_holder,
5390         get_local_reference_vars_info, mark_address_taken, mark_address,
5391         mark_load, mark_store, check_asm_memory_clobber, check_call,
5392         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
5393         (ipa_init): Do not initialize visited_nodes;
5394         function_insertion_hook_holder.
5395         (analyze_variable): Rewrite.
5396         (analyze_function): Rewrite.
5397         (copy_local_bitmap): Remove.
5398         (duplicate_node_dat): Do not duplicate local info.
5399         (generate_summary): Simplify to only walk cgraph.
5400         (write_node_summary_p, ipa_reference_write_summary,
5401         ipa_reference_read_summary): Remove.
5402         (propagate): Do not remove function insertion;
5403         generate summary.
5404         (pass_ipa_reference): NULLify summary handling fields.
5405         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
5406         (input_edge): Input ecf_flags.
5407         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
5408         (update_indirect_edges_after_inlining): Ignore edges with unknown
5409         param.
5410
5411 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
5412
5413         * implicit-zee.c: New file.
5414         * tree-pass.h (pass_implicit_zee): Declare.
5415         * passes.c (init_optimization_passes): Add zee pass.
5416         * common.opt (fzee): New flag.
5417         * timevar.def (TV_ZEE): Define.
5418         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
5419         and beyond.
5420         * Makefile.in (implicit-zee.o): Add new build file.
5421
5422 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
5423             Nathan Froyd  <froydnj@codesourcery.com>
5424
5425         * c-common.c (sync_resolve_params): Remove write-only variable.
5426
5427 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
5428
5429         * target.h (struct gcc_target): Add mode_dependent_address_p field.
5430         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
5431         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
5432         * targhooks.c (default_mode_dependent_address_p): New function.
5433         * targhooks.h (default_mode_dependent_address_p): Declare function.
5434         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
5435         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
5436         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
5437         target hook. Change return type to bool.
5438         * recog.h (mode_dependent_address_p): Change return type to bool.
5439
5440 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
5441             Nathan Froyd  <froydnj@codesourcery.com>
5442
5443         * tree-mudflap.c (build_function_type_0, build_function_type_1,
5444         build_function_type_2, build_function_type_3): Remove.
5445         (mudflap_init): Use build_function_type_list.
5446
5447 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
5448             Nathan Froyd  <froydnj@codesourcery.com>
5449
5450         * coverage.c (build_fn_info_value): Call build_constructor instead of
5451         build_constructor_from_list.
5452         (build_ctr_info_value): Likewise.
5453         (build_gcov_info): Likewise.
5454
5455 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
5456
5457         * tree.c (build_constructor): Compute TREE_CONSTANT for the
5458         resultant constructor.
5459         (build_constructor_single): Don't set TREE_CONSTANT.
5460         (build_constructor_from_list): Don't compute TREE_CONSTANT.
5461
5462 2010-05-12  Jan Hubicka  <jh@suse.cz>
5463
5464         * cgraph.h (struct varpool_node): Add aux.
5465         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
5466         * varpool.c (varpool_remove_node): Do not remove initializer.
5467         (varpool_reset_queue): Export.
5468         (varpool_finalize_decl): Volatile vars are forced to be output.
5469         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
5470         replaced decl.
5471         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
5472         process_references, varpool_can_remove_if_no_refs): New functions.
5473         (cgraph_remove_unreachable_nodes): Handle variables too.
5474
5475 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
5476
5477         PR target/44088
5478         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
5479
5480 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
5481
5482         PR middle-end/44085
5483         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
5484         change value of ORT_TASK.
5485         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
5486         (omp_notice_threadprivate_variable): New function.
5487         (omp_notice_variable): Call it for threadprivate variables.
5488         If enclosing ctx is a task, print enclosing task rather than
5489         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
5490         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
5491         if task has untied clause.
5492
5493         PR debug/42278
5494         * dwarf2out.c (base_type_die): Don't add name attribute here.
5495         (modified_type_die): Instead of sizetype use
5496         its underlying original type.  If a DW_TAG_base_type doesn't
5497         have name added, add __unknown__.
5498         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
5499         always call force_type_die instead.
5500
5501 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
5502
5503         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
5504         for __stack_chk_guard.
5505
5506 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
5507
5508         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
5509         don't call start_source_file debug hook here...
5510         (finish_options): ... but here, after outputting predefined and
5511         command line defines and undefs.
5512
5513         PR middle-end/44071
5514         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
5515         no fallthru edge.
5516         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
5517         optimizing away empty bb with no successors, move over its
5518         footer chain to fallthru predecessor.
5519         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
5520         (rtl_split_edge): For asm goto call patch_jump_insn even if
5521         splitting fallthru edge.
5522
5523         PR c++/44059
5524         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
5525         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
5526         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
5527         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
5528         on DW.ref.* decls.
5529
5530         PR c++/44062
5531         * c-parser.c (c_parser_expression): Mark LHS of a comma
5532         expression as read if it is a decl, handled component or
5533         COMPOUND_EXPR with that on the RHS.
5534         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
5535         if it is a decl or handled component.
5536
5537 2010-05-11  Jan Hubicka  <jh@suse.cz>
5538
5539         * lto-symtab.c (lto_symtab_free): New function.
5540         * lto-streamer.h (lto_symtab_free): Declare.
5541
5542 2010-05-11  Jan Hubicka  <jh@suse.cz>
5543
5544         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
5545         that if function is needed it is reachable.
5546         (lto_output_node): See if it the function is reachable or referenced.
5547         (output_cgraph): Update call of lto_output_node.
5548         * lto-streamer.h (reachable_from_other_partition_p): Declare.
5549
5550 2010-05-11  Jan Hubicka  <jh@suse.cz>
5551
5552         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
5553         Mark as used.
5554
5555 2010-05-11  Jan Hubicka  <jh@suse.cz>
5556
5557         PR tree-optimize/44063
5558         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
5559         queue.
5560         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
5561         limits.
5562         (estimate_function_body_sizes): Compute sizes even when disregarding.
5563
5564 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
5565
5566         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
5567
5568 2010-05-11  Jan Hubicka  <jh@suse.cz>
5569
5570         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
5571         into every boundary.
5572
5573 2010-05-11  Jan Hubicka  <jh@suse.cz>
5574
5575         * matrix-reorg.c (matrix_reorg): Rebuild edges.
5576
5577 2010-05-11  Jan Hubicka  <jh@suse.cz>
5578
5579         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
5580         lto_streamer_cache_delete): Put nodes into heap.
5581         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
5582         heap.
5583
5584 2010-05-11  Jan Hubicka  <jh@suse.cz>
5585
5586         * cgraphbuild.c (cgraph_rebuild_references): New.
5587         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
5588         out extern inlines.
5589         * cgraph.h (cgraph_rebuild_references): Declare.
5590         * tree-inline.c (tree_function_versioning): Use it.
5591         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
5592
5593 2010-05-11  Jan Hubicka  <jh@suse.cz>
5594
5595         * cgraph.c: Include ipa-utils.h
5596         (cgraph_create_virtual_clone): Update references.
5597         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
5598
5599 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
5600
5601         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
5602         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
5603         cache size.
5604
5605 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
5606
5607         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
5608
5609 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
5610
5611         * gcc.c (execute): For -### don't quote arguments that
5612         contain just alphanumerics and _/-. characters.
5613         * doc/invoke.texi: Document that change for -###.
5614
5615         PR debug/44023
5616         * df-problems.c (struct dead_debug): Add to_rescan field.
5617         (dead_debug_init): Clear to_rescan field.
5618         (dead_debug_finish): Rescan all debug insns in to_rescan
5619         bitmap and free the bitmap.
5620         (dead_debug_insert_before): Instead of rescanning debug insns
5621         immediately queue their rescanning until dead_debug_finish.
5622         (df_note_bb_compute): After dead_debug_add do continue instead
5623         of break.
5624
5625 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
5626
5627         PR debug/44028
5628         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
5629         clear also INSN_REG_USE_LIST.
5630
5631 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5632
5633         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
5634
5635 2010-05-10  Jan Hubicka  <jh@suse.cz>
5636
5637         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
5638         commited change.
5639
5640 2010-05-10  Jan Hubicka  <jh@suse.cz>
5641
5642         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
5643         Allocate encoders.
5644         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
5645         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
5646         (lto_streamer_cache_create): Init alloc pool.
5647         (lto_streamer_cache_delete): Free alloc pool.
5648         * lto-streamer.h: Include alloc pool.
5649         (lto_streamer_cache_d): Use alloc pool.
5650         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
5651
5652 2010-05-10  Jan Hubicka  <jh@suse.cz>
5653
5654         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
5655         * cgraphbuild.c: Include except.h
5656         (record_type_list, record_eh_tables): New function.
5657         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
5658
5659 2010-05-10  Jan Hubicka  <jh@suse.cz>
5660
5661         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
5662         __frame_dummy_init_array_entry, force_to_data): Attribute as used
5663         rather than unused.
5664
5665 2010-05-10  Michael Matz  <matz@suse.de>
5666
5667         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
5668         (can_reassociate_p): Use FLOAT_TYPE_P.
5669         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
5670         (vect_force_simple_reduction): ... this.
5671         * tree-parloops.c (gather_scalar_reductions): Use
5672         vect_force_simple_reduction.
5673         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
5674         vect_is_simple_reduction, add modify argument, if true rewrite
5675         "a-b" into "a+(-b)".
5676         (vect_is_simple_reduction, vect_force_simple_reduction): New
5677         functions.
5678         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
5679
5680 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
5681             Vladimir Makarov  <vmakarov@redhat.com>
5682
5683         PR rtl-optimization/44012
5684         * ira-build.c (remove_unnecessary_allocnos): Nullify
5685         regno_allocno_map of the removed allocno.
5686
5687 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5688
5689         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
5690         to /dev/null.
5691         * configure: Regenerate.
5692
5693 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5694
5695         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
5696         unused.
5697         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
5698         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
5699         support in Sun ld.
5700         * configure: Regenerate.
5701
5702 2010-05-10  Richard Guenther  <rguenther@suse.de>
5703
5704         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
5705         marked if the entry identifier is marked.
5706
5707 2010-05-10  Richard Guenther  <rguenther@suse.de>
5708
5709         * c-common.c (struct c_common_attributes): Add fnspec attribute.
5710         (handle_fnspec_attribute): New function.
5711         * gimple.h (gimple_call_return_flags): Declare.
5712         (gimple_call_arg_flags): Likewise.
5713         * gimple.c (gimple_call_arg_flags): New function.
5714         (gimple_call_return_flags): Likewise.
5715         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
5716         New argument flags.
5717         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
5718         return value flags.
5719         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
5720         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
5721         main work to ...
5722         (make_heapvar_for): ... this new function.
5723         (handle_rhs_call): Handle fnspec attribute argument specifiers.
5724         (handle_lhs_call): Likewise.
5725         (find_func_aliases): Adjust.
5726
5727 2010-05-10  Richard Guenther  <rguenther@suse.de>
5728
5729         PR tree-optimization/44050
5730         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
5731
5732 2010-05-10  Wei Guozhi  <carrot@google.com>
5733
5734         PR target/42879
5735         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
5736
5737 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
5738
5739         PR c/10676
5740         * c-typeck.c (lookup_field): Take a type directly.  Update
5741         recursive calls.
5742         (build_component_ref): Update call to lookup_field.
5743         (set_init_label): Use lookup_field to find initialized field.
5744         Handle returned list of fields like a sequence of designators.
5745
5746 2010-05-09  Richard Guenther  <rguenther@suse.de>
5747
5748         PR middle-end/44024
5749         * fold-const.c (tree_single_nonzero_warnv_p): Properly
5750         handle &FUNCTION_DECL.
5751
5752 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
5753
5754         PR c/4784
5755         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
5756         structures and unions recursively.
5757         (detect_field_duplicates): Move duplicate detection with a hash to
5758         detect_field_duplicates_hash.  Always use a hash if anonymous
5759         structures or unions are present.
5760         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
5761         give errors.
5762
5763 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
5764
5765         PR target/44046
5766         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
5767         detect Atom, Core 2 and Core i7.
5768
5769 2010-05-09  Richard Guenther  <rguenther@suse.de>
5770
5771         * gcc.c (store_arg): Handle temporary file deletion for
5772         joined arguments.
5773
5774 2010-05-09  Richard Guenther  <rguenther@suse.de>
5775
5776         PR middle-end/44043
5777         * ipa-inline.c (estimate_function_body_sizes): Return after
5778         disregarding inline limits.
5779
5780 2010-05-09  Richard Guenther  <rguenther@suse.de>
5781
5782         * gcc.c (store_arg): Revert last change.
5783
5784 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
5785
5786         PR middle-end/28685
5787         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
5788         (optimize_ops_list): Call it.
5789
5790 2010-05-08  Richard Guenther  <rguenther@suse.de>
5791
5792         PR tree-optimization/44030
5793         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
5794         NECESSARY flag if we propagate from a inserted expression.
5795
5796 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
5797
5798         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
5799         domain types as equal if they are both PLACEHOLDER_EXPRs.
5800
5801 2010-05-08  Richard Guenther  <rguenther@suse.de>
5802
5803         * lto-wrapper.c (run_gcc): Remove linker output from
5804         command line for LTRANS invocation.
5805
5806 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
5807
5808         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
5809         lto-macho as lto_binary_reader.
5810         * target.h (struct gcc_target): New hooks lto_start and lto_end.
5811         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
5812         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
5813         in lto_start and lto_end calls.
5814         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
5815         magic numbers.
5816         (scan_prog_file): Update is_elf_or_coff call.
5817         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
5818
5819         * collect2.c (main): Fix enum comparison.
5820
5821         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
5822         Add prototypes.
5823         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
5824         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
5825         and TARGET_ASM_LTO_END.
5826         * darwin.c: Include obstack.h and lto-streamer.h.
5827         (lto_section_names_offset, lto_section_names_obstack,
5828         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
5829         global variables.
5830         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
5831         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
5832         to a temporary file.
5833         (darwin_asm_lto_end): New function.  Restore asm_out_file.
5834         (darwin_asm_named_section): For LTO sections, replace the name with
5835         the offset of the section name in a string table, and build this
5836         table.
5837         (darwin_file_start): Initialize global vars for LTO support.
5838         (darwin_file_end): If output to asm_out_file was redirected, append it
5839         to the proper asm_out_file here.  Add the section names section.
5840
5841 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
5842
5843         * c-pragma.c (pending_weak_d, pending_weak): New.
5844         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
5845         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
5846         handle_pragma_weak): Update the uses of pending_weaks.
5847
5848 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5849
5850         PR documentation/44016
5851         * doc/standards.texi (Standards): Link to unversioned
5852         cxx0x_status.html page.
5853
5854 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
5855
5856         PR target/43708
5857         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
5858         in addition to TREE_USED, to avoid "set but unused" warnings.
5859
5860 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
5861
5862         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
5863         (is_loop_prefetching_profitable): Do not insert prefetches
5864         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
5865         times the prefetch ahead distance.
5866
5867 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
5868
5869         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
5870         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
5871         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
5872         the unroll_factor.
5873
5874 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
5875
5876         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
5877         a diagnostic info when the insn-to-mem ratio is too small.
5878
5879 2010-05-07  Richard Guenther <rguenther@suse.de>
5880
5881         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
5882         the linker plugin.
5883         (store_arg): Queue temp_filename for deletion instead of
5884         the whole argument.
5885
5886 2010-05-07  Richard Guenther  <rguenther@suse.de>
5887
5888         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
5889         (run_gcc): Handle LTRANS phase invocation.
5890         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
5891
5892 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
5893
5894         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
5895         this is also meaningful on PARM_DECLs and RESULT_DECLs.
5896
5897 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5898
5899         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
5900
5901 2010-05-07  Richard Guenther  <rguenther@suse.de>
5902
5903         PR tree-optimization/44020
5904         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
5905         code when PRE is not yet initialized.
5906
5907 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5908
5909         * config/mips/dbxmdebug.h: Remove.
5910         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
5911
5912 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
5913
5914         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
5915         with null pointer and also warn about ordered comparison of zero with
5916         pointer if -Wextra.
5917
5918 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5919
5920         * graphite-blocking.c
5921         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
5922         * graphite-clast-to-gimple.c
5923         (clast_to_gcc_expression): Same.
5924         (precision_for_value): Same.
5925         (precision_for_interval): Same.
5926         (gcc_type_for_interval): Same.
5927         (graphite_create_new_guard): Same.
5928         (compute_bounds_for_level): Same.
5929         (graphite_create_new_loop_guard): Same.
5930         * graphite-interchange.c
5931         (build_linearized_memory_access): Same.
5932         (pdr_stride_in_loop): Same.
5933         (memory_strides_in_loop_1): Same.
5934         (memory_strides_in_loop): Same.
5935         (extend_scattering): Same.
5936         (psct_scattering_dim_for_loop_depth): Same.
5937         (pbb_number_of_iterations): Same.
5938         * graphite-poly.h
5939         (debug_iteration_domains): Same.
5940         * graphite-ppl.c
5941         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
5942         (ppl_set_inhomogeneous_gmp): Same.
5943         (ppl_strip_loop): Same.
5944         (ppl_lexico_compare_linear_expressions): Same.
5945         (ppl_read_polyhedron_matrix): Same.
5946         (ppl_max_for_le_pointset): Same.
5947         * graphite-ppl.h
5948         (ppl_read_polyhedron_matrix): Same.
5949         (tree_int_to_gmp): Same.
5950         (gmp_cst_to_tree): Same.
5951         (ppl_set_inhomogeneous): Same.
5952         (ppl_set_inhomogeneous_tree): Same.
5953         (ppl_set_coef): Same.
5954         (ppl_set_coef_tree): Same.
5955         * graphite-sese-to-poly.c
5956         (build_pbb_scattering_polyhedrons): Same.
5957         (build_scop_scattering): Same.
5958         (scan_tree_for_params_right_scev): Same.
5959         (scan_tree_for_params): Same.
5960         (find_params_in_bb): Same.
5961         (find_scop_parameters): Same.
5962         (add_upper_bounds_from_estimated_nit): Same.
5963         (build_loop_iteration_domains): Same.
5964         (add_condition_to_domain): Same.
5965         (pdr_add_memory_accesses): Same.
5966
5967 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5968
5969         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
5970         CLooG's value_* macros to their respective mpz_* counterparts.
5971         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
5972         (graphite_create_new_loop_guard): Same.
5973         * graphite-interchange.c (build_linearized_memory_access): Same.
5974         (pdr_stride_in_loop): Same.
5975         (memory_strides_in_loop_1): Same.
5976         (1st_interchange_profitable_p): Same.
5977         * graphite-poly.c (extend_scattering): Same.
5978         (psct_scattering_dim_for_loop_depth): Same.
5979         (pbb_number_of_iterations): Same.
5980         (pbb_number_of_iterations_at_time): Same.
5981         * graphite-poly.h (new_1st_loop): Same.
5982         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
5983         (oppose_constraint): Same.
5984         (insert_constraint_into_matrix): Same.
5985         (ppl_set_inhomogeneous_gmp): Same.
5986         (ppl_set_coef_gmp): Same.
5987         (ppl_strip_loop): Same.
5988         (ppl_lexico_compare_linear_expressions): Same.
5989         (ppl_max_for_le_pointset): Same.
5990         (ppl_min_for_le_pointset): Same.
5991         (ppl_build_realtion): Same.
5992         * graphite-ppl.h (gmp_cst_to_tree): Same.
5993         (ppl_set_inhomogeneous): Same.
5994         (ppl_set_inhomogeneous_tree): Same.
5995         (ppl_set_coef): Same.
5996         (ppl_set_coef_tree): Same.
5997         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
5998         (build_scop_scattering): Same.
5999         (add_value_to_dim): Same.
6000         (scan_tree_for_params_right_scev): Same.
6001         (scan_tree_for_params_int): Same.
6002         (scan_tree_for_params): Same.
6003         (find_params_in_bb): Same.
6004         (find_scop_parameters): Same.
6005         (add_upper_bounds_from_estimated_nit): Same.
6006         (build_loop_iteration_domains): Same.
6007         (create_linear_expr_from_tree): Same.
6008         (add_condition_to_domain): Same.
6009         (pdr_add_memory_accesses): Same.
6010
6011 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
6012             Jason Merrill  <jason@redhat.com>
6013
6014         * c-common.c (c_common_reswords): Add nullptr.
6015         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
6016         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
6017         (gen_type_die_with_usage): Likewise.
6018         * dbxout.c (dbxout_type): Likewise.
6019         * sdbout.c (plain_type_1): Likewise.
6020
6021 2010-05-06  Jason Merrill  <jason@redhat.com>
6022
6023         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
6024         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
6025         ret appropriately.
6026         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
6027
6028         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
6029         stripping WITH_SIZE_EXPR.
6030         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
6031         change.
6032
6033 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6034
6035         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
6036         list of obsolete configurations.
6037         Disabled check for obsolete configurations.
6038         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
6039         Removed support for previous versions.
6040         * config/mips/iris.h: Removed.
6041         * config/mips/iris5.h: Removed.
6042         * config/mips/iris6.h: Merged old iris.h contents.
6043         (TARGET_IRIX): Removed.
6044         (DRIVER_SELF_SPECS): Removed mabi=32.
6045         (IDENT_ASM_OP): Removed undef.
6046         (STARTFILE_SPEC): Removed mabi=32.
6047         (ENDFILE_SPEC): Likewise.
6048         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
6049         (MACHINE_TYPE): Update for IRIX 6.5.
6050         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
6051         TARGET_IRIX by TARGET_IRIX6.
6052         (mips_file_start): Likewise.
6053         (mips_output_external): Remove IRIX 5/6 O32 support.
6054         (mips_output_function_prologue): Likewise.
6055         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
6056         TARGET_IRIX6.
6057         (TARGET_CPU_CPP_BUILTINS): Likewise.
6058         (TARGET_IRIX): Removed.
6059         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
6060         (MULTILIB_DIRNAMES): Removed 32.
6061         (MULTILIB_OSDIRNAMES): Removed ../lib.
6062         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
6063         (Specific, mips-sgi-irix5): Document removal.
6064         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
6065         Remove references to older IRIX 6 releases and the O32 ABI.
6066
6067 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
6068
6069         PR bootstrap/43994
6070         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
6071         instead of DF_REF_REAL_REG.
6072
6073 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
6074
6075         PR target/43888
6076         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
6077         handling to still return true for x64 targets.
6078
6079 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
6080
6081         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
6082
6083 2010-05-06  Jan Hubicka  <jh@suse.cz>
6084
6085         PR tree-optimization/43791
6086         * ipa-inline.c (update_caller_keys): Remove bogus
6087         disregard_inline_limits check.
6088
6089 2010-05-06  Michael Matz  <matz@suse.de>
6090
6091         PR tree-optimization/43984
6092         * tree-ssa-pre.c (inserted_phi_names): Remove.
6093         (inserted_exprs): Change to bitmap.
6094         (create_expression_by_pieces): Set bits, don't append to vector.
6095         (insert_into_preds_of_block): Don't handle inserted_phi_names.
6096         (eliminate): Don't look at inserted_phi_names, remove deleted
6097         insns from inserted_exprs.
6098         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
6099         (init_pre, fini_pre): Allocate and free bitmaps.
6100         (execute_pre): Insert insns on edges before elimination.
6101
6102 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
6103
6104         * tree.c (initializer_zerop): Handle STRING_CST.
6105
6106 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6107
6108         PR 40989
6109         * doc/invoke.texi (Wimplicit): Document as C only.
6110         * opts.c (common_handle_option): Add argument kind.
6111         (handle_option): Rename as read_cmdline_option. Factor out code to...
6112         (handle_option): ... here. New.
6113         (handle_options): Rename as read_cmdline_options.
6114         (decode_options): Update call.
6115         (set_option): Use option index instead of option pointer. Classify
6116         diagnostics correctly.
6117         (enable_warning_as_error): Call handle_option.
6118         * opts.h (set_option): Update declaration.
6119         (handle_option): Declare.
6120         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
6121         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
6122         * c-opts.c (set_Wimplicit): Delete.
6123         (c_family_lang_mask): New static constant.
6124         (c_common_handle_option): Add argument kind. Use handle_option
6125         instead of set_Wimplicit.
6126         (c_common_post_options): warn_implicit and warn_implicit_int
6127         are disabled by default.
6128         * c-common.c (warn_implicit): Do not define here.
6129         * c-common.h (warn_implicit): Do not declare here.
6130         (c_common_handle_option): Update declaration.
6131         * lto-opts.c (lto_reissue_options): Update call to set_option.
6132
6133 2010-05-06  Richard Guenther  <rguenther@suse.de>
6134
6135         PR tree-optimization/43571
6136         * domwalk.c (walk_dominator_tree): Walk the dominator
6137         sons in more optimal order.
6138
6139 2010-05-06  Richard Guenther  <rguenther@suse.de>
6140
6141         PR tree-optimization/43934
6142         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
6143         (stmt_cost): Likewise.
6144         (extract_true_false_args_from_phi): New helper.
6145         (determine_max_movement): For PHI nodes verify we can hoist them
6146         and compute their cost.
6147         (determine_invariantness_stmt): Handle PHI nodes.
6148         (move_computations_stmt): Likewise.  Hoist PHI nodes in
6149         if-converted form using COND_EXPRs.
6150         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
6151         (tree_ssa_lim): Likewise.
6152         * tree-flow.h (tree_ssa_lim): Adjust prototype.
6153         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
6154
6155 2010-05-06  Richard Guenther  <rguenther@suse.de>
6156
6157         PR tree-optimization/43987
6158         * tree-ssa-structalias.c (could_have_pointers): For possibly
6159         address-taken variables force pointers to be recorded.
6160         (create_variable_info_for_1): Likewise.
6161         (push_fields_onto_fieldstack): Pass in wheter all fields
6162         must have pointers.
6163         (find_func_aliases): Query types instead of vars whether
6164         they contain pointers where appropriate.
6165
6166 2010-05-06  Jan Hubicka  <jh@suse.cz>
6167
6168         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
6169         (record_reference, mark_address, mark_load, mark_store): Record
6170         references.
6171         (record_references_in_initializer): Update call of record_references.
6172         (rebuild_cgraph_edges): Remove all references before rebuiding.
6173         * cgraph.c (cgraph_create_node): Clear ref list.
6174         (cgraph_remove_node): Remove references.
6175         (dump_cgraph_node): Dump references.
6176         (cgraph_clone_node): Clone references.
6177         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
6178         (struct cgraph_node, varpool_node): Add ref_lst.
6179         * ipa-ref.c: New file.
6180         * ipa-ref.h: New file.
6181         * ipa-ref-inline.h: New file.
6182         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
6183         (referenced_from_other_partition_p): New function.
6184         (lto_output_varpool_node): Take set arugment; call
6185         referenced_from_other_partition.
6186         (lto_output_ref): New.
6187         (add_references): New.
6188         (output_refs): New.
6189         (output_cgraph): Compute boundary based on references; output refs.
6190         (output_varpool): Accept cgraph_node_set argument.
6191         (input_ref): New.
6192         (input_refs): New.
6193         (input_cgraph): Call input_refs.
6194         * lto-section-in.c (lto_section_name): Add refs.
6195         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
6196         (ipa-ref.o): New file.
6197         * varpool.c (varpool_node): Clear ipa ref list.
6198         (varpool_remove_node): Remove references.
6199         (dump_varpool_node): Dump references.
6200         (varpool_assemble_decl): Only compile finalized ones.
6201         (varpool_extra_name_alias): Initialize ref list.
6202         * lto-streamer.c (lto-get_section_name): Add .refs section.
6203         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
6204         (referenced_from_other_partition_p): Declared.
6205
6206 2010-05-06  Ira Rosen  <irar@il.ibm.com>
6207
6208         PR tree-optimization/43901
6209         * tree-vect-stmts.c (vectorizable_call): Assert that vector
6210         type is not NULL if it's transformation phase, and return
6211         FALSE if it's analysis.
6212         (vectorizable_conversion, vectorizable_operation,
6213         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
6214
6215 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
6216
6217         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
6218         Delete.
6219         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
6220         New define.
6221         * config/mips/mips-protos.h
6222         (mips_small_register_classes_for_mode_p): Delete prototype.
6223
6224 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
6225
6226         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
6227         * config/arm/arm.c (multiple_operation_profitable_p,
6228         compute_offset_order): New static functions.
6229         (load_multiple_sequence, store_multiple_sequence): Use them.
6230         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
6231         memory offsets, not register numbers.
6232         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
6233
6234 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
6235
6236         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
6237         (get_pending_sizes, put_pending_size, put_pending_sizes):
6238         Update the uses of pending_sizes.
6239         * c-decl.c (store_parm_decls): Likewise.
6240         * c-tree.h (struct c_arg_info): Likewise.
6241         * tree.h: Update the prototype for get_pending_sizes and
6242         put_pending_sizes.
6243
6244 2010-05-05  Jason Merrill  <jason@redhat.com>
6245
6246         PR debug/43370
6247         * c-common.c (handle_aligned_attribute): Respect
6248         ATTR_FLAG_TYPE_IN_PLACE.
6249
6250         PR testsuite/43758
6251         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
6252         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
6253         (TARGET_INITIALIZER): Use it.
6254         * c-common.c (attribute_takes_identifier_p): Call it.
6255         * c-common.h: Update prototype.
6256         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
6257         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
6258
6259 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
6260
6261         PR debug/43950
6262         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
6263         DW_ID_down_case for Fortran compilation units.
6264
6265 2010-05-05  Jan Hubicka  <jh@suse.cz>
6266
6267         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
6268         handle aliases.
6269
6270 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6271
6272         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
6273         a variable-sized RESULT_DECL.
6274
6275 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
6276
6277         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
6278
6279 2010-05-05  Jason Merrill  <jason@redhat.com>
6280
6281         PR c++/43787
6282         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
6283         returns GS_OK.
6284         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
6285
6286 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
6287             Jakub Jelinek  <jakub@redhat.com>
6288
6289         PR debug/43478
6290         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
6291         (dead_debug_init, dead_debug_finish): New functions.
6292         (dead_debug_add, dead_debug_insert_before): Likewise.
6293         (df_note_bb_compute): Initialize a dead_debug object, add dead
6294         debug uses to it, insert debug bind insns before death insns,
6295         reset debug insns that refer to pending uses at the end.
6296         * rtl.h (make_debug_expr_from_rtl): New prototype.
6297         * varasm.c (make_debug_expr_from_rtl): New function.
6298
6299 2010-05-05  Jan Hubicka  <jh@suse.cz>
6300
6301         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
6302         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
6303         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
6304         lto_varpool_encoder_deref, lto_varpool_encoder_size,
6305         lto_varpool_encoder_encode_initializer_p,
6306         lto_set_varpool_encoder_encode_initializer): New functions.
6307         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
6308         call output_varpool.
6309         (input_varpool_node): Do not always set analyzed.
6310         (input_cgraph_1): Return vector of cgraph nodes.
6311         (input_varpool_1): Return vector of varpools.
6312         (input_cgraph): Free the vectors.
6313         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6314         output only initializers needed.
6315         (lto_output): Only call output_cgraph.
6316         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
6317         * lto-section-out.c (lto_new_out_decl_state): Initialize
6318         state->varpool_node_encoder.
6319         * lto-streamer.h (lto_varpool_encoder_d): New.
6320         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
6321         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
6322         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
6323         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
6324         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
6325         Declare.
6326         (output_varpool, input_varpool): Remove declarations.
6327
6328 2010-05-05  Jan Hubicka  <jh@suse.cz>
6329
6330         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
6331         with body can prevail.
6332
6333 2010-05-05  Jan Hubicka  <jh@suse.cz>
6334
6335         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
6336         size.
6337
6338 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6339
6340         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
6341
6342         * gengtype.h (erro_at_line): Constify pos argument.
6343
6344         * gengtype.c: Include hashtab.h.
6345         (enum gc_used): Document GC_MAYBE_POINTED_TO.
6346         (error_at_line): Constify pos argument.
6347         (do_typedef): Initialize p->opt field.
6348         (get_file_gtfilename): Fix comment typo.
6349         (struct walk_type_data): Constify line field.
6350         (get_output_file_for_structure): New function.
6351         (write_local_func_for_structure): Constify orig_s argument.
6352         Use get_output_file_for_structure.
6353         (write_func_for_structure): Use get_output_file_for_structure.
6354         (INDENT): New define.
6355         (dump_pair, dump_type, dump_type_list, dump_typekind)
6356         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
6357         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
6358         functions.
6359         (seen_types): New variable.
6360         (main): New variable do_dump.  Process "-d" command line option.
6361         Call dump_everything if dump requested.
6362
6363 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
6364
6365         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
6366         in a temporary instead of invoking the macro multiple times.
6367         (track_expr_p): Likewise.
6368
6369 2010-05-04  Neil Vachharajani <nvachhar@google.com>
6370
6371         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
6372         per new semantics.
6373         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
6374         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
6375         conditions for printing notes.
6376         * common.opt (-Wcoverage-mismatch): Allow negative, default to
6377         true, update documentation.
6378         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
6379
6380 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
6381
6382         PR c/43981
6383         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
6384         on dimen.
6385
6386 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
6387
6388         PR target/43799
6389         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
6390         (*sse_prologue_save_insn1): Likewise.
6391         (SSE prologue save splitter): Likewise.
6392
6393 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
6394
6395         * tree.c (free_lang_data_in_one_sizepos): New inline function.
6396         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
6397         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
6398         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
6399         all decls.  Call it on DECL_FIELD_OFFSET of fields.
6400         (find_decls_types_r): Follow DECL_VALUE_EXPR.
6401         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
6402
6403 2010-05-04  Martin Jambor  <mjambor@suse.cz>
6404
6405         * tree-sra.c (build_access_from_expr_1): The first parameter type
6406         changed to simple tree.
6407         (build_access_from_expr): Likewise, gsi parameter was eliminated.
6408         (scan_assign_result): Renamed to assignment_mod_result, enum elements
6409         renamed as well.
6410         (build_accesses_from_assign): Removed all parameters except for a
6411         simple gimple statement.  Now returns a simple bool.
6412         (scan_function): All non-analysis parts moved to separate functions
6413         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
6414         parameters and updated both callers.
6415         (sra_modify_expr): Removed parameter data.
6416         (sra_modify_function_body): New function.
6417         (perform_intra_sra): Call sra_modify_function_body to modify the
6418         function body.
6419         (replace_removed_params_ssa_names): Parameter data changed into
6420         adjustments vector.
6421         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
6422         changed the parameter dont_convert to convert with the opposite
6423         meaning.
6424         (sra_ipa_modify_assign): Parameter data changed into adjustments
6425         vector, return value changed to bool.
6426         (ipa_sra_modify_function_body): New function.
6427         (sra_ipa_reset_debug_stmts): Updated a comment.
6428         (modify_function): Use ipa_sra_modify_function_body to modify function
6429         body.
6430
6431 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
6432
6433         PR middle-end/43671
6434         * alias.c (true_dependence): Handle the same VALUE in x and mem.
6435         (canon_true_dependence): Likewise.
6436         (write_dependence_p): Likewise.
6437
6438 2010-05-04  Jan Hubicka  <jh@suse.cz>
6439
6440         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
6441         * cgraphbuild.c: Include ipa-utils.h
6442         (record_reference_ctx): New struct.
6443         (record_reference): Simplify to work on initializers; not statements.
6444         (mark_address, mark_load, mark_store): New.
6445         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
6446         walk PHI nodes too.
6447         (record_references_in_initializer): Update use of record_reference.
6448         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
6449         walk PHI nodes too.
6450
6451 2010-05-04  Jan Hubicka  <jh@suse.cz>
6452
6453         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
6454         node will be removed anyway.
6455         (lto_varpool_replace_node): Allow also unanalyzed nodes;
6456         relink aliases of node into prevailing node.
6457         * varpool.c (varpool_remove_node): Remove aliases properly;
6458         when removing node, remove all its aliases too; remove DECL_INITIAL
6459         of removed node; ggc_free the varpool node.
6460
6461 2010-05-04  Richard Guenther  <rguenther@suse.de>
6462
6463         PR tree-optimization/43879
6464         * tree-ssa-structalias.c (alias_get_name): Use
6465         DECL_ASSEMBLER_NAME if available.
6466         (create_function_info_for): Return the varinfo node.
6467         (ipa_pta_execute): Associate same-body aliases and extra names
6468         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
6469
6470 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
6471
6472         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
6473
6474 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
6475
6476         PR bootstrap/43964
6477         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
6478         only if HONOR_REG_ALLOC_ORDER is not defined.
6479
6480 2010-05-04  Richard Guenther  <rguenther@suse.de>
6481
6482         PR tree-optimization/43949
6483         * tree-vrp.c (extract_range_from_binary_expr): Only handle
6484         TRUNC_MOD_EXPR.
6485
6486 2010-04-26  Jason Merrill  <jason@redhat.com>
6487
6488         * c.opt (-fstrict-enums): New.
6489         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
6490
6491 2010-05-03  David Ung <davidu@mips.com>
6492             James E. Wilson  <wilson@codesourcery.com>
6493
6494         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
6495         emit the trap instruction before the divide for TUNE_74K.
6496
6497 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
6498
6499         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
6500         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
6501         based on the above, for new target hook.
6502
6503         * hooks.c (hook_bool_mode_true): New generic hook.
6504         * hooks.h (hook_bool_mode_true): Add prototype.
6505
6506         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
6507         target hook.
6508         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
6509         target hook, set to hook_bool_mode_false.
6510         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
6511         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
6512         with targetm.small_register_classes_for_mode_p.
6513         (find_reusable_reload): Likewise.
6514         (combine_reloads): Likewise.
6515         * reload1.c (reload_as_needed): Likewise.
6516         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
6517         * ifcvt.c (noce_process_if_block, check_cond_move_block,
6518         dead_or_predicable): Likewise.
6519         * regmove.c (optimize_reg_copy_1): Likewise.
6520         * calls.c (prepare_call_address): Likewise.
6521         (precompute_register_parameters): Likewise.
6522
6523         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
6524         hook definition.
6525         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
6526         implementation of the hook that considers all register classes
6527         small except for SH64.
6528         (sh_override_options): Use the new hook.
6529         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
6530         Add prototype.
6531
6532         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
6533         hook definition.
6534         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
6535         implementation of the hook that considers all register classes
6536         small for THUMB1.
6537         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
6538         Add prototype.
6539
6540         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
6541         hook definition.
6542         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
6543         implementation of the hook that considers all register classes
6544         small for MIPS16.
6545         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
6546         Add prototype.
6547
6548         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
6549         hook definition.
6550         * config/m32c/m32c.h: Likewise.
6551         * config/pdp11/pdp11.h: Likewise.
6552         * config/avr/avr.h: Likewise.
6553         * config/xtensa/xtensa.h: Likewise.
6554         * config/m68hc11/m68hc11.h: Likewise.
6555         * config/mn10300/mn10300.h: Likewise.
6556         * config/mcore/mcore.h: Likewise.
6557         * config/h8300/h8300.h: Likewise.
6558         * config/bfin/bfin.h: Likewise.
6559
6560         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
6561         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
6562
6563 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
6564
6565         * double-int.h (tree_to_double_int): Remove macro.
6566         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
6567         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
6568         (tree_to_double_int): New function.
6569         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
6570         Move ...
6571         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
6572
6573 2010-05-03  Richard Guenther  <rguenther@suse.de>
6574
6575         PR tree-optimization/43971
6576         * tree-ssa-structalias.c (get_constraint_for_1): Fix
6577         constraints in the !flag_delete_null_pointer_checks case.
6578
6579 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
6580
6581         PR debug/43972
6582         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
6583         result mode matches original rtl mode.
6584
6585 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
6586
6587         PR target/43888
6588         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
6589
6590 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
6591
6592         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
6593         when processing flag options.
6594
6595 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
6596
6597         * gcov-iov.c (main): Change format string placeholder
6598         from %#08x to 0x%08x.
6599         * genchecksum.c (dosum): Change format string placeholder
6600         from %#02x to 0x%02x.
6601
6602 2010-05-02  Richard Guenther  <rguenther@suse.de>
6603
6604         PR tree-optimization/43879
6605         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
6606
6607 2010-05-02  Bruno Haible  <bruno@clisp.org>
6608
6609         * doc/extend.texi (Function Attributes): Fix a typo.
6610
6611 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
6612
6613         Revert:
6614         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
6615         placeholder from 0x%x to %#x.
6616         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
6617         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
6618         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
6619         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
6620         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
6621         * config/i386/i386.c (ix86_target_string): Ditto.
6622         * config/i386/i386.c (output_pic_addr_const): Ditto.
6623         (print_operand): Ditto.
6624
6625 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
6626
6627         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
6628         placeholder from 0x%x to %#x.
6629         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
6630         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
6631         (ASM_OUTPUT_DEBUG_DATA): Ditto.
6632         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
6633         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
6634         * optc-gen.awk: Ditto.
6635         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
6636         (HOST_WIDE_INT_PRINT_HEX): Ditto.
6637         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
6638         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
6639
6640 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
6641
6642         * target.h (struct calls): Add function_value_regno_p field.
6643         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
6644         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
6645         * targhooks.c (default_function_value_regno_p): New function.
6646         * targhooks.h (default_function_value_regno_p): Declare function.
6647         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
6648         * builtins.c. (apply_result_size): (Ditto.).
6649         * combine.c. (likely_spilled_retval_p): (Ditto.).
6650         * mode-switching.c. Include 'target.h'.
6651         (create_pre_exit): Use function_value_regno_p hook.
6652         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
6653         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
6654         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
6655
6656         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
6657         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
6658         (ix86_function_value_regno_p): Declare as static, change argument
6659         type to const unsigned int.
6660         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
6661
6662 2010-05-01  Richard Guenther  <rguenther@suse.de>
6663
6664         PR tree-optimization/43949
6665         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
6666         types.
6667         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
6668
6669 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
6670
6671         * rtl.h (CONST_DOUBLE_P): Define.
6672         (rtx_to_double_int): Declare.
6673         * emit-rtl.c (rtx_to_double_int): New function.
6674         * dwarf2out.c (insert_double): New function.
6675         (loc_descriptor, add_const_value_attribute): Clean up, use
6676         rtx_to_double_int and insert_double functions.
6677
6678 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
6679
6680         * doc/extend.texi (Inline): Add missing return keyword to examples.
6681         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
6682         "command-line".
6683
6684 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
6685
6686         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
6687         the variable part of the offset as well.  Use highest_pow2_factor for
6688         all alignment checks.
6689
6690 2010-04-30  Richard Guenther  <rguenther@suse.de>
6691
6692         PR tree-optimization/43879
6693         * tree-ssa-structalias.c (type_could_have_pointers): Functions
6694         can have pointers.
6695
6696 2010-04-30  Jan Hubicka  <jh@suse.cz>
6697
6698         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
6699         varpool.
6700         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
6701
6702 2010-04-30  Jan Hubicka  <jh@suse.cz>
6703
6704         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
6705         New.
6706         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
6707         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
6708         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
6709         cgraph_node_set_needs_ltrans_p): Remove.
6710
6711 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
6712
6713         * sdbout.c: Include vec.h, do not include varray.h.
6714         (deferred_global_decls, sdbout_global_decl,
6715         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
6716         * toplev.c: Do not include varray.h.
6717         (dump_memory_report): Do not dump VARRAY statistics.
6718         * gengtype.c (open_base_file): Ignore varray.h.
6719         * Makefile.in: Update for abovementioned changes.
6720         Remove all traces of varray.c and varray.h.
6721         * varray.c: Remove file.
6722         * varray.h: Remove file.
6723
6724 2010-04-30  Jan Hubicka  <jh@suse.cz>
6725
6726         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
6727         references.
6728
6729 2010-04-30  Jan Hubicka  <jh@suse.cz>
6730
6731         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
6732         needed.
6733
6734 2010-04-30  Richard Guenther  <rguenther@suse.de>
6735
6736         * tree-ssa-structalias.c (get_constraint_for_1): Generate
6737         constraints for CONSTRUCTOR.
6738
6739 2010-04-30  Richard Guenther  <rguenther@suse.de>
6740
6741         PR lto/43946
6742         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
6743         first after all lowering passes.
6744
6745 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
6746
6747         * toplev.c: Include varray.h for statistics dumping.
6748         * tree.h: Do not declare varray_head_tag.
6749         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
6750         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
6751         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
6752         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
6753         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
6754         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
6755         c-common.c, c-common.h, reg-stack.c, basic-block.h,
6756         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
6757         include varray.h.
6758         * Makefile.in: Update for abovementioned changes.
6759
6760 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
6761
6762         PR debug/43942
6763         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
6764
6765 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
6766
6767         * config/picochip/picochip.c (picochip_legitimize_address): Define.
6768         Use this function to do machine-specific conversion.
6769         (picochip_legitimize_reload_address): Likewise.
6770         (picochip_legitimate_address_p): Check valid base register only if
6771         strict.
6772         (picochip_check_conditional_copy): Check for modw only if opnd is
6773         register.
6774         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
6775         to call the function in c.
6776         * config/picochip/picochip-protos.h
6777         (picochip_legitimize_reload_address): Define.
6778         * config/picochip/picochip.md (supported_compare1): Define.
6779
6780 2010-04-30  Jan Hubicka  <jh@suse.cz>
6781
6782         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
6783         (cgraph_global_info): Remove inlined.
6784         (LTO_cgraph_tag_names): Remove.
6785         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
6786         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
6787         simplify cgraph tags and document.
6788         (lto_output_node): Use only LTO_cgraph_unavail_node and
6789         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
6790         for_functions_valid, global info, process and output flags.
6791         (input_overwrite_node): Initialize estimated stack size and
6792         estimated growth.  Do not read flags we no longer store.
6793         (input_node): Likewise do not read info no longer stored.
6794         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
6795         flag.
6796
6797 2010-04-30  Richard Guenther  <rguenther@suse.de>
6798
6799         PR tree-optimization/43879
6800         * tree-ssa-structalias.c (get_constraint_for_1): Properly
6801         handle non-zero initializers.
6802
6803 2010-04-30  Richard Guenther  <rguenther@suse.de>
6804
6805         * builtins.c (fold_builtin_1): Delete free (0).
6806
6807 2010-04-29  Jan Hubicka  <jh@suse.cz>
6808
6809         * gengtype.c (open_base_files): Add lto-streamer.h
6810         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
6811         (pass_ipa_cp): GGC collect.
6812         * toplev. (compile_file): Do not output symbols.
6813         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
6814         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
6815         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
6816         * lto-section-in.c: Include ggc.h
6817         (lto_new_in_decl_state): Alloc in GGC.
6818         (lto_delete_in_decl_state): Likewise.
6819         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
6820         Collect.
6821
6822 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
6823
6824         PR target/42895
6825         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
6826         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
6827         (HONOR_REG_ALLOC_ORDER): Describe new macro.
6828         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
6829         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
6830         account only if HONOR_REG_ALLOC_ORDER is not defined.
6831         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
6832         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
6833
6834 2010-04-29  Jon Grant  <04@jguk.org>
6835
6836         * collect2.c (vflag): Change type from int to bool.
6837         (debug): Likewise.
6838         (helpflag): New global bool.
6839         (main): Set vflag and debug with boolean, not integer truth values.
6840         Accept new "--help" option and output usage text if found.
6841         * collect2.h (vflag): Update prototype.
6842         (debug): Likewise.
6843
6844 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
6845
6846         PR bootstrap/43936
6847         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
6848
6849 2010-04-29  Richard Guenther  <rguenther@suse.de>
6850
6851         PR bootstrap/43935
6852         * plugin.h (invoke_plugin_callbacks): Annotate arguments
6853         with ATTRIBUTE_UNUSED.
6854
6855 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
6856
6857         PR target/43921
6858         * config/i386/i386.c (get_some_local_dynamic_name): Replace
6859         INSN_P with NONDEBUG_INSN_P.
6860         (distance_non_agu_define): Likewise.
6861         (distance_agu_use): Likewise.
6862
6863 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
6864
6865         From Dominique d'Humieres <dominiq@lps.ens.fr>
6866         PR bootstrap/43858
6867         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
6868         test_set.
6869
6870 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
6871
6872         * plugin.h (invoke_plugin_callbacks): New inline function.
6873         * plugin.c (flag_plugin_added): New global flag.
6874         (add_new_plugin): Initialize above flag.
6875         (invoke_plugin_callbacks): Rename to ...
6876         (invoke_plugin_callbacks_full): ... this.
6877
6878 2010-04-28  Jan Hubicka  <jh@suse.cz>
6879
6880         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
6881         (lto_varpool_replace_node): New.
6882         (lto_symtab_resolve_symbols): Resolve varpool nodes.
6883         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
6884         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
6885         * cgraph.h (varpool_node_ptr): New type.
6886         (varpool_node_ptr): New vector.
6887         (varpool_node_set_def): New structure.
6888         (varpool_node_set): New type.
6889         (varpool_node_set): New vector.
6890         (varpool_node_set_element_def): New structure.
6891         (varpool_node_set_element, const_varpool_node_set_element): New types.
6892         (varpool_node_set_iterator): New type.
6893         (varpool_node): Add prev pointers, add used_from_other_partition,
6894         in_other_partition.
6895         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
6896         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
6897         varpool_get_node, varpool_remove_node): Declare.
6898         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
6899         varpool_node_set_size): New inlines.
6900         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
6901         * tree-pass.h (varpool_node_set_def): Forward declare.
6902         (ipa_opt_pass_d): Summary writting takes vnode sets too.
6903         (ipa_write_optimization_summaries): Update prototype.
6904         * ipa-cp.c (ipcp_write_summary): Update.
6905         * ipa-reference.c (ipa_reference_write_summary): Update.
6906         * lto-cgraph.c (lto_output_varpool_node): New static function.
6907         (output_varpool): New function.
6908         (input_varpool_node): New static function.
6909         (input_varpool_1): New function.
6910         (input_cgraph): Input varpool.
6911         * ipa-pure-const.c (pure_const_write_summary): Update.
6912         * lto-streamer-out.c (lto_output): Update, output varpool too.
6913         (write_global_stream): Kill WPA hack.
6914         (produce_asm_for_decls): Update.
6915         (output_alias_pair_p): Handle variables.
6916         (output_unreferenced_globals): Output only needed partition of varpool.
6917         * ipa-inline.c (inline_write_summary): Update.
6918         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
6919         cgraph.
6920         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
6921         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
6922         varpool_node_set_new, varpool_node_set_add,
6923         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
6924         debug_varpool_node_set): New functions.
6925         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
6926         (execute_one_pass): Process new decls too.
6927         (ipa_write_summaries_2): Pass around vsets.
6928         (ipa_write_summaries_1): Likewise.
6929         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
6930         to add.
6931         (ipa_write_optimization_summaries_1): Pass around vsets.
6932         (ipa_write_optimization_summaries): Likewise.
6933         * varpool.c (varpool_get_node): New.
6934         (varpool_node): Update doubly linked lists.
6935         (varpool_remove_node): New.
6936         (dump_varpool_node): More dumping.
6937         (varpool_enqueue_needed_node): Update doubly linked lists.
6938         (decide_is_variable_needed): Kill ltrans hack.
6939         (varpool_finalize_decl): Kill lto hack.
6940         (varpool_assemble_decl): Skip decls in other partitions.
6941         (varpool_assemble_pending_decls): Update doubly linkes lists.
6942         (varpool_empty_needed_queue): Likewise.
6943         (varpool_extra_name_alias): Likewise.
6944         * lto-streamer.c (lto_get_section_name): Add vars section.
6945         * lto-streamer.h (lto_section_type): Update.
6946         (output_varpool, input_varpool): Declare.
6947
6948 2010-04-28  Mike Stump  <mikestump@comcast.net>
6949
6950         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
6951
6952 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
6953
6954         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
6955         record or union type with RECORD_OR_UNION_TYPE_P predicate.
6956         (lto_input_ts_type_tree_pointers): Likewise.
6957         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
6958         (lto_output_ts_type_tree_pointers): Likewise.
6959
6960 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
6961
6962         Uniquization of constants at the Tree level
6963         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
6964         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
6965         bit to the end.
6966         (tree_output_constant_def): Declare.
6967         * gimplify.c (gimplify_init_constructor): When using block copy, first
6968         uniquize the constant constructor on the RHS.
6969         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
6970         DECL_IN_CONSTANT_POOL flag.
6971         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
6972         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
6973         constant pool.
6974         (assemble_variable): Deal with symbols belonging to the tree constant
6975         pool.
6976         (get_constant_section): Add ALIGN parameter and simplify.
6977         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
6978         (assemble_constant_contents): Use the expression of the VAR_DECL.
6979         (output_constant_def_contents): Use the alignment of the VAR_DECL.
6980         (tree_output_constant_def): New global function.
6981         (mark_constant): Use the expression of the VAR_DECL.
6982         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
6983         its expression.
6984         (output_object_block): Likewise and assemble the expression.
6985
6986 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
6987
6988         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
6989         hash_tree, eq_tree): New tree hash table.
6990         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
6991         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
6992         lto_orig_address_remove): Reimplement.
6993
6994 2010-04-28  Xinliang David Li  <davidxl@google.com>
6995
6996         PR c/42643
6997         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
6998         (compute_uninit_opnds_pos): New function.
6999         (is_non_loop_exit_postdominating): New function.
7000         (compute_control_dep_chain): New function.
7001         (find_pdom): New function.
7002         (convert_control_dep_chain_into_preds): New function.
7003         (find_predicates): New function.
7004         (find_control_equiv_block): New function.
7005         (collect_phi_def_edges): New function.
7006         (find_def_preds): New function.
7007         (find_dom): New function.
7008         (dump_predicates): New function.
7009         (get_cmp_code): New function.
7010         (is_value_included_in): New function.
7011         (find_matching_predicate_in_rest_chains): New function.
7012         (use_pred_not_overlap_with_undef_path_pred): New function.
7013         (is_use_properly_guarded): New function.
7014         (normalize_cond_1): New function.
7015         (is_and_or_or): New function.
7016         (normalize_cond): New function.
7017         (is_gcond_subset_of): New function.
7018         (is_subset_of_any): New function.
7019         (is_or_set_subset_of): New function.
7020         (is_and_set_subset_of): New function.
7021         (is_norm_cond_subset_of): New function.
7022         (is_pred_expr_subset_of): New function.
7023         (is_pred_chain_subset_of): New function.
7024         (is_included_in): New function.
7025         (is_superset_of): New function.
7026         (find_uninit_use): New function.
7027         (warn_uninitialized_phi): New function.
7028         (compute_possibly_undefined_names): New function.
7029         (ssa_undefined_value_p): New function.
7030         (execute_late_warn_uninitialized): New function.
7031         * tree-ssa.c (ssa_undefined_value_p): Removed.
7032         (warn_uninit): Changed to extern.
7033         (warn_uninitialized_phi): Removed.
7034         (warn_uninitialized_vars): Changed to extern.
7035         (execute_late_warn_uninitialized): Removed
7036         * tree-flow.h: Add new prototypes.
7037         * timevar.def: Add new time variable.
7038         * Makefile.in: Add new build file.
7039
7040 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
7041
7042         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
7043         type if available.
7044
7045 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7046
7047         PR target/22224
7048         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
7049
7050 2010-04-28  Martin Jambor  <mjambor@suse.cz>
7051
7052         * cgraph.h (struct cgraph_node): New field indirect_calls.
7053         (struct cgraph_indirect_call_info): New type.
7054         (struct cgraph_edge): Removed field indirect_call. New fields
7055         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
7056         (cgraph_create_indirect_edge): Declare.
7057         (cgraph_make_edge_direct): Likewise.
7058         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
7059         * ipa-prop.h (struct ipa_param_call_note): Removed.
7060         (struct ipa_node_params): Removed field param_calls.
7061         (ipa_create_all_structures_for_iinln): Declare.
7062         * cgraph.c: Described indirect edges and uids in initial comment.
7063         (cgraph_add_edge_to_call_site_hash): New function.
7064         (cgraph_edge): Search also among the indirect edges, use
7065         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
7066         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
7067         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
7068         site hash.
7069         (initialize_inline_failed): Assign a reason to indirect edges.
7070         (cgraph_create_edge_1): New function.
7071         (cgraph_create_edge): Moved some functionality to
7072         cgraph_create_edge_1.
7073         (cgraph_create_indirect_edge): New function.
7074         (cgraph_edge_remove_callee): Add an assert checking for
7075         non-indirectness.
7076         (cgraph_edge_remove_caller): Special-case indirect edges.
7077         (cgraph_remove_edge): Likewise.
7078         (cgraph_set_edge_callee): New function.
7079         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
7080         (cgraph_make_edge_direct): New function.
7081         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
7082         the declaration of the call statement matches.
7083         (cgraph_node_remove_callees): Special-case indirect edges.
7084         (cgraph_clone_edge): Likewise.
7085         (cgraph_clone_node): Clone also the indirect edges.
7086         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
7087         indirect_call, dump count of indirect_calls edges.
7088         * ipa-prop.c (iinlining_processed_edges): New variable.
7089         (ipa_note_param_call): Create indirect edges instead of
7090         creating notes.  New parameter node.
7091         (ipa_analyze_call_uses): New parameter node, pass it on to
7092         ipa_note_param_call.
7093         (ipa_analyze_stmt_uses): Likewise.
7094         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
7095         (print_edge_addition_message): Work on edges rather than on notes.
7096         (update_call_notes_after_inlining): Likewise, renamed to
7097         update_indirect_edges_after_inlining.
7098         (ipa_create_all_structures_for_iinln): New function.
7099         (ipa_free_node_params_substructures): Do not free notes.
7100         (ipa_edge_duplication_hook): Propagate bits within
7101         iinlining_processed_edges bitmap.
7102         (ipa_node_duplication_hook): Do not duplicate notes.
7103         (free_all_ipa_structures_after_ipa_cp): Renamed to
7104         ipa_free_all_structures_after_ipa_cp.
7105         (free_all_ipa_structures_after_iinln): Renamed to
7106         ipa_free_all_structures_after_iinln.
7107         (ipa_write_param_call_note): Removed.
7108         (ipa_read_param_call_note): Removed.
7109         (ipa_write_indirect_edge_info): New function.
7110         (ipa_read_indirect_edge_info): Likewise.
7111         (ipa_write_node_info): Do not stream notes, do stream information
7112         in indirect edges.
7113         (ipa_read_node_info): Likewise.
7114         (lto_ipa_fixup_call_notes): Removed.
7115         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
7116         * ipa-inline.c (pass_ipa_inline): Likewise.
7117         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
7118         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
7119         * tree-inline.c (copy_bb): Removed an unnecessary double check for
7120         is_gimple_call.
7121         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
7122         edges.
7123         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
7124         (output_cgraph): Stream also indirect edges.
7125         (lto_output_edge): Added capability to stream indirect edges.
7126         (input_edge): Likewise.
7127         (input_cgraph_1): Likewise.
7128         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
7129         of indirect edges.
7130
7131 2010-04-28  Richard Guenther  <rguenther@suse.de>
7132
7133         PR tree-optimization/43879
7134         PR tree-optimization/43909
7135         * tree-ssa-structalias.c (struct variable_info): Add
7136         only_restrict_pointers flag.
7137         (new_var_info): Initialize it.  Increment stats.total_vars here.
7138         (create_function_info_for): Do not increment stats.total_vars here.
7139         (get_function_part_constraint): Fix build with C++.
7140         (insert_into_field_list): Remove.
7141         (push_fields_onto_fieldstack): Properly merge fields.
7142         (create_variable_info_for): Split and simplify.
7143         (create_variable_info_for_1): New piece.
7144         (intra_create_variable_infos): Properly make restrict constraints
7145         from parameters.
7146
7147 2010-04-28  Richard Guenther  <rguenther@suse.de>
7148
7149         PR c++/43880
7150         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
7151
7152 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7153             Jan Hubicka <hubicka@ucw.cz>
7154
7155         * doc/invoke.texi (-Wsuggest-attribute=const,
7156         -Wsuggest-attribute=pure): Document.
7157         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
7158         (function_always_visible_to_compiler_p,
7159         suggest_attribute, warn_function_pure, warn_function_const):
7160         New functions.
7161         (check_call): Improve debug info.
7162         (analyze_function): Do not check availability.
7163         (add_new_function): Check availability.
7164         (propagate): Output warnings.
7165         (skip_function_for_local_pure_const): New function.
7166         (local_pure_const): Use it; output warnings.
7167         * common.opt (Wsuggest-attribute=const,
7168         Wsuggest-attribute=pure): New.
7169
7170 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
7171
7172         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
7173         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
7174         or DW_CFA_def_cfa_offset{,_sf}.
7175
7176 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
7177
7178         * tree.h: Fix truncated long macros.
7179
7180 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
7181
7182         * collect2.c (TARGET_64BIT): Redefine to target's default.
7183         * tlink.c: Likewise.
7184         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
7185         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
7186         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
7187         for underscoring __USER_LABEL_PREFIX__.
7188         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
7189         (SUB_LINK_ENTRY32): New.
7190         (SUB_LINK_ENTRY64): New.
7191         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
7192         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
7193         (SUB_LINK_ENTRY64): New.
7194         (SUB_LINK_ENTRY): New.
7195         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
7196         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
7197         x64 target is choosen.
7198         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
7199         * configure: Regenerated.
7200         * configure.ac (leading-mingw64-underscores): Option added.
7201
7202 2010-04-27  Jan Hubicka  <jh@suse.cz>
7203
7204         * doc/invoke.texi (-fipa-profile): Document.
7205         * opts.c (decode_options): Enable ipa-profile at -O1.
7206         * timevar.def (TV_IPA_PROFILE): Define.
7207         * common.opt (fipa-profile): Add.
7208         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
7209         flag for clones.
7210         (cgraph_propagate_frequency): Handle only local ones.
7211         * tree-pass.h (pass_ipa_profile): Declare.
7212         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
7213         (pass_ipa_profile): Use TV_IPA_PROFILE.
7214         * ipa.c (ipa_profile): New function.
7215         (gate_ipa_profile): Likewise.
7216         (pass_ipa_profile): New global variable.
7217         * passes.c (pass_ipa_profile): New.
7218
7219 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
7220
7221         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
7222
7223 2010-04-27  Martin Jambor  <mjambor@suse.cz>
7224
7225         PR middle-end/43812
7226         * ipa.c (dissolve_same_comdat_group_list): New function.
7227         (function_and_variable_visibility): Call
7228         dissolve_same_comdat_group_list when comdat group contains external or
7229         newly local nodes.
7230         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
7231         lists are circular and that they contain only DECL_ONE_ONLY nodes.
7232
7233 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
7234
7235         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
7236         (const_hash_1) <VECTOR_CST>: New case.
7237         (compare_constant) <VECTOR_CST>: Likewise.
7238         <ADDR_EXPR>: Deal with LABEL_REFs.
7239         (copy_constant) <VECTOR_CST>: New case.
7240
7241 2010-04-27  Jan Hubicka  <jh@suse.cz>
7242
7243         * cgraph.c (cgraph_propagate_frequency): New function.
7244         * cgraph.h (cgraph_propagate_frequency): Declare.
7245         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
7246         cgraph_propagate_frequency.
7247
7248 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
7249
7250         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
7251
7252 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
7253
7254         PR target/40657
7255         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
7256         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
7257         here to determine which regs to push and how much stack to reserve.
7258
7259 2010-04-27  Jie Zhang  <jie@codesourcery.com>
7260
7261         * doc/gimple.texi (gimple_statement_with_ops): Remove
7262         addresses_taken field.
7263         (gimple_statement_with_memory_ops): Likewise.
7264
7265 2010-04-27  Jan Hubicka  <jh@suse.cz>
7266
7267         * tree-inline.c (eni_inlining_weights): Remove.
7268         (estimate_num_insns): Special case more builtins.
7269
7270 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
7271
7272         PR c/32207
7273         * c-typeck.c (build_binary_op): Move forward check for comparison
7274         pointer with null pointer constant and adjust the diagnostic message.
7275
7276 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
7277
7278         PR lto/42776
7279         * configure.ac (gcc_cv_as_section_has_align): Set if installed
7280         binutils supports extended .section directive needed by LTO, or
7281         warn if older binutils found.
7282         (LTO_BINARY_READER): New AC_SUBST'd variable.
7283         (LTO_USE_LIBELF): Likewise.
7284         * gcc/config.gcc (lto_binary_reader): New target-specific configure
7285         variable.
7286         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
7287         (LTO_USE_LIBELF): Likewise.
7288         * configure: Regenerate.
7289
7290         * collect2.c (is_elf): Rename from this ...
7291         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
7292          object files in addition to ELF-formatted ones.
7293         (scan_prog_file): Caller updated.  Also allow for LTO info marker
7294         symbol to be prefixed or not by an extra underscore.
7295
7296         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
7297         * config/i386/winnt.c: Also #include lto-streamer.h
7298         (i386_pe_asm_named_section): Specify 1-byte section alignment for
7299         LTO named sections.
7300         (i386_pe_asm_output_aligned_decl_common): Add comment.
7301         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
7302
7303 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
7304
7305         PR target/43889
7306         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
7307         Add missing earlyclobber for second alternative.
7308
7309 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
7310
7311         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
7312         bits for artificial defs at the top of the block.
7313         * fwprop.c (single_def_use_enter_block): Don't call it.
7314
7315 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
7316
7317         PR 43715
7318         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
7319         instead of "$gcc_cv_objdump -T".
7320         Use "-undefined dynamic_lookup" on darwin.
7321         * gcc/configure: Regenerate.
7322
7323 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
7324
7325         PR c/43893
7326         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
7327
7328 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
7329
7330         * c-parser.c (struct c_token): Move location field up.
7331         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
7332         (struct c_declspecs): Convert typespec_word, storage_class, and
7333         default_int_p into bitfields.
7334         (struct c_declarator): Move loc field up.
7335
7336 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
7337
7338         * cfgloop.h (struct loop): Move can_be_parallel field up.
7339         * ipa-prop.h (struct ip_node_params): Move bitfields up.
7340         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
7341         down.
7342         (struct iv_cand): Convert pos field into a bitfield.
7343         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
7344         field up.
7345         (struct _stmt_vec_info): Shuffle fields for better packing.
7346
7347 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
7348
7349         * varasm.c (IN_NAMED_SECTION): Remove guard.
7350         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
7351         (IN_NAMED_SECTION_P): ...this.
7352         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
7353         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
7354
7355 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
7356
7357         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
7358         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
7359         of shadowing it.  Fix comments.
7360
7361 2010-04-26  Jan Hubicka  <jh@suse.cz>
7362
7363         * cgraph.c (cgraph_create_node): Set node frequency to normal.
7364         (cgraph_clone_node): Copy function frequency.
7365         * cgraph.h (node_frequency): New enum
7366         (struct cgraph_node): Add.
7367         * final.c (rest_of_clean_state): Update.
7368         * lto-cgraph.c (lto_output_node): Output node frequency.
7369         (input_overwrite_node): Input node frequency.
7370         * tre-ssa-loop-ivopts (computation_cost): Update.
7371         * lto-streamer-out.c (output_function): Do not output function
7372         frequency.
7373         * predict.c (maybe_hot_frequency_p): Update and handle functions
7374         executed once.
7375         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
7376         attribute lookup.
7377         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
7378         (compute_function_frequency): Set noreturn functions to be executed
7379         once.
7380         (choose_function_section): Update.
7381         * lto-streamer-in.c (input_function): Do not input function frequency.
7382         * function.c (allocate_struct_function): Do not initialize function
7383         frequency.
7384         * function.h (function_frequency): Remove.
7385         (struct function): Remove function frequency.
7386         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
7387         (try_update): Update.
7388         * tree-inline.c (initialize_cfun): Do not update function frequency.
7389         * passes.c (pass_init_dump_file): Update.
7390         * i386.c (ix86_compute_frame_layout): Update.
7391         (ix86_pad_returns): Update.
7392
7393 2010-04-26  Jie Zhang  <jie@codesourcery.com>
7394
7395         PR tree-optimization/43833
7396         * tree-vrp.c (range_int_cst_p): New.
7397         (range_int_cst_singleton_p): New.
7398         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
7399         when both operands are constants.  Use range_int_cst_p in
7400         BIT_IOR_EXPR case.
7401
7402 2010-04-26  Jan Hubicka  <jh@suse.cz>
7403
7404         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
7405
7406 2010-04-26  Richard Guenther  <rguenther@suse.de>
7407
7408         PR lto/43080
7409         * gimple.c (gimple_decl_printable_name): Deal gracefully
7410         with a NULL DECL_NAME.
7411
7412 2010-04-26  Richard Guenther  <rguenther@suse.de>
7413
7414         PR lto/42425
7415         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
7416         if emitting debug information and it is either a function
7417         or a namespace decl.
7418
7419 2010-04-26  Ira Rosen  <irar@il.ibm.com>
7420
7421         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
7422         determine if the statement is vectorizable, and a macro to access it.
7423         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
7424         Skip statements that can't be vectorized. If the analysis fails,
7425         mark the statement as unvectorizable if vectorizing basic block.
7426         (vect_compute_data_refs_alignment): Likewise.
7427         (vect_verify_datarefs_alignment): Skip statements marked as
7428         unvectorizable. Add print.
7429         (vect_analyze_group_access): Skip statements that can't be
7430         vectorized. If the analysis fails, mark the statement as
7431         unvectorizable if vectorizing basic block.
7432         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
7433         * tree-vect-stmts.c (vectorizable_store): Fix the number of
7434         generated stmts for SLP.
7435         (new_stmt_vec_info): Initialize the new field.
7436         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
7437         statements marked as unvectorizable.
7438
7439 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
7440
7441         * c-common.c (flag_isoc1x): New.
7442         (flag_isoc99): Update comment.
7443         * c-common.h (flag_isoc1x): New.
7444         (flag_isoc99): Update comment.
7445         * c-cppbuiltin.c (builtin_define_float_constants): Also define
7446         __<type>_DECIMAL_DIG__.
7447         * c-opts.c (set_std_c1x): New.
7448         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
7449         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
7450         * c.opt (-std=c1x, -std=gnu1x): New options.
7451         * doc/cpp.texi: Mention -std=c1x.
7452         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
7453         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
7454         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
7455         * doc/standards.texi: Mention C1X.
7456         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
7457         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
7458         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
7459         Define for C1X.
7460
7461 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
7462
7463         * config/i386/gmon-sol2.c (_mcleanup): Change format string
7464         placeholder from 0x%x to %#x.
7465         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
7466         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
7467         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
7468         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
7469         * config/i386/i386.c (ix86_target_string): Ditto.
7470         (output_pic_addr_const): Ditto.
7471         (print_operand): Ditto.
7472
7473 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
7474
7475         * combine.c (find_split_point): Add third argument.  Use it
7476         to find nested multiply-accumulate instructions.  Adjust calls.
7477         (try_combine): Adjust call to find_split_point.
7478
7479 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
7480
7481         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
7482
7483 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
7484
7485         PR tree-optimization/41442
7486         * fold-const.c (merge_truthop_with_opposite_arm): New function.
7487         (fold_binary_loc): Call it.
7488
7489 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7490
7491         * toplev.c (general_init): Set default for fdiagnostics-show-option.
7492         * opts.c (common_handle_option): Allow disabling it.
7493         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
7494
7495 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
7496
7497         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
7498         between modes if both types are integral.
7499
7500 2010-04-23  Richard Guenther  <rguenther@suse.de>
7501
7502         PR tree-optimization/43572
7503         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
7504
7505 2010-04-23  Richard Guenther  <rguenther@suse.de>
7506
7507         PR lto/43455
7508         * tree-inline.c (tree_can_inline_p): Also check compatibility
7509         of return types.
7510
7511 2010-04-23  Martin Jambor  <mjambor@suse.cz>
7512
7513         PR tree-optimization/43846
7514         * tree-sra.c (struct access): New flag grp_assignment_read.
7515         (build_accesses_from_assign): Set grp_assignment_read.
7516         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
7517         (enum mark_read_status): New type.
7518         (analyze_access_subtree): Propagate grp_assignment_read, create
7519         accesses also if both direct_read and root->grp_assignment_read.
7520
7521 2010-04-23  Martin Jambor  <mjambor@suse.cz>
7522
7523         PR middle-end/43835
7524         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
7525         function does not have type attributes.
7526
7527 2010-04-23  Richard Guenther  <rguenther@suse.de>
7528
7529         PR lto/42653
7530         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
7531         of FUNCTION_DECLs.
7532
7533 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7534
7535         * sese.h (create_if_region_on_edge): Remove.
7536
7537         * sese.c (create_if_region_on_edge): Make static.
7538
7539         * tree-inline.c: Do not include ggc.h.
7540
7541         * expr.c: Do not include ggc.h.
7542
7543         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
7544         dependencies.
7545
7546 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
7547
7548         PR target/43744
7549         * config/sh/sh.c (find_barrier): Don't emit a constant pool
7550         in the middle of insns for casesi_worker_2.
7551
7552 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
7553
7554         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
7555
7556 2010-04-22  Ira Rosen  <irar@il.ibm.com>
7557
7558         PR tree-optimization/43842
7559         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
7560         loop unrolling in update of exit phis. Fix comment.
7561         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
7562         least two reduction statements in the loop before starting SLP
7563         analysis.
7564
7565 2010-04-22  Nick Clifton  <nickc@redhat.com>
7566
7567         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
7568
7569 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
7570
7571         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
7572         to simplify a + ~a.
7573
7574 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7575
7576         * tree-parloops.c (loop_parallel_p): New argument
7577         parloop_obstack.  Pass it down.
7578         (parallelize_loops): New variable parloop_obstack.  Initialize it,
7579         pass it down, free it.
7580
7581         * tree-loop-linear.c (linear_transform_loops): Pass down
7582         lambda_obstack.
7583
7584         * tree-data-ref.h (lambda_compute_access_matrices): New argument
7585         of type struct obstack *.
7586
7587         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
7588         scratch_obstack.  Initialize it, pass down, free it.
7589
7590         * lambda.h (lambda_loop_new): Remove.
7591         (lambda_matrix_new, lambda_matrix_inverse)
7592         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
7593         argument of type struct obstack *.
7594
7595         * lambda-trans.c (lambda_trans_matrix_new): New argument
7596         lambda_obstack.  Pass it down, use obstack allocation for ret.
7597         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
7598         it down.
7599
7600         * lambda-mat.c (lambda_matrix_get_column)
7601         (lambda_matrix_project_to_null): Remove.
7602         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
7603         allocation for mat.
7604         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
7605         lambda_obstack.
7606
7607         * lambda-code.c (lambda_loop_new): New function.
7608         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
7609         (lambda_compute_auxillary_space, lambda_compute_target_space)
7610         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
7611         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
7612         (build_access_matrix): New argument lambda_obstack.  Use obstack
7613         allocation for am.
7614         (lambda_compute_step_signs, lambda_compute_access_matrices): New
7615         argument lambda_obstack.  Pass it down.
7616
7617 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
7618
7619         * optabs.h (expand_widening_mult): Declare.
7620
7621 2010-04-22  Richard Guenther  <rguenther@suse.de>
7622
7623         PR tree-optimization/43845
7624         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
7625         lookup the CALL_EXPR function and arguments.
7626
7627 2010-04-22  Nick Clifton  <nickc@redhat.com>
7628
7629         * config/stormy16/stormy16.c
7630         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
7631         * config/stormy16/stormy16.h: Tidy up formatting.
7632         (DONT_USE_BUILTIN_SETJMP): Remove definition.
7633         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
7634         (ineqbranchsi): Delete pattern.
7635         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
7636         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
7637         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
7638         stormy16-lib2-ucmpsi2.c.
7639
7640 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
7641
7642         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
7643         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
7644         extra set merge_set_noclobber, and use it to relax the final test
7645         slightly.
7646         * df.h (df_simulate_find_noclobber_defs): Declare.
7647         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
7648         conditional defs.
7649         (df_simulate_find_noclobber_defs): New function.
7650
7651 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
7652
7653         * config/i386/i386.md: Use {} around multi-line preparation statements.
7654
7655 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7656
7657         * c-tree.h (push_init_level, pop_init_level, set_init_index)
7658         (process_init_element): New argument of type struct obstack *.
7659
7660         * c-typeck.c (push_init_level, pop_init_level, set_designator)
7661         (set_init_index, set_init_label, set_nonincremental_init)
7662         (set_nonincremental_init_from_string, find_init_member)
7663         (output_init_element, output_pending_init_elements)
7664         (process_init_element): New argument braced_init_obstack.  Pass it
7665         down.
7666         (push_range_stack, add_pending_init): New argument
7667         braced_init_obstack.  Use obstack allocation.
7668
7669         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
7670         braced_init_obstack.  Pass it down.
7671         (c_parser_braced_init): New variables ret, braced_init_obstack.
7672         Initialize obstack, pass it down and finally free it.
7673
7674 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
7675
7676         PR middle-end/29274
7677         * tree-pass.h (pass_optimize_widening_mul): Declare.
7678         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
7679         gate_optimize_widening_mul): New static functions.
7680         (pass_optimize_widening_mul): New.
7681         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
7682         <case MULT_EXPR>: Remove support for widening multiplies.
7683         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
7684         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
7685         simplify_gen_unary rather than directly building extensions.
7686         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
7687         WIDEN_MULT_EXPR.
7688         * expmed.c (expand_widening_mult): New function.
7689         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
7690
7691 2010-04-21  Jan Hubicka  <jh@suse.cz>
7692
7693         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
7694         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
7695         * lto-wpa-fixup.c: Remove.
7696         * Makefile.in (lto-wpa-fixup.o): Remove.
7697         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
7698         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
7699         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
7700
7701 2010-04-21  Jan Hubicka  <jh@suse.cz>
7702
7703         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
7704         add write_optimization_summary, read_optimization_summary.
7705         (ipa_write_summaries_of_cgraph_node_set): Remove.
7706         (ipa_write_optimization_summaries): Declare.
7707         (ipa_read_optimization_summaries): Declare.
7708         * ipa-cp.c (pass_ipa_cp): Update.
7709         * ipa-reference.c (pass_ipa_reference): Update.
7710         * ipa-pure-const.c (pass_ipa_pure_const): Update.
7711         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
7712         Update.
7713         * ipa-inline.c (pass_ipa_inline): Update.
7714         * ipa.c (pass_ipa_whole_program): Update.
7715         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
7716         * passes.c (ipa_write_summaries_1): Do not test wpa.
7717         (ipa_write_optimization_summaries_1): New.
7718         (ipa_write_optimization_summaries): New.
7719         (ipa_read_summaries): Do not test ltrans.
7720         (ipa_read_optimization_summaries_1): New.
7721         (ipa_read_optimization_summaries): New.
7722
7723 2010-04-21  Jan Hubicka  <jh@suse.cz>
7724
7725         * lto-cgraph.c (lto_output_node): Do not output comdat groups
7726         for boundary nodes.
7727         (output_cgraph): Do not arrange comdat groups for boundary nodes.
7728
7729 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
7730
7731         PR debug/40040
7732         * dwarf2out.c (add_name_and_src_coords_attributes): Add
7733         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
7734
7735 2010-04-21  Jan Hubicka  <jh@suse.cz>
7736
7737         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
7738
7739 2010-04-21  Jan Hubicka  <jh@suse.cz>
7740
7741         * varpool.c (decide_is_variable_needed): Variable is always needed
7742         during ltrans.
7743
7744 2010-04-21  Jan Hubicka  <jh@suse.cz>
7745
7746         * opts.c (decode_options): Enable pure-const pass for whopr.
7747
7748 2010-04-21  Jan Hubicka  <jh@suse.cz>
7749
7750         * cgraph.c (dump_cgraph_node): Dump also assembler name.
7751         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
7752         at WPA dumping.
7753         (cgraph_decide_inlining): Do not expect callee to be removed in all
7754         cases.
7755
7756 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
7757
7758         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
7759
7760 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
7761
7762         * config/i386/i386.md (x86_shrd): Add athlon_decode and
7763         amdfam10_decode attributes.
7764
7765 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
7766
7767         PR middle-end/43570
7768         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
7769         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
7770         (lower_copyprivate_clauses): Use private var in outer
7771         context instead of original var.  Make sure the types
7772         are correct for VLAs.
7773
7774 2010-04-21  Richard Guenther  <rguenther@suse.de>
7775
7776         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
7777         to non-pointer objects.
7778
7779 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
7780
7781         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
7782         last chain entry if it starts with the still current label.
7783         (add_location_or_const_value_attribute): Check that
7784         loc_list->first->next is NULL instead of comparing ->first with ->last.
7785         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
7786         to add_var_loc_to_decl.
7787
7788         * dwarf2out.c (output_call_frame_info): For dw_cie_version
7789         >= 4 add also address size and segment size fields into CIE header.
7790
7791         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
7792         long as address size is the same as sizeof (void *) and
7793         segment size is 0.
7794         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
7795         address size or segment size is unexpected, return DW_EH_PE_omit.
7796         (classify_object_over_fdes): If get_cie_encoding returned
7797         DW_EH_PE_omit, return -1.
7798         (init_object): If classify_object_over_fdes returned -1,
7799         pretend there were no FDEs at all.
7800
7801 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
7802
7803         * config/i386/i386.md (bswap<mode>2): Macroize expander from
7804         bswap{si,di}2 using SWI48 mode iterator.
7805         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
7806         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
7807         set modrm attribute of bswap insn to 0 and remove length attribute.
7808         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
7809         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
7810         set mode attribute to <MODE> and remove length attribute.
7811
7812 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
7813
7814         PR rtl-optimization/43520
7815         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
7816         zero available registers.
7817
7818 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7819
7820         * builtins.c (fold_builtin_cproj): Fold more cases.
7821
7822 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7823
7824         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
7825         (fold_builtin_1): Fold builtin cproj.
7826         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
7827         Use ATTR_CONST_NOTHROW_LIST.
7828
7829 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
7830
7831         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
7832         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
7833         ffsi2_no_cmove for !TARGET_CMOVE.
7834         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
7835         (ffssi2): Remove expander.
7836         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
7837         mode iterator.
7838         (ctz<mode>2): Ditto from ctz{si,di}2.
7839         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
7840         mode iterator.
7841         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
7842         mode iterator.
7843
7844 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
7845
7846         * dwarf2out.c (AT_linkage_name): Define.
7847         (clone_as_declaration): Handle DW_AT_linkage_name.
7848         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
7849         of DW_AT_MIPS_linkage_name.
7850         (move_linkage_attr): Likewise.
7851         (dwarf2out_finish): Likewise.
7852
7853 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
7854
7855         PR middle-end/41952
7856         * fold-const.c (fold_comparison): New folding rule.
7857
7858 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
7859
7860         * double-int.h (double_int_setbit): Declare.
7861         * double-int.c (double_int_setbit): New function.
7862         * rtl.h (immed_double_int_const): Declare.
7863         * emit-rtl.c (immed_double_int_const): New function.
7864         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
7865         and immed_double_int_const functions.
7866         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
7867         expand_copysign_bit):  (Ditto.).
7868         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
7869         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
7870         * dojump.c (prefer_and_bit_test): (Ditto.).
7871         * expr.c (convert_modes, reduce_to_bit_field_precision,
7872         const_vector_from_tree): (Ditto.).
7873         * expmed.c (mask_rtx, lshift_value): (Ditto.).
7874
7875 2010-04-20  Jan Hubicka  <jh@suse.cz>
7876
7877         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
7878         (dump_cgraph_node): Dump new flags.
7879         * cgraph.h (struct cgraph_node): Add flags
7880         reachable_from_other_partition and in_other_partition.
7881         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
7882         other partition can not be removed.
7883         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
7884         the other partition must be output; silence sanity checking on
7885         leaking functions bodies from other paritition.
7886         * lto-cgraph.c (reachable_from_other_partition_p): New function.
7887         (lto_output_node): Output new flags; do not sanity check that inline
7888         clones are output; drop lto_forced_extern_inline_p code; do not mock
7889         visibility flags at partition boundaries.
7890         (add_node_to): New function.
7891         (output_cgraph): Use it to sort functions so masters appear before
7892         clones.
7893         (input_overwrite_node): Input new flags.
7894         * passes.c (ipa_write_summaries): Do not call
7895         lto_new_extern_inline_states.
7896         * lto-section-out.c (forced_extern_inline,
7897         lto_new_extern_inline_states lto_delete_extern_inline_states,
7898         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
7899         * lto-streamer.h (lto_new_extern_inline_states,
7900         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
7901         lto_forced_extern_inline_p): Kill.
7902
7903 2010-04-20  Richard Guenther  <rguenther@suse.de>
7904
7905         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
7906         from vars that can have pointers.
7907         (process_constraint): Dump useless constraints.
7908
7909 2010-04-20  Richard Guenther  <rguenther@suse.de>
7910
7911         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
7912         (dump_sa_points_to_info): Remove asserts.
7913         (init_base_vars): nothing_id isn't an escape point nor does it
7914         have pointers.
7915
7916 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
7917
7918         * tree.h (TYPE_REF_IS_RVALUE): Define.
7919         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
7920         should_move_die_to_comdat, prune_unused_types_walk): Handle
7921         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
7922         (modified_type_die, gen_reference_type_die): Emit
7923         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
7924         if TYPE_REF_IS_RVALUE and -gdwarf-4.
7925
7926 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7927
7928         PR target/43635
7929         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
7930         calls for -fpic -m31 if they have been sibcall optimized.
7931
7932 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
7933
7934         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
7935         ar.lc fixed and call-used.
7936
7937         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
7938
7939 2010-04-19  Jan Hubicka  <jh@suse.cz>
7940
7941         * opts.c (decode_options): Disable whpr incompatible passes.
7942         * lto/lto.c (lto_1_to_1_map): Skip clones.
7943         (read_cgraph_and_symbols): Do not mark everything as needed.
7944         (do_whole_program_analysis): Do map only after optimizing;
7945         set proper cgraph_state; use passmanager.
7946
7947 2010-04-19  DJ Delorie  <dj@redhat.com>
7948
7949         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
7950         POINTER_PLUS_EXPR and fix them.
7951
7952 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
7953
7954         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
7955         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
7956         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
7957         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
7958         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
7959         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
7960         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
7961         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
7962         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
7963         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
7964         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
7965
7966 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
7967
7968         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
7969         (check_cond_move_block): Likewise.
7970         (cond_move_process_if_block): Likewise.
7971         (noce_find_if_block): Improve formatting.
7972         (find_if_header): Pass 0 to memset and tweak conditions.
7973         (cond_exec_find_if_block): Fix long lines and tweak conditions.
7974
7975 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
7976
7977         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
7978         for -gdwarf-4.
7979
7980         PR middle-end/43337
7981         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
7982         with non-local decl doesn't need chain.
7983
7984 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
7985
7986         * ira-color.c (allocno_reload_assign): Avoid accumulating
7987         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
7988
7989 2010-04-19  Martin Jambor  <mjambor@suse.cz>
7990
7991         * gimple.h (create_tmp_reg): Declare.
7992         * gimplify.c (create_tmp_reg): New function.
7993         (gimplify_return_expr): Use create_tmp_reg.
7994         (gimplify_omp_atomic): Likewise.
7995         (gimple_regimplify_operands): Likewise.
7996         * tree-dfa.c (make_rename_temp): Likewise.
7997         * tree-predcom.c (predcom_tmp_var): Likewise.
7998         (reassociate_to_the_same_stmt): Likewise.
7999         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
8000         (get_replaced_param_substitute): Likewise.
8001         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
8002         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
8003         * tree-ssa-pre.c (get_representative_for): Likewise.
8004         (create_expression_by_pieces): Likewise.
8005         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
8006         (create_tailcall_accumulator): Likewise.
8007
8008 2010-04-19  Martin Jambor  <mjambor@suse.cz>
8009
8010         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
8011         new_stmt.
8012         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
8013
8014 2010-04-19  Richard Guenther  <rguenther@suse.de>
8015
8016         PR tree-optimization/43796
8017         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
8018         from SCEV in the lattice.
8019         (vrp_visit_phi_node): Dump change.
8020
8021 2010-04-19  Richard Guenther  <rguenther@suse.de>
8022
8023         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
8024         * configure: Re-generated.
8025
8026 2010-04-19  Richard Guenther  <rguenther@suse.de>
8027
8028         PR tree-optimization/43783
8029         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
8030         constant ARRAY_REF operands two and three if possible.
8031
8032 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
8033
8034         PR target/43766
8035         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
8036
8037 2010-04-19  Jie Zhang  <jie@codesourcery.com>
8038
8039         PR target/43662
8040         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
8041
8042 2010-04-19  Ira Rosen  <irar@il.ibm.com>
8043
8044         PR tree-optimization/37027
8045         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
8046         and macro to access it.
8047         (vectorizable_reduction): Add argument.
8048         (vect_get_slp_defs): Likewise.
8049         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
8050         statements for possible use in SLP.
8051         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
8052         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
8053         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
8054         add new argument.
8055         (vectorizable_reduction): Likewise.
8056         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
8057         vect_get_slp_defs.
8058         (vectorizable_type_demotion, vectorizable_type_promotion,
8059         vectorizable_store): Likewise.
8060         (vect_analyze_stmt): Update call to vectorizable_reduction.
8061         (vect_transform_stmt): Likewise.
8062         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
8063         (vect_build_slp_tree): Fix indentation. Check that there are no loads
8064         from different interleaving chains in same node.
8065         (vect_slp_rearrange_stmts): New function.
8066         (vect_supported_load_permutation_p): Allow load permutations for
8067         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
8068         inside SLP nodes if necessary.
8069         (vect_analyze_slp_instance): Handle reductions.
8070         (vect_analyze_slp): Try to build SLP instances originating from groups
8071         of reductions.
8072         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
8073         (vect_get_constant_vectors): Create initial vectors for reductions
8074         according to reduction code. Add new argument.
8075         (vect_get_slp_defs): Add new argument, pass it to
8076         vect_get_constant_vectors.
8077         (vect_schedule_slp_instance): Remove SLP tree root statements.
8078
8079 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
8080
8081         * tree.h (ENUM_IS_SCOPED): Define.
8082         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
8083         for ENUM_IS_SCOPED enums.
8084
8085 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
8086
8087         * fold-const.c (fold_comparison): Use ssizetype.
8088         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
8089         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
8090         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
8091         * tree-object-size.c (compute_object_sizes): Use size_type_node.
8092
8093         * tree.h (initialize_sizetypes): Remove parameter.
8094         (build_common_tree_nodes): Remove second parameter.
8095         * stor-layout.c (initialize_sizetypes): Remove parameter.
8096         Always create an unsigned type.
8097         (set_sizetype): Assert that the passed type is unsigned and simplify.
8098         * tree.c (build_common_tree_nodes): Remove second parameter.
8099         Adjust call to initialize_sizetypes.
8100         * c-decl.c (c_init_decl_processing): Remove second argument in call to
8101         build_common_tree_nodes.
8102
8103 2010-04-18  Matthias Klose  <doko@ubuntu.com>
8104
8105         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
8106
8107 2010-04-18  Ira Rosen  <irar@il.ibm.com>
8108
8109         PR tree-optimization/43771
8110         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
8111         load permutation doesn't have gaps.
8112
8113 2010-04-18  Jan Hubicka  <jh@suse.cz>
8114
8115         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
8116         (sse_prologue_save_insn expander): Use new pattern.
8117         (sse_prologue_save_insn1): New pattern and splitter.
8118         (sse_prologue_save_insn): Update to deal also with 64bit aligned
8119         blocks.
8120         * i386.c (setup_incoming_varargs_64): Do not compute jump
8121         destination here.
8122         (ix86_gimplify_va_arg): Update alignment needed.
8123         (ix86_local_alignment): Do not align all local arrays to 128bit.
8124
8125 2010-04-17  Jan Hubicka  <jh@suse.cz>
8126
8127         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
8128
8129 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
8130
8131         * arm.md (negdi2): Remove redundant code to force values into a
8132         register.
8133
8134 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
8135
8136         * arm/bpabi.S: Add EABI alignment attributes to objects.
8137         * arm/bpabi-v6m.S: Likewise.
8138         * arm/crti.asm: Likewise.
8139         * arm/crtn.asm: Likewise.
8140         * arm/lib1funcs.asm: Likewise.
8141         * arm/libunwind.S: Likewise.
8142
8143 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
8144
8145         * arm-protos.h (tune_params): New structure.
8146         * arm.c (current_tune): New variable.
8147         (arm_constant_limit): Delete.
8148         (struct processors): Add pointer to the tune parameters.
8149         (arm_slowmul_tune): New tuning option.
8150         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
8151         (all_cores): Adjust to pick up the tuning model.
8152         (arm_constant_limit): New function.
8153         (arm_override_options): Select the appropriate tuning model.  Delete
8154         initialization of arm_const_limit.
8155         (arm_split_constant): Use the new constant-limit model.
8156         (arm_rtx_costs): Pick up the current tuning model.
8157         * arm.md (is_strongarm, is_xscale): Delete.
8158         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
8159         for Xscale variant architectures.
8160         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
8161
8162 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8163
8164         * config/arm/arm.c (arm_gen_constant): Remove unused variable
8165         can_shift.
8166         (arm_rtx_costs_1): Remove unused variable extra_cost.
8167         (arm_unwind_emit_set): Use variable offset.
8168         (thumb1_output_casesi): Remove unused variable flags.
8169
8170 2010-04-16  Jeff Law  <law@redhat.com>
8171
8172         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
8173         needing assignment rather than doing a two-phase assignment.  Remove
8174         unused variable 'm'.
8175
8176 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
8177
8178         PR bootstrap/43767
8179         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
8180
8181 2010-04-16  Doug Kwan  <dougkwan@google.com>
8182
8183         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
8184         (next_operand_entry_id): New static variable.
8185         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
8186         (add_to_ops_vec): Assigned unique ID to operand entry.
8187         (struct oecount_s): New field ID.
8188         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
8189         (undistribute_ops_list): Assign unique IDs to oecounts.
8190         (init_reassoc): reset next_operand_entry_id.
8191
8192 2010-04-16  Doug Kwan  <dougkwan@google.com>
8193
8194         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
8195         missing left parenthesis.
8196
8197 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
8198
8199         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
8200         *btdi_rex64 using SWI48 mode iterator.
8201         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
8202         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
8203         *jcc_btdi_mask_rex64.
8204
8205 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
8206
8207         * double-int.h (tree_to_double_int): Convert to macro.
8208         * double-int.c (tree_to_double_int): Remove.
8209
8210 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
8211
8212         PR debug/43762
8213         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
8214         with want_address 2 and in case a single element list might be
8215         possible, call it again with want_address 0.
8216
8217 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
8218
8219         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
8220         case 'W' print operands for HI mode.
8221         * config/h8300/h8300.h (Y0, Y2) : New constraints.
8222         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
8223         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
8224         * config/h8300/predicate.md (bit_register_indirect_operand): New.
8225
8226         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
8227
8228         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
8229         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
8230         #xx:3 and #xx:4 mode.
8231
8232         * config/h8300/h8300.md (inverted load with HImode dest): Add
8233         support for H8300SX.
8234
8235         * config/h8300/predicate.md (bit_operand): Allow immediate values that
8236         satisfy 'U' constraint.
8237
8238 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8239
8240         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
8241         * configure: Regenerate.
8242         * config.in: Regenerate.
8243         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
8244         works.
8245
8246 2010-04-16  Richard Guenther  <rguenther@suse.de>
8247
8248         * tree.h (struct tree_decl_minimal): Move pt_uid ...
8249         (struct tree_decl_common): ... here.
8250         (DECL_PT_UID): Adjust.
8251         (SET_DECL_PT_UID): Likewise.
8252         (DECL_PT_UID_SET_P): Likewise.
8253
8254 2010-04-16  Richard Guenther  <rguenther@suse.de>
8255
8256         PR tree-optimization/43572
8257         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
8258         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
8259         * tree-flow.h (is_call_clobbered): Remove.
8260         * tree-flow-inline.h (is_call_clobbered): Likewise.
8261         * tree-dfa.c (dump_variable): Do not dump call clobber state.
8262         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
8263         (execute_return_slot_opt): Adjust.
8264         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
8265         check for call clobbered vars here.
8266         (find_tail_calls): Move tailcall verification to the
8267         proper place.
8268
8269 2010-04-16  Diego Novillo  <dnovillo@google.com>
8270
8271         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
8272
8273 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
8274
8275         PR target/40603
8276         * config/arm/arm.md (cbranchqi4): New pattern.
8277         * config/arm/predicates.md (const0_operand,
8278         cbranchqi4_comparison_operator): New predicates.
8279
8280 2010-04-16  Richard Guenther  <rguenther@suse.de>
8281
8282         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
8283         (dump_gimple_stmt): Likewise.
8284
8285 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
8286
8287         * recog.h (struct recog_data): New field is_operator.
8288         (struct insn_operand_data): New field is_operator.
8289         * recog.c (extract_insn): Set recog_data.is_operator.
8290         * genoutput.c (output_operand_data): Emit code to set the
8291         is_operator field.
8292         * reload.c (find_reloads): Use it rather than testing for an
8293         empty constraint string.
8294
8295         PR target/41514
8296         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
8297         If the previous insn is a cbranchsi4_insn with the same arguments,
8298         omit the compare instruction.
8299
8300         * config/arm/arm.md (addsi3_cbranch): If destination is a high
8301         register, inputs must be low registers and we need a low register
8302         scratch.  Handle alternative 2 like alternative 3.
8303
8304 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
8305
8306         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
8307         don't call get_addr on both.  If one expression is a VALUE and
8308         the other a REG, check VALUE's locs if the REG isn't among them.
8309
8310 2010-04-16  Christian Bruel  <christian.bruel@st.com>
8311
8312         * config/sh/sh.h (sh_frame_pointer_required): New function.
8313         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
8314         (flag_omit_frame_pointer) Set.
8315         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
8316         (rounded_frame_size): Adjust size with outgoing_args_size.
8317         (sh_set_return_address): Must return from stack pointer.
8318         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
8319         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
8320         (ACCUMULATE_OUTGOING_ARGS): Define.
8321         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
8322         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
8323
8324 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
8325
8326         PR target/43471
8327         * config/sh/sh.c (sh_legitimize_reload_address): Use
8328         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
8329         Remove a unneeded check for offset_base.
8330
8331 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
8332
8333         * configure: Regenerated.
8334
8335 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8336
8337         * config/s390/s390.c (s390_call_save_register_used): Switch back
8338         to HARD_REGNO_NREGS.
8339
8340 2010-04-15  Richard Guenther  <rguenther@suse.de>
8341
8342         * alias.c (alias_set_subset_of): Handle alias-set zero
8343         child properly.
8344
8345 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
8346             Julian Brown  <julian@codesourcery.com>
8347
8348         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
8349         alternatives according to use of high and low regs.
8350         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
8351         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
8352         optimizing for size on Thumb-2.
8353
8354 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
8355
8356         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
8357
8358 2010-04-15  Richard Guenther  <rguenther@suse.de>
8359
8360         * tree-ssa-structalias.c (struct variable_info): Add
8361         is_fn_info flag.
8362         (new_var_info): Initialize it.
8363         (dump_constraints): Support printing last added constraints.
8364         (debug_constraints): Adjust.
8365         (dump_constraint_graph): Likewise.
8366         (make_heapvar_for): Check for NULL cfun.
8367         (get_function_part_constraint): New function.
8368         (get_fi_for_callee): Likewise.
8369         (find_func_aliases): Properly implement IPA PTA constraints.
8370         (process_ipa_clobber): New function.
8371         (find_func_clobbers): Likewise.
8372         (insert_into_field_list_sorted): Remove.
8373         (create_function_info_for): Properly allocate vars for IPA mode.
8374         Do not use insert_into_field_list_sorted.
8375         (create_variable_info_for): Properly generate constraints for
8376         global vars in IPA mode.
8377         (dump_solution_for_var): Always dump the solution.
8378         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
8379         (find_what_var_points_to): Adjust.
8380         (pt_solution_set): Change.
8381         (pt_solution_ior_into): New function.
8382         (pt_solution_empty_p): Export.
8383         (pt_solution_includes_global): Adjust.
8384         (pt_solution_includes_1): Likewise.
8385         (pt_solutions_intersect_1): Likewise.
8386         (dump_sa_points_to_info): Check some invariants.
8387         (solve_constraints): Move constraint dumping ...
8388         (compute_points_to_sets): ... here.
8389         (ipa_pta_execute): ... and here.
8390         (compute_may_aliases): Do not re-compute points-to info
8391         locally if IPA info is available.
8392         (ipa_escaped_pt): New global var.
8393         (ipa_pta_execute): Properly implement IPA PTA.
8394         * tree-into-ssa.c (dump_decl_set): Support dumping
8395         decls not in referenced-vars.
8396         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
8397         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
8398         (dump_points_to_solution): Likewise.
8399         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
8400         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
8401         (remap_gimple_stmt): Reset call clobber/use information if necessary.
8402         (copy_decl_to_var): Copy DECL_PT_UID.
8403         (copy_result_decl_to_var): Likewise.
8404         * tree.c (make_node_stat): Initialize DECL_PT_UID.
8405         (copy_node_stat): Copy it.
8406         * tree.h (DECL_PT_UID): New macro.
8407         (SET_DECL_PT_UID): Likewise.
8408         (DECL_PT_UID_SET_P): Likewise.
8409         (struct tree_decl_minimal): Add pt_uid member.
8410         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
8411         (pt_solution_empty_p): Declare.
8412         (pt_solution_set): Adjust.
8413         (ipa_escaped_pt): Declare.
8414         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
8415         * gimple-pretty-print.c (pp_points_to_solution): New function.
8416         (dump_gimple_call): Dump call clobber/use information.
8417         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
8418         * tree-pass.h (TDF_ALIAS): New dump option.
8419         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
8420         * doc/invoke.texi (-fipa-pta): Update documentation.
8421
8422 2010-04-15  Richard Guenther  <rguenther@suse.de>
8423
8424         * Makefile.in (OBJS-common): Add gimple-fold.o.
8425         (gimple-fold.o): New rule.
8426         * tree.h (maybe_fold_offset_to_reference,
8427         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
8428         prototypes ...
8429         * gimple.h: ... here.
8430         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
8431         may_propagate_address_into_dereference): Move prototypes ...
8432         * gimple.h: ... here.
8433         * tree-ssa-ccp.c (get_symbol_constant_value,
8434         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
8435         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
8436         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
8437         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
8438         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
8439         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
8440         gimplify_and_update_call_from_tree): Move ...
8441         * gimple-fold.c: ... here.  New file.
8442         (ccp_fold_builtin): Rename to ...
8443         (gimple_fold_builtin): ... this.
8444         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
8445
8446 2010-04-15  Richard Guenther  <rguenther@suse.de>
8447
8448         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
8449         fit_double_type, force_fit_type_double, add_double_with_sign,
8450         neg_double, mul_double_with_sign, lshift_double, rshift_double,
8451         lrotate_double, rrotate_double, div_and_round_double): Move ...
8452         * double-int.c: ... here.
8453         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
8454         add_double, neg_double, mul_double_with_sign, mul_double,
8455         lshift_double, rshift_double, lrotate_double, rrotate_double,
8456         div_and_round_double): Move prototypes ...
8457         * double-int.h: ... here.
8458
8459 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
8460
8461         PR target/43742
8462         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
8463         matching constraints to ensure inputs match the output.
8464
8465 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
8466
8467         PR target/43742
8468         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
8469         in an input-only operand.
8470
8471 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
8472
8473         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
8474         (double_int_not, double_int_lshift, double_int_rshift): Declare.
8475         (double_int_negative_p): Convert to static inline function.
8476         * double-int.c (double_int_lshift, double_int_lshift): New functions.
8477         (double_int_negative_p): Remove.
8478         * tree.h (lshift_double, rshift_double):
8479         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
8480         * fold-const.c (fold_convert_const_int_from_real,
8481         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
8482         (lshift_double): Change type of arith argument to bool.
8483         (rshift_double): Change type of arith argument to bool. Correct
8484         comment.
8485         * expmed.c (mask_rtx, lshift_value): (Ditto.).
8486
8487 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
8488
8489         PR target/21803
8490         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
8491         at the start and end of the then/else blocks, and omit them from the
8492         conversion.
8493         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
8494         argument; all callers changed.  Pass zero to old_insns_match_p instead.
8495         (flow_find_head_matching_sequence): New function.
8496         (old_insns_match_p): Check REG_EH_REGION notes for calls.
8497         * basic-block.h (flow_find_cross_jump,
8498         flow_find_head_matching_sequence): Declare functions.
8499
8500 2010-04-14  Jason Merrill  <jason@redhat.com>
8501
8502         PR c++/36625
8503         * c-common.c (attribute_takes_identifier_p): New fn.
8504         * c-common.h: Declare it.
8505
8506 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8507
8508         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
8509         splitter condition.
8510         (*udivmod<mode>4): Ditto.
8511
8512 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8513
8514         * config/i386/i386.md (maxmin_int): Rename code attribute from
8515         maxminiprefix and update all users.
8516         (maxmin_float): Ditto from maxminfprefix.
8517         (logic): Ditto from logicprefix.
8518         (absneg_mnemonic): Ditto from absnegprefix.
8519         * config/i386/mmx.md: Update all users of maxminiprefix,
8520         maxminfprefix and logicprefix for rename.
8521         * config/i386/sse.md: Ditto.
8522         * config/i386/sync.md (sync_<code><mode>): Update for
8523         logicprefix rename.
8524
8525 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8526
8527         PR 42966
8528         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
8529         warnings converted to errors.
8530
8531 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8532
8533         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
8534         used insn_type variable.
8535         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
8536         to avoid set-but-not-used warning.
8537
8538 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8539
8540         * df-core.c (df_ref_debug): Change format string placeholder
8541         from 0x%x to %#x.
8542         * dwarf2asm.c (dw2_asm_output_data_raw,
8543         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
8544         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
8545         * dwarf2out.c (output_cfi, output_cfi_directive,
8546         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
8547         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
8548         Ditto.
8549         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
8550         * print-rtl.c (print_rtx): Ditto.
8551
8552 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8553
8554         PR middle-end/42694
8555         * builtins.c (expand_builtin_pow_root): New function to expand pow
8556         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
8557         series of sqrt and cbrt calls under -ffast-math.
8558         (expand_builtin_pow): Call it.
8559
8560 2010-04-14  Michael Matz  <matz@suse.de>
8561
8562         PR tree-optimization/42963
8563         * tree-cfg.c (touched_switch_bbs): New static variable.
8564         (group_case_labels_stmt): New function broken out from ...
8565         (group_case_labels): ... here, use the above.
8566         (start_recording_case_labels): Allocate touched_switch_bbs.
8567         (end_recording_case_labels): Deallocate it, call
8568         group_case_labels_stmt.
8569         (gimple_redirect_edge_and_branch): Remember index of affected BB.
8570
8571 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8572
8573         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
8574         from insn template.
8575
8576 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8577
8578         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
8579
8580 2010-04-13  Jan Hubicka  <jh@suse.cz>
8581
8582         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
8583         of optimized out static functions.
8584         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
8585         cost computation.  Also sanity check for overflows.
8586         (update_caller_keys): Update cgraph_edge_badness call; properly
8587         update fibheap and sanity check that it is up to date.
8588         (add_new_edges_to_heap): Update cgraph_edge_badness.
8589         (cgraph_decide_inlining_of_small_function): Likewise;
8590         add sanity checking that badness in heap is up to date;
8591         improve dumping of reason; Update badness of calls to the
8592         offline copy of function currently inlined; dump badness
8593         of functions not inlined because of unit growth limits.
8594
8595 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
8596
8597         PR middle-end/32628
8598         * c-common.c (pointer_int_sum): Disregard overflow that occured only
8599         because of sign-extension change when converting to sizetype here...
8600         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
8601
8602         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
8603         the folding to constants.  Remove redundant final conversion.
8604         (fold_binary) <associate>: Do not associate if the re-association of
8605         constants alone overflows.
8606         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
8607         to the end of the list.
8608         (multiple_of_p) <COND_EXPR>: New case.
8609
8610 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8611
8612         * opt-functions.awk (opt_sanitized_name): New.
8613         (opt_enum): New.
8614         * optc-gen.awk: Use it
8615         * opth-gen.awk: Use it.
8616
8617 2010-04-13  Martin Jambor  <mjambor@suse.cz>
8618
8619         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
8620         (sra_modify_assign): Delete stmts loading dead data even if racc has no
8621         children.  Call replace_uses_with_default_def_ssa_name to handle
8622         SSA_NAES on lhs.
8623
8624 2010-04-13  Michael Matz  <matz@suse.de>
8625
8626         PR middle-end/43730
8627         * builtins.c (expand_builtin_interclass_mathfn): Also create
8628         a register if the predicate doesn't match.
8629
8630 2010-04-13  Diego Novillo  <dnovillo@google.com>
8631
8632         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
8633         * c-pch.c: Include timevar.h.
8634         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
8635         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
8636         * ggc-common.c: Include timevar.h.
8637         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
8638         * timevar.def (TV_PCH_SAVE): Define.
8639         (TV_PCH_CPP_SAVE): Define.
8640         (TV_PCH_PTR_REALLOC): Define.
8641         (TV_PCH_PTR_SORT): Define.
8642         (TV_PCH_RESTORE): Define.
8643         (TV_PCH_CPP_RESTORE): Define.
8644
8645 2010-04-13  Michael Matz  <matz@suse.de>
8646
8647         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
8648         into MINUS_EXPRs.
8649         (can_reassociate_p): New function.
8650         (break_up_subtract_bb, reassociate_bb): Use it.
8651
8652 2010-04-13  Richard Guenther  <rguenther@suse.de>
8653
8654         PR bootstrap/43737
8655         * builtins.c (c_readstr): Fix assert.
8656
8657 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
8658
8659         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
8660         when generating cltd insn.
8661
8662         (*ashl<mode>3_1): Remove special handling for register operand 2.
8663         (*ashlsi3_1_zext): Ditto.
8664         (*ashlhi3_1): Ditto.
8665         (*ashlhi3_1_lea): Ditto.
8666         (*ashlqi3_1): Ditto.
8667         (*ashlqi3_1_lea): Ditto.
8668         (*<shiftrt_insn><mode>3_1): Ditto.
8669         (*<shiftrt_insn>si3_1_zext): Ditto.
8670         (*<shiftrt_insn>qi3_1_slp): Ditto.
8671         (*<rotate_insn><mode>3_1): Ditto.
8672         (*<rotate_insn>si3_1_zext): Ditto.
8673         (*<rotate_insn>qi3_1_slp): Ditto.
8674
8675 2010-04-13  Richard Guenther  <rguenther@suse.de>
8676
8677         * tree-ssa-structalias.c (callused_id): Remove.
8678         (call_stmt_vars): New.
8679         (get_call_vi): Likewise.
8680         (lookup_call_use_vi): Likewise.
8681         (lookup_call_clobber_vi): Likewise.
8682         (get_call_use_vi): Likewise.
8683         (get_call_clobber_vi): Likewise.
8684         (make_transitive_closure_constraints): Likewise.
8685         (handle_const_call): Adjust to do per-call call-used handling.
8686         (handle_pure_call): Likewise.
8687         (find_what_var_points_to): Remove general callused handling.
8688         (init_base_vars): Likewise.
8689         (init_alias_vars): Initialize call_stmt_vars.
8690         (compute_points_to_sets): Process call-used and call-clobbered
8691         vars for call statements.
8692         (delete_points_to_sets): Free call_stmt_vars.
8693
8694 2010-04-13  Richard Guenther  <rguenther@suse.de>
8695
8696         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
8697         Only add RW dependence for dependence distance zero.
8698         Adjust maximal vectorization factor according to dependences.
8699         Move alignment handling ...
8700         (vect_find_same_alignment_drs): ... here.  New function.
8701         (vect_analyze_data_ref_dependences): Adjust.
8702         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
8703         (vect_analyze_data_refs): Adjust minimal vectorization factor
8704         according to data references.
8705         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
8706         dependences before determining the vectorization factor.
8707         Analyze alignment after determining the vectorization factor.
8708         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
8709         dependences before alignment.
8710         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
8711         Adjust prototype.
8712         (vect_analyze_data_refs): Likewise.
8713         (MAX_VECTORIZATION_FACTOR): New define.
8714
8715 2010-04-13  Duncan Sands  <baldrick@free.fr>
8716
8717         * except.h (lang_eh_type_covers): Remove.
8718         * except.c (lang_eh_type_covers): Likewise.
8719
8720 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8721             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8722
8723         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
8724         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
8725         UNITS_PER_LONG where it is ABI relevant.
8726         (s390_return_addr_rtx): Likewise.
8727         (s390_back_chain_rtx): Likewise.
8728         (s390_frame_area): Likewise.
8729         (s390_frame_info): Likewise.
8730         (s390_initial_elimination_offset): Likewise.
8731         (save_gprs): Likewise.
8732         (s390_emit_prologue): Likewise.
8733         (s390_emit_epilogue): Likewise.
8734         (s390_function_arg_advance): Likewise.
8735         (s390_function_arg): Likewise.
8736         (s390_va_start): Likewise.
8737         (s390_gimplify_va_arg): Likewise.
8738         (s390_function_profiler): Likewise.
8739         (s390_optimize_prologue): Likewise.
8740         (s390_rtx_costs): Likewise.
8741         (s390_secondary_reload): Likewise.
8742         (s390_promote_function_mode): Likewise.
8743         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
8744         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
8745         registers available.
8746         (s390_unwind_word_mode): New function.
8747         (s390_function_value): Split 64 bit values into register pair if
8748         used as return value.
8749         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
8750         function call parameters.  Handle parallels.
8751         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
8752         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
8753         (DWARF_CIE_DATA_ALIGNMENT): New macro.
8754         (s390_expand_setmem): Remove unused variable src_addr.
8755         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
8756         deal with 64 bit registers.
8757         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
8758         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
8759         (UNITS_PER_LONG): New macro.
8760         * libjava/include/s390-signal.h: Define extended ucontext
8761         structure containing the upper halfs of the 64 bit registers.
8762
8763 2010-04-13  Simon Baldwin  <simonb@google.com>
8764
8765         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
8766
8767 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
8768
8769         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
8770         rvalue on the RHS if the LHS is of a non-renamable type.
8771         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
8772
8773 2010-04-13  Matthias Klose  <doko@ubuntu.com>
8774
8775         * gcc.c (cc1_options): Handle -iplugindir before processing
8776         the cc1 spec. Only add -iplugindir once.
8777         (cpp_unique_options): Add -iplugindir option if -fplugin* options
8778         found.
8779         * common.opt (iplugindir): Remove `Separate' property, initialize.
8780         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
8781         option.
8782         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
8783         (distclean): Remove plugin dir.
8784         * doc/invoke.texi: Document -iplugindir.
8785
8786 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
8787
8788         * doc/plugins.texi (Loading Plugins): Document short
8789         -fplugin=foo option.
8790         (Plugin API): Mention default_plugin_dir_name function.
8791
8792         * gcc.c (find_file_spec_function): Add new declaration.
8793         (static_spec_func): Use it for "find-file".
8794         (find_file_spec_function): Add new function.
8795         (cc1_options): Add -iplugindir option if -fplugin* options found.
8796
8797         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
8798
8799         * plugin.c (add_new_plugin): Updated comment, and handle short
8800         plugin name.
8801         (default_plugin_dir_name): Added new function.
8802
8803         * common.opt (iplugindir): New option to set the plugin directory.
8804
8805 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
8806
8807         * config/i386/i386.md (any_rotate): New code iterator.
8808         (rotate_insn): New code attribute.
8809         (rotate): Ditto.
8810         (SWIM124): New mode iterator.
8811         (<rotate_insn>ti3): New expander.
8812         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
8813         any_rotate code iterator.
8814         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
8815         using any_rotate code iterator and SWIM124 mode iterator.
8816         (ix86_rotlti3): New insn_and_split pattern.
8817         (ix86_rotrti3): Ditto.
8818         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
8819         ix86_rotl{di,ti}3 patterns.
8820         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
8821         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
8822         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
8823         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
8824         code iterator and SWI mode iterator.
8825         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
8826         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
8827         code iterator.
8828         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
8829         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
8830         (bswap rotatert splitter): Add splitter.
8831         (bswap splitter): Macroize splitter using any_rotate code iterator.
8832         Add insn predicate to split only for TARGET_USE_XCHGB or when
8833         optimizing function for size.
8834
8835 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
8836
8837         * config/pa/pa.c (emit_move_sequence): Remove use of
8838         deleted variable flag_argument_noalias.
8839
8840 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8841
8842         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
8843         configurations.
8844         Add to unsupported targets list.
8845         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
8846         sparc*-sun-solaris2.[567]* from target lists.
8847         * configure: Regenerate.
8848         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
8849         removal.
8850         Remove Solaris 7 patch references.
8851         (Specific, sparc-sun-solaris2.7): Removed.
8852         (sparc-sun-solaris2*): Update Solaris 7 example.
8853         (sparc64-*-solaris2*): Likewise.
8854
8855 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8856
8857         * config.build (alpha*-dec-osf4*): Remove.
8858         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
8859         of obsolete configurations.
8860         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
8861         support.
8862         * config/alpha/t-osf4: Renamed to ...
8863         * config/alpha/t-osf5: ... this.
8864         * config/alpha/osf.h: Renamed to ...
8865         * config/alpha/osf5.h: ... this.
8866         Merged old osf5.h contents.
8867         Update comments.
8868         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
8869         (EXTRA_SPECS): Removed.
8870         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
8871         reflect removal of Tru64 UNIX V4.0/V5.0 support.
8872         Document that.
8873
8874 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8875
8876         * doc/contrib.texi (Contributors, Rainer Orth): Update.
8877
8878 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
8879
8880         PR/43702
8881         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
8882         __thiscall convention.
8883
8884 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
8885
8886         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
8887         orig_base.
8888         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
8889
8890 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
8891
8892         * function.c (assign_parms_initialize_all): Add unused attribute
8893         to fntype.
8894
8895 2010-04-12  Richard Guenther  <rguenther@suse.de>
8896
8897         * gsstruct.def (GSS_CALL): New.
8898         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
8899         * gimple.h: Include tree-ssa-alias.h.
8900         (struct gimple_statement_call): New.
8901         (union gimple_statement_struct_d): Add gimple_call member.
8902         (gimple_call_reset_alias_info): Declare.
8903         (gimple_call_use_set): New function.
8904         (gimple_call_clobber_set): Likewise.
8905         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
8906         * gimple.c (gimple_call_reset_alias_info): New function.
8907         (gimple_build_call_1): Call it.
8908         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8909         * tree-inline.c (remap_gimple_stmt): Likewise.
8910         (expand_call_inline): Remove callused handling.
8911         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
8912         * tree-dfa.c (dump_variable): Likewise.
8913         * tree-parloops.c (parallelize_loops): Likewise.
8914         * tree-ssa.c (init_tree_ssa): Likewise.
8915         (delete_tree_ssa): Likewise.
8916         * tree-flow-inline.h (is_call_used): Remove.
8917         * tree-flow.h (struct gimple_df): Remove callused member.
8918         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
8919         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
8920         (ref_maybe_used_by_call_p_1): Simplify.
8921         (call_may_clobber_ref_p_1): Likewise.
8922         * tree-ssa-structalias.c (compute_points_to_sets): Set
8923         the call stmt used and clobbered sets.
8924         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
8925         (find_tail_calls): Verify the tail call.
8926
8927 2010-04-12  Richard Guenther  <rguenther@suse.de>
8928
8929         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
8930         single-iteration always-inline inlining.
8931         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
8932         (cgraph_decide_inlining): Do not handle always-inline specially.
8933         (try_inline): Remove always-inline cycle detection special case.
8934         Do not recurse on always-inlines.
8935         (cgraph_early_inlining): Do not iterate if not optimizing.
8936         (cgraph_gate_early_inlining): remove.
8937         (pass_early_inline): Run unconditionally.
8938         (gate_cgraph_decide_inlining): New function.
8939         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
8940         not inlining or optimizing.
8941         (cgraph_decide_inlining_of_small_functions): Also consider
8942         always-inline functions.
8943         (cgraph_default_inline_p): Return true for nodes which should
8944         disregard inline limits.
8945         (estimate_function_body_sizes): Assume zero size and time for
8946         nodes which are marked as disregarding inline limits.
8947         (cgraph_decide_recursive_inlining): Do not perform recursive
8948         inlining on always-inline nodes.
8949
8950 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
8951
8952         PR bootstrap/43699
8953         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
8954         for exprs satisfying handled_component_p.
8955
8956 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
8957
8958         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
8959         non-constant aggregate elements.
8960
8961         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
8962         is a real initialization.
8963
8964 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
8965
8966         PR c/36774
8967         * c-decl.c (start_function): Move forward check for nested function.
8968
8969 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
8970
8971         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
8972         * config/sh/sh.c: Include reload.h.
8973         (sh_legitimize_reload_address): New.
8974         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
8975         sh_legitimize_reload_address.
8976
8977 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
8978
8979         * config/sh/sh.md (*movqi_pop): New insn pattern.
8980         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
8981
8982 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
8983
8984         * config/i386/i386.md (any_shiftrt): New code iterator.
8985         (shiftrt_insn): New code attribute.
8986         (shiftrt): Ditto.
8987         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
8988         using any_shiftrt code iterator.
8989         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
8990         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
8991         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
8992         pattern from corresponding peephole2 patterns.
8993         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
8994         using any_shiftrt code iterator.
8995         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
8996         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
8997         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
8998         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
8999         *{ashr,lshr}<mode>3_cmp_zext.
9000         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
9001
9002 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
9003
9004         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
9005         scratch register.
9006         (*lshr<mode>3_cconly): Ditto.
9007
9008 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
9009
9010         * config/i386/i386.md (lshr<mode>3): Macroize expander from
9011         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
9012         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
9013         pattern from *lshr{di,ti}3_1 and corresponding splitters using
9014         DWI mode iterator.
9015         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
9016         from corresponding peephole2 patterns.
9017         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
9018         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
9019         and *lshrdi3_1_rex64 using SWI mode iterator.
9020         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
9021         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
9022         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
9023         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
9024         and *lshrdi3_cmp_rex64 using SWI mode iterator.
9025         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
9026         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
9027         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
9028         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
9029         SWI mode iterator.
9030
9031 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
9032
9033         * config/i386/i386.md (ashr<mode>3): Macroize expander from
9034         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
9035         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
9036         pattern from *ashr{di,ti}3_1 and corresponding splitters using
9037         DWI mode iterator.
9038         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
9039         from corresponding peephole2 patterns.
9040         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
9041         (ashrsi3_cvt): Rename from ashrsi3_31.
9042         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
9043         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
9044         and x86_64_shift_adj_3 using SWI48 mode iterator.
9045         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
9046         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
9047         and *ashrdi3_1_rex64 using SWI mode iterator.
9048         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
9049         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
9050         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
9051         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
9052         and *ashrdi3_cmp_rex64 using SWI mode iterator.
9053         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
9054         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
9055         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
9056         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
9057         SWI mode iterator.
9058         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
9059         * config/i386/i386.c (ix86_split_ashr): Update for renamed
9060         x86_shift<mode>_adj_3 expanders.
9061
9062 2010-04-10  Wei Guozhi  <carrot@google.com>
9063
9064         PR target/42601
9065         * config/arm/arm.c (arm_pic_static_addr): New function.
9066         (legitimize_pic_address): Call arm_pic_static_addr when it detects
9067         a static symbol.
9068         (arm_output_addr_const_extra): Output expression for new pattern.
9069         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
9070
9071 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
9072
9073         * ira-costs.c (record_reg_classes): Ignore alternatives that are
9074         not enabled.
9075
9076         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
9077         * web.c: Include "insn-config.h" and "recog.h".
9078         (union_match_dups): New function.
9079         (web_main): Call it.
9080         (union_defs): Don't try to recognize match_dups.
9081
9082         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
9083         if doing so would replace the entire pattern.
9084
9085 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
9086
9087         PR target/43707
9088         PR target/43709
9089         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
9090         and splitter pattern.  Change splitter operand 1 predicate to
9091         nonmemory_operand.
9092
9093 2010-04-09  Martin Jambor  <mjambor@suse.cz>
9094
9095         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
9096         lattices are addresses of CONST_DECLs with the same initial value.
9097         (ipcp_print_all_lattices): Print values of CONST_DECLs.
9098         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
9099
9100 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
9101             Bernd Schmidt  <bernds@codesourcery.com>
9102
9103         * loop-invariant.c (replace_uses): New static function.
9104         (move_invariant_reg): Use it to ensure we can replace the uses.
9105
9106 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
9107
9108         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
9109         function template.
9110         (picochip_override_options): Enable section anchors only above -O1.
9111         (picochip_reorg): Fixed a couple of build warnings.
9112
9113 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9114
9115         * configure.ac (plugin -rdynamic test): Log result.
9116         * configure: Regenerate.
9117         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
9118         (RDYNAMIC_SPEC): Define.
9119         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
9120
9121 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9122
9123         * configure.ac: Determine Sun ld version numbers.
9124         (comdat_group): Restrict GNU ld version checks to gld.
9125         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
9126         (enable_comdat): Support --enable-comdat.
9127         * configure: Regenerate.
9128         * doc/install.texi (Configuration): Document --enable-comdat.
9129
9130 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9131
9132         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
9133         * config/sol2-gld.h: ... here.
9134         * config.gcc (sparc*-*-solaris2*): Reflect this.
9135         (i[34567]86-*-solaris2*): Use it.
9136
9137 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
9138
9139         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
9140         setup_clocks_p.
9141         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
9142
9143 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9144
9145         PR 42965
9146         * diagnostic.c (diagnostic_initialize): Initialize
9147         some_warnings_are_errors.
9148         (diagnostic_finish): New.
9149         (diagnostic_action_after_output): Call it before exiting.
9150         (diagnostic_report_diagnostic): Do not print message here. Set
9151         some_warnings_are_errors.
9152         * diagnostic.h (diagnostic_context): Delete
9153         issue_warnings_are_errors_message. Add some_warnings_are_errors.
9154         (diagnostic_finish): Declare.
9155         * toplev.c (toplev_main): Call it before exit.
9156
9157 2010-04-09  Jason Merrill  <jason@redhat.com>
9158
9159         PR c++/42623
9160         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
9161         for incomplete type.
9162
9163         PR c++/41788
9164         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
9165         based on a warning flag.
9166
9167 2010-04-09  Richard Guenther  <rguenther@suse.de>
9168
9169         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
9170
9171 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
9172
9173         PR bootstrap/43684
9174         * varasm.c (default_assemble_visibility): Wrap vars that are
9175         set, but unused, by targets without GAS.
9176         * config/rs6000/rs6000.c (paired_emit_vector_compare):
9177         Remove set, but unused, vars.
9178         (rs6000_legitimize_tls_address): Likewise.
9179         (altivec_expand_dst_builtin): Likewise.
9180         * config/darwin.c (machopic_classify_symbol): Likewise.
9181         (machopic_indirection_name): Likewise.
9182
9183 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
9184
9185         * config/i386/i386.md (DWI): New mode iterator.
9186         (S): New mode attribute.
9187         (shift_operand): Ditto.
9188         (shift_immediate_operand): Ditto.
9189         (ashl_input_operand): Ditto.
9190         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
9191         using SDWIM mode iterator.
9192         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
9193         pattern from *ashl{di,ti}3_1 and corresponding splitters using
9194         DWI mode iterator.
9195         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
9196         from corresponding peephole2 patterns.
9197         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
9198         and x86_64_shift_adj_1 using SWI48 mode iterator.
9199         (x86_shift<mode>_adj_2): Ditto.
9200         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
9201         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
9202         using SWI48 mode iterator.
9203         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
9204         *ashldi3_cmp_rex64 using SWI mode iterator.
9205         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
9206         *ashldi3_cconly_rex64 using SWI mode iterator.
9207         * config/i386/i386.c (ix86_split_ashl): Update for renamed
9208         x86_shift<mode>_adj_{1,2}.
9209         (ix86_split_ashr): Ditto.
9210         (ix86_split_lshr): Ditto.
9211
9212 2010-04-09  Richard Guenther  <rguenther@suse.de>
9213
9214         * target.h (builtin_conversion): Pass in input and output types.
9215         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
9216         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
9217         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
9218         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
9219
9220         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
9221         Handle AVX modes.
9222         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
9223
9224 2010-04-09  Richard Guenther  <rguenther@suse.de>
9225
9226         PR target/43152
9227         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
9228
9229 2010-04-09  Richard Guenther  <rguenther@suse.de>
9230
9231         * tree-vectorizer.h (struct _stmt_vec_info): Document
9232         that vectype is the type of the LHS.
9233         (supportable_widening_operation, supportable_narrowing_operation):
9234         Get both input and output vector types as arguments.
9235         (vect_is_simple_use_1): Declare.
9236         (get_same_sized_vectype): Likewise.
9237         * tree-vect-loop.c (vect_determine_vectorization_factor):
9238         Set STMT_VINFO_VECTYPE to the vector type of the def.
9239         (vectorizable_reduction): Adjust.
9240         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
9241         Adjust.  Specify the output vector type.
9242         (vect_pattern_recog_1): Adjust.
9243         * tree-vect-stmts.c (get_same_sized_vectype): New function.
9244         (vectorizable_call): Adjust.
9245         (vectorizable_conversion): Likewise.
9246         (vectorizable_operation): Likewise.
9247         (vectorizable_type_demotion): Likewise.
9248         (vectorizable_type_promotion): Likewise.
9249         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
9250         the def.
9251         (vect_is_simple_use_1): New function.
9252         (supportable_widening_operation): Get both input and output
9253         vector types.
9254         (supportable_narrowing_operation): Likewise.
9255         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
9256
9257 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
9258
9259         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
9260         __thiscall and _thiscall as predefined macros.
9261         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
9262         thiscall attribute handling.
9263         (ix86_comp_type_attributes): Likewise.
9264         (ix86_function_regparm): Likewise.
9265         (ix86_return_pops_args): Likewise.
9266         (init_cumulative_args): Likewise.
9267         (find_drap_reg): Likewise.
9268         (ix86_static_chain): Likewise.
9269         (x86_this_parameter): Likewise.
9270         (x86_output_mi_thunk): Likewise.
9271         (ix86_attribute_table): Add description for thiscall attribute.
9272         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
9273         * doc/extend.texi: Add documentation for thiscall.
9274
9275 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9276
9277         PR c++/28584
9278         * c.opt (Wint-to-pointer-cast): Available in C++.
9279         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
9280
9281 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
9282
9283         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
9284         * calls.c (expand_call): Pass the function type to aggregate_value_p.
9285         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
9286         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
9287         function type instead.  Reorder and simplify checks.
9288
9289         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
9290
9291 2010-04-08  Jing Yu  <jingyu@google.com>
9292             Zdenek Dvorak  <ook@ucw.cz>
9293
9294         PR tree-optimization/42720
9295         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
9296         loop unswitch conditions here from ...
9297         (tree_unswitch_single_loop): ... here.
9298
9299 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
9300
9301         * tree-if-conv.c: Fix comments and simplify logic.
9302
9303 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
9304
9305         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
9306         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
9307         (main_tree_if_conversion): Update call to tree_if_conversion.
9308
9309 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9310
9311         PR 42485
9312         * doc/invoke.texi (-b,-V): Delete.
9313         * doc/tm.texi: Do not mention -b.
9314         * gcc.c (display_help): Delete -b and -V.
9315         (process_command): Delete -b and -V.
9316         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
9317
9318 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
9319             Wolfgang Gellerich  <gellerich@de.ibm.com>
9320
9321         Implement target hook for loop unrolling
9322         * target.h (loop_unroll_adjust): Add a new target hook function.
9323         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
9324         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
9325         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
9326         (s390_loop_unroll_adjust): Implement the new target hook for s390.
9327         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
9328         target hook.
9329         (decide_unroll_stupid): Likewise.
9330
9331 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9332
9333         PR target/43643
9334         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
9335
9336 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9337
9338         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
9339         (Specific, *-*-solaris2*): Likewise.
9340         Don't prefer Sun as over GNU as.
9341
9342 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
9343
9344         * config/s390/s390.c (override_options): Adjust the z10 defaults
9345         for max-unroll-times, max-completely-peeled-insns
9346         and max-completely-peel-times.
9347
9348 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9349
9350         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
9351         instructions for z10.
9352         (s390_expand_setmem): Likewise.
9353         (s390_expand_cmpmem): Likewise.
9354
9355 2010-04-08  Richard Guenther  <rguenther@suse.de>
9356
9357         PR tree-optimization/43679
9358         * tree-ssa-pre.c (eliminate): Only propagate copies.
9359
9360 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
9361
9362         PR bootstrap/43681
9363         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
9364         set but not used variable warning.
9365
9366 2010-04-08  Wei Guozhi  <carrot@google.com>
9367
9368         PR target/41653
9369         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
9370         (arm_size_rtx_costs): Call the new function when optimized for size.
9371
9372 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
9373
9374         PR debug/43670
9375         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
9376         op0 is not a MEM, just return NULL instead of assertion
9377         failure.
9378         (discover_nonconstant_array_refs): Don't walk debug stmts.
9379
9380 2010-04-08  Doug Kwan  <dougkwan@google.com>
9381
9382         * configure.ac: Recognize gold and do not use its version number
9383         to test ld features.
9384         * configure: Regenerate.
9385
9386 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
9387
9388         PR middle-end/40815
9389         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
9390         (negate_value): Move code to push elements to broken_up_substracts ...
9391         (eliminate_plus_minus_pair): ... here.  Push operands that have no
9392         negative pair to plus_negates.
9393         (repropagate_negates, init_reassoc, fini_reassoc): Update.
9394
9395 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9396
9397         * doc/install.texi (Configuration): Move description of
9398         --enable-lto, --with-libelf*, --enable-gold from Java section to
9399         general section.
9400
9401         * doc/generic.texi (Working with declarations)
9402         (Function Properties, C and C++ Trees): Fix typos.
9403         * doc/sourcebuild.texi (Top Level): Likewise.
9404
9405 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
9406
9407         PR c/18624
9408         * tree.h (DECL_READ_P): Define.
9409         (struct tree_decl_common): Add decl_read_flag.
9410         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
9411         a set but not used warning.
9412         (merge_decls): Merge DECL_READ_P flag.
9413         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
9414         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
9415         * c-common.c (handle_used_attribute, handle_unused_attribute):
9416         Likewise.
9417         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
9418         New prototypes.
9419         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
9420         New functions.
9421         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
9422         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
9423         c_parser_binary_expression, c_parser_cast_expression,
9424         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
9425         Call default_function_array_read_conversion instead of
9426         default_function_array_conversion where needed.
9427         (c_parser_unary_expression, c_parser_conditional_expression,
9428         c_parser_postfix_expression_after_primary, c_parser_initelt):
9429         Likewise.  Call mark_exp_read where needed.
9430         (c_parser_statement_after_labels, c_parser_asm_operands,
9431         c_parser_typeof_specifier, c_parser_sizeof_expression,
9432         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
9433         where needed.
9434         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
9435         New.
9436         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
9437         (warn_unused_but_set_parameter): Default to warn_unused
9438         && extra_warnings.
9439         * doc/invoke.texi: Document -Wunused-but-set-variable and
9440         -Wunused-but-set-parameter.
9441
9442         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
9443         used count variable.
9444         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
9445         when operandN variables aren't used in the body of the expander
9446         or splitter.
9447         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
9448         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
9449         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
9450         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
9451         FOR_EACH_IMM_USE_ON_STMT): Likewise.
9452         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
9453         * tree.c (PROCESS_ARG): Likewise.
9454
9455 2010-04-07  Simon Baldwin  <simonb@google.com>
9456
9457         * diagnostic.h (diagnostic_override_option_index): New macro to
9458         set a diagnostic's option_index.
9459         * c-tree.h (c_cpp_error): Add warning reason argument.
9460         * opts.c (_warning_as_error_callback): New.
9461         (register_warning_as_error_callback): Store callback for
9462         warnings enabled via enable_warning_as_error.
9463         (enable_warning_as_error): Call callback, minor code tidy.
9464         * opts.h (register_warning_as_error_callback): Declare.
9465         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
9466         response to -Werror=.
9467         (c_common_init_options): Register warning_as_error_callback in opts.c.
9468         * common.opt: Add -Wno-cpp option.
9469         * c-common.c (struct reason_option_codes_t): Map cpp warning
9470         reason codes to gcc option indexes.
9471         * (c_option_controlling_cpp_error): New function, lookup the gcc
9472         option index for a cpp warning reason code.
9473         * (c_cpp_error): Add warning reason argument, call
9474         c_option_controlling_cpp_error for diagnostic_override_option_index.
9475         * doc/invoke.texi: Document -Wno-cpp.
9476
9477 2010-04-07  Richard Guenther  <rguenther@suse.de>
9478
9479         * ipa-reference.c (mark_load): Use get_base_address.
9480         (mark_store): Likewise.
9481
9482         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
9483         inserting GIMPLE_NOPs into the IL.
9484         * tree-ssa-structalias.c (get_constraint_for_component_ref):
9485         Explicitly strip handled components and indirect references.
9486
9487         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
9488         folding address expressions.
9489         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
9490         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
9491         operand_equal_p to compare decls.
9492         (ptr_deref_may_alias_decl_p): Likewise.
9493         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
9494         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
9495         Handle reversed comparison ops.
9496         * tree-sra.c (asm_visit_addr): Use get_base_address.
9497         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
9498         * ipa-reference.c (mark_address): Use get_base_address.
9499
9500 2010-04-07  Richard Guenther  <rguenther@suse.de>
9501
9502         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
9503         Propagate constants everywhere.
9504
9505 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
9506
9507         PR debug/43516
9508         * tree.c (MAX_INT_CACHED_PREC): Define.
9509         (nonstandard_integer_type_cache): New array.
9510         (build_nonstandard_integer_type): Cache results for precision
9511         <= MAX_INT_CACHED_PREC.
9512
9513 2010-04-07  Richard Guenther  <rguenther@suse.de>
9514
9515         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
9516         -fargument-noalias-global, -fargument-noalias-anything): Remove.
9517         * common.opt: Likewise.
9518         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
9519         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
9520         (nonoverlapping_memrefs_p): Likewise.
9521         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9522         * opts.c (common_handle_option): Handle OPT_fargument_alias,
9523         OPT_fargument_noalias, OPT_fargument_noalias_anything and
9524         OPT_fargument_noalias_global for backward compatibility.
9525
9526 2010-04-07  Richard Guenther  <rguenther@suse.de>
9527
9528         PR tree-optimization/43270
9529         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
9530         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
9531         * tree-ssa-pre.c (phi_translate_1): Adjust.
9532         (fully_constant_expression): Split out vn_reference handling to ...
9533         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
9534         Fold reads from constant strings.
9535         (vn_reference_lookup): Handle fully constant references.
9536         (vn_reference_lookup_pieces): Likewise.
9537         * Makefile.in (expmed.o-warn): Add -Wno-error.
9538
9539 2010-04-07  Martin Jambor  <mjambor@suse.cz>
9540
9541         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
9542
9543 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
9544
9545         PR driver/41594
9546         * gcc.c: Add -static-libstdc++ to list of recognized options.
9547
9548 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9549
9550         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
9551
9552 2010-04-07  Richard Guenther  <rguenther@suse.de>
9553
9554         PR middle-end/42617
9555         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
9556         bases build simple mem attributes to retain points-to information.
9557
9558 2010-04-07  Richard Guenther  <rguenther@suse.de>
9559
9560         PR middle-end/42617
9561         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
9562         preserve points-to related information.
9563
9564 2010-04-07  Richard Guenther  <rguenther@suse.de>
9565
9566         PR middle-end/42617
9567         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
9568         discard plain indirect references.
9569         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
9570         * tree.c (tree_nop_conversion): Likewise.
9571
9572 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
9573
9574         PR debug/43628
9575         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
9576
9577 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
9578
9579         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
9580         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
9581
9582 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
9583
9584         * tree-if-conv.c: Fix indentation and comments.
9585
9586 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
9587
9588         * tree-if-conv.c: Sort static functions in topological order.
9589
9590 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
9591
9592         * tree-if-conv.c: Fix indentation and comments.
9593
9594 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9595
9596         PR middle-end/43519
9597         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
9598         lang_hooks.types.type_for_size instead of
9599         build_nonstandard_integer_type.
9600         When converting an unsigned type to signed, double its precision.
9601         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
9602         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
9603         (graphite_create_new_loop_guard): When ub + 1 wraps around,
9604         use lb <= ub.
9605
9606 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9607
9608         PR middle-end/43519
9609         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
9610         POINTER_PLUS_EXPR for pointer types.
9611
9612 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9613
9614         PR middle-end/43519
9615         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
9616         * graphite-clast-to-gimple.c: Include langhooks.h.
9617         (max_signed_precision_type): New.
9618         (max_precision_type): Takes two types as arguments.
9619         (precision_for_value): New.
9620         (precision_for_interval): New.
9621         (gcc_type_for_interval): New.
9622         (gcc_type_for_value): New.
9623         (gcc_type_for_clast_term): New.
9624         (gcc_type_for_clast_red): New.
9625         (gcc_type_for_clast_bin): New.
9626         (gcc_type_for_clast_expr): Split up into several functions.
9627         (gcc_type_for_clast_eq): Rewritten.
9628         (compute_bounds_for_level): New.
9629         (compute_type_for_level_1): New.
9630         (compute_type_for_level): New.
9631         (gcc_type_for_cloog_iv): Removed.
9632         (gcc_type_for_iv_of_clast_loop): Rewritten.
9633         (graphite_create_new_loop): Compute the lower and upper bound types
9634         with gcc_type_for_clast_expr.
9635         (graphite_create_new_loop_guard): Same.
9636         (find_cloog_iv_in_expr): Removed.
9637         (compute_cloog_iv_types_1): Removed.
9638         (compute_cloog_iv_types): Removed.
9639         (gloog): Do not call compute_cloog_iv_types.
9640         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
9641         GBB_CLOOG_IV_TYPES.
9642         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
9643         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
9644         (GBB_CLOOG_IV_TYPES): Removed.
9645
9646 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9647
9648         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
9649         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
9650         (detect_commutative_reduction): Same.
9651
9652 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9653
9654         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
9655         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
9656         argument.
9657         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
9658         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
9659         (rewrite_commutative_reductions_out_of_ssa): Same.
9660         * passes.c (execute_function_todo): Call verify_ssa for every pass
9661         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
9662         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
9663         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
9664         with an extra argument.
9665         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
9666         verify_ssa only when the extra argument is true.
9667         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
9668         with an extra argument.
9669         (tree_transform_and_unroll_loop): Same.
9670
9671 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9672
9673         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
9674         for all the passes of the LNO having LOOP_CLOSED_SSA.
9675         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
9676         * tree-loop-distribution.c (pass_loop_distribution): Same.
9677         * tree-pass.h (TODO_verify_loops): Removed.
9678         * tree-ssa-loop.c (pass_tree_loop_init): Same.
9679         (pass_lim): Same.
9680         (pass_tree_unswitch): Same.
9681         (pass_predcom): Same.
9682         (pass_vectorize): Same.
9683         (pass_linear_transform): Same.
9684         (pass_graphite_transforms): Same.
9685         (pass_iv_canon): Same.
9686         (pass_complete_unroll): Same.
9687         (pass_complete_unrolli): Same.
9688         (pass_parallelize_loops): Same.
9689         (pass_loop_prefetch): Same.
9690         (pass_iv_optimize): Same.
9691
9692 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
9693
9694         PR middle-end/32824
9695         * passes.c (init_optimization_passes): Move pass_lim before
9696         pass_copy_prop and pass_dce_loop.
9697
9698 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
9699
9700         PR target/43667
9701         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
9702         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
9703         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
9704         MULTI_* defines for 4 argument vpermil2p* builtins.
9705
9706 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
9707
9708         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
9709         * config/i386/i386.c (x86_maybe_negate_const_int): New.
9710         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
9711         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
9712         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
9713         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
9714         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
9715         Use x86_maybe_negate_const_int to output insn mnemonic.
9716         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
9717         check from instruction predicate.  Update comments.
9718         * config/i386/sync.md (sync_add<mode>): Use
9719         x86_maybe_negate_const_int to output insn mnemonic.
9720
9721 2010-04-06  Jan Hubicka  <jh@suse.cz>
9722
9723         PR tree-optimization/42906
9724         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
9725         IGNORE_SELF argument.  Set visited_control_parents for fully
9726         processed BBs.
9727         (find_obviously_necessary_stmts): Update call of
9728         mark_control_dependent_edges_necessary.
9729         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
9730
9731 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
9732
9733         * config/i386/i386.md: Remove comment about 'e' and 'E'
9734         operand modifier.
9735
9736 2010-04-06  Richard Guenther  <rguenther@suse.de>
9737
9738         PR tree-optimization/43627
9739         * tree-vrp.c (extract_range_from_unary_expr): Widenings
9740         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
9741         not varying.
9742
9743 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
9744
9745         * BASE-VER: Change to 4.6.0.
9746
9747         PR target/43638
9748         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
9749         handling.
9750
9751 2010-04-06  Richard Guenther  <rguenther@suse.de>
9752
9753         PR middle-end/43661
9754         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
9755
9756 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9757
9758         * doc/invoke.texi (Optimize Options): Document that LTO
9759         won't remove object access purely due to incompatible
9760         declarations.
9761
9762 2010-04-04  Matthias Klose  <doko@ubuntu.com>
9763
9764         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
9765         Initialize variable.
9766
9767 2010-04-03  Richard Guenther  <rguenther@suse.de>
9768
9769         PR middle-end/42509
9770         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
9771         require a non-NULL MEM_OFFSET.
9772
9773 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
9774
9775         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
9776         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
9777         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
9778         config/alpha/predicates.md, config/arm/arm.md,
9779         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
9780         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
9781         config/darwin9.h, config/darwin.c, config/darwin.h,
9782         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
9783         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
9784         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
9785         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
9786         config/mips/mips.md, config/mn10300/mn10300.c,
9787         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
9788         config/rs6000/aix.h, config/rs6000/dfp.md,
9789         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
9790         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
9791         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
9792         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
9793         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
9794         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
9795         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
9796         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
9797         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
9798         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
9799         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
9800         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
9801         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
9802         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
9803         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
9804         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
9805         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
9806         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
9807         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
9808         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
9809         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
9810         opt-functions.awk, opth-gen.awk, params.def, passes.c,
9811         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
9812         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
9813         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
9814         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
9815         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
9816         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
9817         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
9818         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
9819         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
9820         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
9821         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
9822         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
9823         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
9824         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
9825
9826 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9827
9828         PR other/43620
9829         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
9830         * aclocal.m4: Regenerate.
9831
9832 2010-04-02  Richard Guenther  <rguenther@suse.de>
9833
9834         PR tree-optimization/43629
9835         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
9836         if we have seen a constant value.
9837
9838 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
9839
9840         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
9841
9842 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
9843
9844         PR target/43469
9845         * arm.c (legitimize_tls_address): Adjust call to
9846         gen_tls_load_dot_plus_four.
9847         (arm_note_pic_base): New function.
9848         (arm_cannot_copy_insn_p): Use it.
9849         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
9850         constraint.
9851
9852 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9853
9854         PR bootstrap/43531
9855
9856         Revert:
9857         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9858
9859         * Makefile.in ($(out_object_file)): Depend on
9860         gt-$(basename $(notdir $(out_file))).h.
9861
9862 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
9863
9864         * config.gcc (lm32-*-rtems*): Add t-lm32.
9865
9866 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
9867
9868         * config.gcc: Add lm32-*-rtems*.
9869         * config/lm32/rtems.h: New file.
9870
9871 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
9872
9873         PR target/42609
9874         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
9875
9876 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
9877
9878         * dwarf2out.c (output_compilation_unit_header): For
9879         -gdwarf-4 use version 4 instead of version 3.
9880         (output_line_info): For version 4 and above emit additional
9881         maximum ops per insn header field.
9882         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
9883
9884         * dwarf2out.c (is_c_family, is_java): Remove.
9885         (lower_bound_default): New function.
9886         (add_bound_info, gen_descr_array_type_die): Use it.
9887
9888 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
9889
9890         PR debug/43325
9891         * dwarf2out.c (gen_variable_die): Allow debug info for variable
9892         re-declaration when it happens in a function.
9893
9894 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
9895
9896         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
9897         (cgraph_remove_function_insertion_hook): Same.
9898         (cgraph_call_function_insertion_hooks): Same.
9899
9900 2010-04-01  Richard Guenther  <rguenther@suse.de>
9901
9902         PR middle-end/43614
9903         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
9904         and TREE_THIS_VOLATILE.
9905         (copy_ref_info): Likewise.
9906         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
9907         * tree.c (build6_stat): Ignore side-effects of all but arg5
9908         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
9909         TARGET_MEM_REF.
9910
9911 2010-04-01  Richard Guenther  <rguenther@suse.de>
9912
9913         PR tree-optimization/43607
9914         * ipa-type-escape.c (check_call): Do not access non-existing
9915         arguments.
9916
9917 2010-04-01  Richard Guenther  <rguenther@suse.de>
9918
9919         PR middle-end/43602
9920         Revert
9921         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
9922                     Jack Howarth <howarth@bromo.med.uc.edu>
9923
9924         * tree-profile.c (tree_init_ic_make_global_vars): Make static
9925         variables TLS.
9926
9927 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9928
9929         * doc/install.texi (Prerequisites): Document libelf usability on
9930         IRIX 5/6 and Solaris 2.
9931         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
9932         Update GNU as, GNU ld requirements.
9933         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
9934         Document Sun Studio compiler download.
9935         Update and simplify as, ld recommendations.
9936         (Specific, *-*-solaris2.7): Note obsoletion, removal.
9937
9938 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9939
9940         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
9941         with_tune_32 to pentium4.
9942
9943 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
9944
9945         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
9946
9947 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9948
9949         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
9950         obsoletion, removal.
9951         Update IDO URL.
9952         Document GNU as requirement.
9953         Update configure requirements.
9954         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
9955         Recomment IRIX 6.5.18+.
9956         Document IDF/IDL requirement.
9957         Document GNU as requirement.
9958         Document GNU ld bootstrap failure.
9959         Remove freeware.sgi.com reference.
9960
9961 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9962
9963         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
9964         UNIX V4.0, V5.0 obsoletion, removal.
9965         Remove --with-gc=simple reference.
9966         Update VM requirements during bootstrap.
9967         Remove -oldas bootstrap description.
9968         Update binutils reference.
9969         Remove comparison failure note.
9970
9971 2010-03-31  Richard Guenther  <rguenther@suse.de>
9972             Zdenek Dvorak  <ook@ucw.cz>
9973             Sebastian Pop  <sebastian.pop@amd.com>
9974
9975         PR middle-end/43464
9976         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
9977         with multiple arguments.
9978         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
9979
9980 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
9981
9982         * graphite-dependences.c (print_pddr): Call print_pdr with an
9983         extra argument.
9984         * graphite-poly.c (debug_pdr): Add an extra argument for the
9985         verbosity level.
9986         (print_pdr): Same.
9987         (print_pbb_domain): Same.
9988         (print_pbb): Same.
9989         (print_scop_context): Same.
9990         (print_scop): Same.
9991         (print_cloog): Same.
9992         (debug_pbb_domain): Same.
9993         (debug_pbb): Same.
9994         (print_pdrs): Same.
9995         (debug_pdrs): Same.
9996         (debug_scop_context): Same.
9997         (debug_scop): Same.
9998         (debug_cloog): Same.
9999         (print_scop_params): Same.
10000         (debug_scop_params): Same.
10001         (print_iteration_domain): Same.
10002         (print_iteration_domains): Same.
10003         (debug_iteration_domain): Same.
10004         (debug_iteration_domains): Same.
10005         (print_scattering_function): Same.
10006         (print_scattering_functions): Same.
10007         (debug_scattering_function): Same.
10008         (debug_scattering_functions): Same.
10009         * graphite-poly.h (debug_pdr): Update declaration.
10010         (print_pdr): Same.
10011         (print_pbb_domain): Same.
10012         (print_pbb): Same.
10013         (print_scop_context): Same.
10014         (print_scop): Same.
10015         (print_cloog): Same.
10016         (debug_pbb_domain): Same.
10017         (debug_pbb): Same.
10018         (print_pdrs): Same.
10019         (debug_pdrs): Same.
10020         (debug_scop_context): Same.
10021         (debug_scop): Same.
10022         (debug_cloog): Same.
10023         (print_scop_params): Same.
10024         (debug_scop_params): Same.
10025         (print_iteration_domain): Same.
10026         (print_iteration_domains): Same.
10027         (debug_iteration_domain): Same.
10028         (debug_iteration_domains): Same.
10029         (print_scattering_function): Same.
10030         (print_scattering_functions): Same.
10031         (debug_scattering_function): Same.
10032         (debug_scattering_functions): Same.
10033
10034 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
10035
10036         * graphite-poly.c (print_scattering_function_1): New.
10037         (print_scattering_function): Call it.
10038         (print_scop_params): Remove spaces at the end of lines.
10039         (print_cloog): New.
10040         (debug_cloog): New.
10041         * graphite-poly.h (print_cloog): Declared.
10042         (debug_cloog): Declared.
10043
10044 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
10045
10046         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
10047         in loop->header.
10048         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
10049         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
10050         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
10051         to switch between adding the IV bump in loop->latch or in loop->header.
10052
10053 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
10054
10055         * graphite-poly.c (print_scattering_function): Pretty print following
10056         the scoplib format.
10057         (print_pdr): Same.
10058         (print_pbb_domain): Same.
10059         (dump_gbb_cases): Same.
10060         (dump_gbb_conditions): Same.
10061         (print_pdrs): Same.
10062         (print_pbb): Same.
10063         (print_scop_params): Same.
10064         (print_scop_context): Same.
10065         (print_scop): Same.
10066         (print_pbb_body): New.
10067         (lst_indent_to): New.
10068         (print_lst): Start new lines with a #.
10069         * graphite-poly.h (pbb_bb): New.
10070         (pbb_index): Use pbb_bb.
10071         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
10072         disjuncts.
10073         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
10074
10075 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
10076
10077         * dwarf2out.c (size_of_die): For -gdwarf-4 use
10078         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
10079         and 0 instead of 1 for dw_val_class_flag.
10080         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
10081         dw_val_class_range_list, dw_val_class_loc_list,
10082         dw_val_class_lineptr and dw_val_class_macptr, use
10083         DW_FORM_flag_present for dw_val_class_flag and
10084         DW_FORM_exprloc for dw_val_class_loc.
10085         (output_die): For -gdwarf-4 print dw_val_class_loc
10086         size as uleb128 instead of 1 or 2 bytes and don't print
10087         anything for dw_val_class_flag.
10088
10089         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
10090         instead of cselib_lookup following by tweaking locs->setting_insn.
10091
10092         PR bootstrap/43596
10093         * cselib.c (cselib_process_insn): Clear cselib_current_insn
10094         even before returning from label, setjmp call or volatile asm
10095         handling.
10096
10097 2010-03-31  Richard Guenther  <rguenther@suse.de>
10098
10099         PR middle-end/43600
10100         * cgraphunit.c (cgraph_output_in_order): Do not allocate
10101         temporary data on stack.
10102
10103 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10104
10105         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
10106         (PUSHSECTION_ASM_OP): Remove.
10107         (POPSECTION_ASM_OP): Remove.
10108         (PUSHSECTION_FORMAT): Remove.
10109         * config/sol2.h (PUSHSECTION_FORMAT): Define.
10110         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
10111         * config/sol2.c (solaris_output_init_fini): Use it.
10112
10113 2010-03-31  Jie Zhang  <jie@codesourcery.com>
10114
10115         PR 43574
10116         * opt-functions.awk (var_type_struct): Use signed char type
10117         for simple variables.
10118
10119 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10120
10121         * config/sol2.c: Include output.h.
10122         (solaris_assemble_visibility): New function.
10123         * config/t-sol2 (sol2.o): Add output.h dependency.
10124         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
10125         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
10126         Redefine.
10127
10128 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
10129
10130         PR target/43580
10131         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
10132         V2SImode or XFmode on PRE_DEC.
10133
10134         PR debug/43557
10135         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
10136         BLKmode.
10137
10138 2010-03-31  Jie Zhang  <jie@codesourcery.com>
10139
10140         PR 43562
10141         * reload.h (caller_save_initialized_p): Declare.
10142         * toplev.c (backend_init_target): Don't call
10143         init_caller_save but set caller_save_initialized_p to false.
10144         * caller-save.c (caller_save_initialized_p): Define.
10145         (init_caller_save): Check caller_save_initialized_p.
10146         * ira.c (ira): Call init_caller_save if flag_caller_saves.
10147
10148 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10149
10150         PR target/39048
10151         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
10152         and soft-fp/t-softfp to tmake_file.
10153         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
10154         (LIBGCC2_TF_CEXT): Define.
10155         (TF_SIZE): Define.
10156
10157 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
10158
10159         PR debug/42977
10160         * cselib.c (n_useless_values): Document handling of debug locs.
10161         (n_useless_debug_values, n_debug_values): New variables.
10162         (new_elt_loc_list): Don't add to debug values, keep count.
10163         (promote_debug_loc): New.
10164         (cselib_reset_table): Zero new variables.
10165         (entry_and_rtx_equal_p): Promote debug locs.
10166         (discard_useless_locs): Increment n_useless_debug_values for
10167         debug values.
10168         (remove_useless_values): Adjust n_useless_values and n_debug_values
10169         with n_useless_debug_values.
10170         (add_mem_for_addr): Promote debug locs.
10171         (cselib_lookup_mem): Likewise.
10172         (cselib_lookup_addr): Renamed to...
10173         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
10174         (cselib_log_lookup): ... this.  Turn into...
10175         (cselib_lookup_addr): ... new wrapper.
10176         (cselib_lookup_from_insn): New.
10177         (cselib_invalidate_regno): Increment n_useless_debug_values for
10178         debug values.
10179         (cselib_invalidate_mem): Likewise.
10180         (cselib_process_insn): Take n_deleted and n_debug_values into
10181         account to guard remove_useless_value call.
10182         (cselib_finish): Zero n_useless_debug_values.
10183         * cselib.h (cselib_lookup_from_insn): Declare.
10184         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
10185         (sched_analyze_2): Likewise.
10186
10187 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
10188
10189         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
10190         functions.
10191         (adjust_mems): Replace narrowing SUBREG of expression containing
10192         just PLUS, MINUS, MULT and ASHIFT of registers and constants
10193         with operations in the narrower mode.
10194
10195         PR debug/43593
10196         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
10197         regs_invalidated_by_call instead all call_used_reg_set registers.
10198
10199 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
10200
10201         PR middle-end/43430
10202         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
10203         pointer comparisons with types_compatible_p.
10204         * tree-vect-stmts.c (vectorizable_call): Same.
10205         (vectorizable_condition): Same.
10206
10207 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10208
10209         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
10210         stack check if the mask would be zero.
10211
10212 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
10213             Jack Howarth <howarth@bromo.med.uc.edu>
10214
10215         * tree-profile.c (tree_init_ic_make_global_vars): Make static
10216         variables TLS.
10217
10218 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
10219
10220         PR other/25232
10221         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
10222         and __unordtf2.
10223         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
10224         Include ___unordxf2 and ___unordtf2.
10225         * config/i386/libgcc-glibc.ver: Do not define inheritance from
10226         GCC_4.4.0 here.
10227
10228 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
10229
10230         * config/lm32/t-lm32: New file.
10231         * config.gcc: Use the above file when targetting lm32.
10232
10233 2010-03-28  Duncan Sands  <baldrick@free.fr>
10234
10235         * Makefile.in (PLUGIN_HEADERS): Add except.h.
10236
10237 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
10238
10239         PR middle-end/43431
10240         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
10241         Improve vectorization cost model diagnostic.
10242
10243 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
10244
10245         PR middle-end/43436
10246         * tree-vect-data-refs.c (vect_analyze_data_refs): When
10247         compute_data_dependences_for_loop returns false, early exit
10248         and output an extra diagnostic for the failed data reference
10249         analysis.
10250
10251 2010-03-29  Richard Guenther  <rguenther@suse.de>
10252
10253         PR tree-optimization/43560
10254         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
10255         (can_sm_ref_p): Treat stores to readonly locations as trapping.
10256
10257 2010-03-29  Jie Zhang  <jie@codesourcery.com>
10258
10259         PR 43564
10260         * toplev.c (process_options): Set optimization_default_node
10261         and optimization_current_node.
10262         * opts.c (decode_options): Don't set optimization_default_node
10263         and optimization_current_node.
10264
10265 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
10266
10267         * config/rtems.h: Abandon -qrtems_debug.
10268
10269 2010-03-28  Jan Hubicka  <jh@suse.cz>
10270
10271         PR tree-optimization/43505
10272         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
10273         map should not be copied.
10274
10275 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10276
10277         PR middle-end/41674
10278         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
10279         cdtors, set DECL_PRESERVE_P.
10280         * ipa.c (cgraph_externally_visible_p): Return true if declaration
10281         should be preseved.
10282
10283 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
10284
10285         PR tree-optimization/43528
10286         * stor-layout.c (place_field): Check that constant fits into
10287         unsigned HWI when skipping calculation of MS bitfield layout.
10288
10289 2010-03-27  Jan Hubicka  <jh@suse.cz>
10290
10291         PR middle-end/43391
10292         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
10293         notice_global_symbol work.
10294
10295 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
10296
10297         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
10298         instead of dwarf2out_decl.
10299         (struct var_loc_node): Remove section_label field.
10300         (dwarf2out_function_decl): New function.
10301         (dwarf2out_var_location): Don't set section_label field.
10302         (dwarf2out_begin_function): Don't empty decl_loc_table here.
10303
10304 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
10305
10306         PR tree-optimization/43544
10307         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
10308         First argument for builtin vectorized function hook is now a
10309         tree to be able to distinguish between machine specific and
10310         standard builtins.
10311         * targhooks.c (default_builtin_vectorized_function): Ditto.
10312         * targhooks.h (default_builtin_vectorized_function): Ditto.
10313         * target.h (struct gcc_target): Ditto.
10314         * tree-vect-stmts.c (vectorizable_function): Ditto.
10315         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
10316         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
10317         Ditto.
10318
10319 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
10320
10321         PR c/43381
10322         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
10323         nested binding iff it is a FUNCTION_DECL.
10324         (store_parm_decls_newstyle): Pass nested=true to bind for
10325         FUNCTION_DECLs amongst parameters.
10326
10327 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
10328
10329         * var-tracking.c (vt_expand_loc_callback): Don't run
10330         cselib_expand_value_rtx_cb in dummy mode if
10331         cselib_dummy_expand_value_rtx_cb returned false.
10332
10333         * var-tracking.c (emit_note_insn_var_location): For one part
10334         notes with offset 0, don't add EXPR_LIST around the location.
10335         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
10336         add_location_or_const_value_attribute): Adjust for that change.
10337
10338         PR debug/43540
10339         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
10340         into first operand and location into second.
10341         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
10342         dw_cfi_oprnd_loc for DW_CFA_expression.
10343         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
10344         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
10345         assume first argument is regnum and second argument is location.
10346
10347 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
10348
10349         PR target/42113
10350         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
10351         of scratch register to DImode.  Split to DImode comparison operator.
10352         Use SImode subreg of scratch register in the multiplication.
10353         (*cmp_sadd_sidi): Ditto.
10354         (*cmp_ssub_si): Ditto.
10355         (*cmp_ssub_sidi): Ditto.
10356
10357 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
10358
10359         PR target/43524
10360         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
10361         Remove invalid assert and wrong comment.
10362
10363 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
10364
10365         PR debug/43516
10366         * flags.h (final_insns_dump_p): New extern.
10367         * final.c (final_insns_dump_p): New variable.
10368         (rest_of_clean_state): Set it before -fdump-final-insns=
10369         dumping, clear afterwards.
10370         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
10371         MEM_ALIAS_SET on MEMs.
10372
10373 2010-03-26  David S. Miller  <davem@davemloft.net>
10374
10375         * configure.ac: Fix sparc GOTDATA_OP bug check.
10376         * configure: Rebuild.
10377
10378 2010-03-26  Alan Modra  <amodra@gmail.com>
10379
10380         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
10381
10382 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10383
10384         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
10385         TLS_SECTION_ASM_FLAG.
10386
10387 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
10388
10389         PR bootstrap/43511
10390         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
10391         Clear first_function_block_is_cold.
10392
10393         PR c/43385
10394         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
10395         argument if the argument is truth_value_p.
10396
10397 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
10398
10399         * config/rs6000/constraints.md: Update copyright year for my changes.
10400
10401         PR target/43484
10402         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
10403         used in reg+reg addressing, swap registers.
10404
10405 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
10406
10407         PR debug/43293
10408         * target.h (struct gcc_target): Add code_end hook.
10409         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
10410         if not yet defined.
10411         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
10412         * toplev.c (compile_file): Call targetm.asm_out.code_end
10413         hook before unwind info/debug info output.
10414         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
10415         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
10416         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
10417         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
10418         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
10419         * config/i386/i386.c (ix86_file_end): Renamed to...
10420         (ix86_code_end): ... this.  Make static.  Don't call
10421         file_end_indicate_exec_stack.  Emit unwind info using
10422         final_start_function/final_end_function.
10423         (darwin_x86_file_end): Remove.
10424         (TARGET_ASM_CODE_END): Define.
10425         * config/i386/i386.h (TARGET_ASM_FILE_END,
10426         NEED_INDICATE_EXEC_STACK): Don't define.
10427         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
10428         (TARGET_ASM_FILE_END): Define to darwin_file_end.
10429         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
10430         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
10431
10432         PR target/43498
10433         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
10434         at the beginning and final_end_function at the end.
10435         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
10436
10437 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10438
10439         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
10440         and Sun as TLS syntax.
10441         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
10442         * configure: Regenerate.
10443         * config.in: Regenerate.
10444         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
10445         (default_elf_asm_named_section): Use it.
10446         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
10447         (i386_output_dwarf_dtprel): Likewise.
10448         (output_addr_const_extra): Likewise.
10449         (output_pic_addr_const): Lowercase @GOTTPOFF.
10450         (output_addr_const_extra): Likewise.
10451         (output_pic_addr_const): Lowercase @GOTNTPOFF.
10452         (output_addr_const_extra): Likewise.
10453         (output_pic_addr_const): Lowercase @INDNTPOFF.
10454         (output_addr_const_extra): Likewise.
10455         (output_pic_addr_const): Lowercase @NTPOFF.
10456         (output_addr_const_extra): Likewise.
10457         (output_pic_addr_const): Lowercase @TPOFF.
10458         (output_addr_const_extra): Likewise.
10459         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
10460         (*tls_global_dynamic_64): Likewise.
10461         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
10462         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
10463
10464         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
10465         (ASM_OUTPUT_TLS_COMMON): Use it.
10466         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
10467
10468         PR target/38118
10469         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
10470         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
10471         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
10472         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
10473         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
10474         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
10475
10476 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10477
10478         * config/i386/i386.c (override_options): Don't accept
10479         -mtls-dialect=sun any longer.
10480         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
10481         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
10482         (*tls_local_dynamic_base_32_sun): Likewise.
10483         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
10484
10485 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
10486
10487         PR debug/43508
10488         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10489         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
10490
10491         PR debug/43479
10492         * ira.c (adjust_cleared_regs): New function.
10493         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
10494
10495         PR debug/19192
10496         PR debug/43479
10497         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
10498         from gimple_block.
10499         * expr.c (expand_expr_real): Restore previous
10500         curr_insn_source_location and curr_insn_block after
10501         expand_expr_real_1 call.
10502         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
10503         instead of expand_expr_real_1.
10504
10505 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
10506
10507         PR rtl-optimization/43413
10508         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
10509         hard regs too.
10510
10511 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
10512
10513         PR target/43348
10514         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
10515         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
10516
10517 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
10518
10519         * config/i386/i386.c (ix86_target_string): Add -mfma.
10520         Fix a typo in comment.
10521
10522 2010-03-22  Mike Stump  <mikestump@comcast.net>
10523
10524         PR target/23071
10525         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
10526         Don't overly align based upon packed packed fields.
10527
10528 2010-03-22  Jason Merrill  <jason@redhat.com>
10529
10530         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
10531         Use () rather than [], and move before the element type.
10532
10533 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10534
10535         * doc/configfiles.texi (Configuration Files): Removed
10536         fixinc/Makefile*, intl/Makefile.*.
10537         * doc/makefile.texi: Fixed markup. Abstract from version
10538         control system used.
10539         (Makefile): Removed obsolete gcc/java/parse.y example.
10540         * doc/sourcebuild.texi: Likewise.
10541         (Top Level): Added config, gnattools, libdecnumber, libgcc,
10542         libgomp, libssp.  Removed fastjar.
10543         (Miscellaneous Docs): Clarify location.
10544         Added COPYING3, COPYING3.LIB.
10545         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
10546
10547 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10548
10549         PR target/38085
10550         * config/i386/i386.c (x86_function_profiler)
10551         [!NO_PROFILE_COUNTERS]: Fix typo.
10552         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
10553         instead of callq.
10554
10555 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
10556             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10557
10558         * doc/sourcebuild.texi (Test Directives): Split into six
10559         subsections, with most of the current text in new subsections
10560         Directives, Selectors, and Final Actions.
10561         (Directives): Split list of test directives into multiple
10562         subsubsections.
10563         (Selectors): Describe use and syntax of selectors.
10564         (Effective-Target Keywords): Describe all existing keywords.
10565         (Add Options): Describe features for dg-add-options.
10566         (Require Support): Describe variants of dg-require-support.
10567         (Final Actions): Describe commands to use in dg-final.
10568
10569 2010-03-22  Michael Matz  <matz@suse.de>
10570
10571         PR middle-end/43475
10572         * recog.c (validate_replace_rtx_group): Replace also in
10573         REG_EQUAL and REG_EQUIV notes.
10574
10575 2010-03-22  Richard Guenther  <rguenther@suse.de>
10576
10577         PR tree-optimization/43390
10578         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
10579         sure vector extracts are type correct.
10580
10581 2010-03-22  Richard Guenther  <rguenther@suse.de>
10582
10583         PR middle-end/40106
10584         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
10585         x * sqrt (x) even when optimizing for size if the target
10586         has native support for sqrt.
10587
10588 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
10589
10590         * varasm.c (make_decl_rtl_for_debug): Also clear
10591         flag_mudflap for the duration of make_decl_rtl call.
10592
10593         PR debug/43443
10594         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
10595         locs from preserved VALUEs.
10596
10597 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10598
10599         PR middle-end/42718
10600         * pa.md (movmemsi): Set align to one if zero.
10601         (movmemdi): Likewise.
10602
10603 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
10604
10605         PR target/42321
10606         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
10607         with their corresponding prologue pushes.
10608
10609 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
10610
10611         PR target/43156
10612         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
10613         at the begining or end.
10614         (spu_expand_epilogue): Likewise.
10615
10616 2010-03-20  Richard Guenther  <rguenther@suse.de>
10617
10618         PR rtl-optimization/43438
10619         * combine.c (make_extraction): Properly zero-/sign-extend an
10620         extraction of the low part of a CONST_INT.  Also handle
10621         CONST_DOUBLE.
10622
10623 2010-03-19  Mike Stump  <mikestump@comcast.net>
10624
10625         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
10626         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
10627         (override_options): Use SUBTARGET32_DEFAULT_CPU.
10628
10629 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
10630
10631         PR c/43211
10632         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
10633         an error.
10634
10635 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
10636
10637         PR rtl-optimization/42258
10638         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
10639         use that may match DEF.
10640
10641         PR target/40697
10642         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
10643         the cost of loading the constant rather than assuming
10644         COSTS_N_INSNS (1).
10645         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
10646         outer code is AND, do the same tests as the andsi3 expander and
10647         return COSTS_N_INSNS (1) if and is cheap.
10648
10649         * optabs.c (avoid_expensive_constant): Fix formatting.
10650
10651 2010-03-19  Michael Matz  <matz@suse.de>
10652
10653         PR c++/43116
10654         * attribs.c (decl_attributes): When rebuilding a function pointer
10655         type use the same qualifiers as the original pointer type.
10656
10657 2010-03-19  Martin Jambor  <mjambor@suse.cz>
10658
10659         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
10660         and is_gimple_ip_invariant_address.
10661
10662 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10663
10664         Revert
10665         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10666
10667         * config/arm/arm.c (arm_override_options): Turn off
10668         flag_dwarf2_cfi_asm for AAPCS variants.
10669
10670 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10671
10672         PR target/43399
10673         * config/arm/arm.c (emit_multi_reg_push): Update comments.
10674         Use PRE_MODIFY instead of PRE_DEC.
10675         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
10676         (vfp_emit_fstmd): Likewise.
10677
10678 2010-03-19  Michael Matz  <matz@suse.de>
10679
10680         PR target/43305
10681         * builtins.c (expand_builtin_interclass_mathfn,
10682         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
10683         if that fails.
10684
10685 2010-03-19  Richard Guenther  <rguenther@suse.de>
10686
10687         PR tree-optimization/43415
10688         * tree-ssa-pre.c (phi_translate): Split out worker to ...
10689         (phi_translate_1): ... this.
10690         (phi_translate): Move all caching here.  Cache all NARY
10691         and REFERENCE translations.
10692
10693 2010-03-19  David S. Miller  <davem@davemloft.net>
10694
10695         With help from Eric Botcazou.
10696         * config/sparc/sparc.c: Include dwarf2out.h.
10697         (emit_pic_helper): Delete.
10698         (pic_helper_symbol_name): Delete.
10699         (pic_helper_emitted_p): Delete.
10700         (pic_helper_needed): New.
10701         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
10702         (get_pc_thunk_name): New.
10703         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
10704         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
10705         Set pic_helper_needed to true.  Don't call emit_pic_helper.
10706         (sparc_expand_prologue): Update load_pic_register call.
10707         (sparc_output_mi_thunk): Likewise.
10708         (sparc_file_end): Emit a hidden comdat symbol for the PIC
10709         thunk if possible.  Output CFI information as needed.
10710
10711 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
10712             Jack Howarth <howarth@bromo.med.uc.edu>
10713
10714         PR target/36399
10715         * config/i386/i386.h: Fix ABI on darwin x86-32.
10716
10717 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
10718
10719         * tree.h: Declare make_decl_rtl_for_debug.
10720         * varasm.c (make_decl_rtl_for_debug): New.
10721         * dwarf2out.c (rtl_for_decl_location): Call it.
10722         * cfgexpand.c (expand_debug_expr): Call it.
10723
10724 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
10725
10726         PR bootstrap/43399
10727         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
10728         mem_mode.
10729
10730         PR bootstrap/43403
10731         * var-tracking.c (vt_init_cfa_base): Do nothing if
10732         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
10733
10734 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
10735
10736         PR debug/42873
10737         * var-tracking.c (canonicalize_vars_star): New.
10738         (dataflow_post_merge_adjust): Use it.
10739
10740 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
10741
10742         PR debug/43058
10743         * var-tracking.c (non_suitable_const): New function.
10744         (add_uses): For DEBUG_INSNs with constants, don't record any
10745         value, instead just the constant value itself.
10746         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
10747         is not VAR_LOC_UNKNOWN_P, set var to the constant.
10748         (emit_notes_in_bb): Likewise.
10749         (emit_note_insn_var_location): For onepart variables if
10750         cur_loc is a VOIDmode constant, use DECL_MODE.
10751
10752 2010-03-18  Martin Jambor  <mjambor@suse.cz>
10753
10754         PR middle-end/42450
10755         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
10756         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
10757         all non-clones.  Moved call redirection...
10758         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
10759         (cgraph_materialize_all_clones): Dispose of all
10760         combined_args_to_skip bitmaps.
10761         (verify_cgraph_node): Do not check for edges pointing to wrong
10762         nodes in inline clones.
10763         * tree-inline.c (copy_bb): Call
10764         cgraph_redirect_edge_call_stmt_to_callee.
10765         * ipa.c (cgraph_remove_unreachable_nodes): Call
10766         cgraph_node_remove_callees even when there are used clones.
10767
10768 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
10769
10770         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
10771
10772 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
10773
10774         PR target/43383
10775         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
10776         for 32bit.
10777
10778 2010-03-18  Michael Matz  <matz@suse.de>
10779
10780         PR middle-end/43419
10781         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
10782         into sqrt(x) if we need to preserve signed zeros.
10783
10784 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
10785             Eric Botcazou  <ebotcazou@adacore.com>
10786
10787         PR rtl-optimization/43360
10788         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
10789         note if we don't know its invariant status.
10790
10791 2010-03-18  Michael Matz  <matz@suse.de>
10792
10793         PR tree-optimization/43402
10794         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
10795         PHI chains of ssa names registered for update.
10796
10797 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
10798
10799         PR target/42427
10800         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
10801         non-offsettable and pre_modify update addressing.
10802         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
10803         and "2" alternatives "#".
10804         (*movdd_softfloat32): Make all alternatives "#";
10805         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
10806         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
10807         (*movdf_softfloat32): Make all alternatives "#";
10808         (movdi): Use the new DIFD mode iterator to create a common splitter
10809         for movdi, movdf and movdd patterns.
10810
10811 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
10812
10813         * common.opt (dumpdir): Remove redundant tab.
10814
10815 2010-03-17  Martin Jambor  <mjambor@suse.cz>
10816
10817         PR tree-optimization/43347
10818         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
10819         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
10820
10821 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
10822
10823         PR rtl-optimization/42216
10824         * regrename.c (create_new_chain): New function, broken out from...
10825         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
10826         appending a use to an empty chain.
10827         (build_def_use): Remove previous changes that convert OP_INOUT to
10828         OP_OUT operands; instead detect the case where an OP_INOUT operand
10829         uses a previously untracked register and create an empty chain for it.
10830
10831 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10832
10833         * doc/extend.texi (Function Attributes): Rewrite unfinished
10834         sentence in ms_abi documentation.
10835
10836 2010-03-17  Alan Modra  <amodra@gmail.com>
10837
10838         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
10839         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
10840         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
10841         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
10842
10843 2010-03-16  Richard Henderson  <rth@redhat.com>
10844
10845         PR middle-end/43365
10846         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
10847         (lower_try_finally): Save and restore eh_seq around the expansion
10848         of the try-finally.
10849
10850 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
10851
10852         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
10853         statements before splitting block.
10854
10855 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10856
10857         * doc/sourcebuild.texi (Testsuites): Fix markup.
10858         Use pathnames relative to gcc/testsuite.
10859         (Test Directives): Move description of how timeout is determined.
10860         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
10861         (C Tests): Correct gcc.misc-tests directory.
10862         Framework tests now live in gcc.test-framework.
10863
10864 2010-03-16  Richard Guenther  <rguenther@suse.de>
10865
10866         PR middle-end/43379
10867         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
10868         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
10869
10870 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
10871             Alexandre Oliva  <aoliva@redhat.com>
10872
10873         PR tree-optimization/42917
10874         * lambda-code.c (remove_iv): Skip debug statements.
10875         (lambda_loopnest_to_gcc_loopnest): Likewise.
10876         (not_interesting_stmt): Debug statements are not interesting.
10877
10878 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
10879
10880         PR debug/43051
10881         PR debug/43092
10882         * cselib.c (cselib_preserve_constants,
10883         cfa_base_preserved_val): New static variables.
10884         (preserve_only_constants): New function.
10885         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
10886         clear its REG_VALUES.  If cselib_preserve_constants, don't
10887         empty the whole hash table, but preserve there VALUEs with constants,
10888         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
10889         (cselib_preserve_cfa_base_value): New function.
10890         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
10891         (cselib_init): Change argument to int bitfield.  Set
10892         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
10893         is in it.
10894         (cselib_finish): Clear cselib_preserve_constants and
10895         cfa_base_preserved_val.
10896         * cselib.h (enum cselib_record_what): New enum.
10897         (cselib_init): Change argument to int.
10898         (cselib_preserve_cfa_base_value): New prototype.
10899         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
10900         * dse.c (dse_step1): Likewise.
10901         * cfgcleanup.c (thread_jump): Likewise.
10902         * sched-deps.c (sched_analyze): Likewise.
10903         * gcse.c (local_cprop_pass): Likewise.
10904         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
10905         If FN is non-NULL, call the callback always and whenever it returns
10906         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
10907         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
10908         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
10909         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
10910         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
10911         * var-tracking.c: Include recog.h.
10912         (bb_stack_adjust_offset): Remove.
10913         (vt_stack_adjustments): Don't call it, instead just gather the
10914         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
10915         (adjust_stack_reference): Remove.
10916         (compute_cfa_pointer): New function.
10917         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
10918         (struct adjust_mem_data): New type.
10919         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
10920         functions.
10921         (get_address_mode): New function.
10922         (replace_expr_with_values): Use it.
10923         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
10924         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
10925         (adjust_sets): Remove.
10926         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
10927         Use get_address_mode.
10928         (get_adjusted_src): Remove.
10929         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
10930         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
10931         (add_with_sets): Don't call adjust_sets.
10932         (fp_setter, vt_init_cfa_base): New functions.
10933         (vt_initialize): Change return type to bool.  Move most of pool etc.
10934         initialization to the beginning of the function from end.  Pass
10935         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
10936         If !frame_pointer_needed, call vt_stack_adjustment before mos
10937         vector is filled, call vt_init_cfa_base if argp/framep has been
10938         eliminated to sp.  If frame_pointer_needed and argp/framep has
10939         been eliminated to hard frame pointer, set
10940         hard_frame_pointer_adjustment and call vt_init_cfa_base after
10941         encountering fp setter in the prologue.  For MO_ADJUST, call
10942         log_op_type before pusing the op into mos vector, not afterwards.
10943         Call adjust_insn before cselib_process_insn/add_with_sets,
10944         call cancel_changes (0) afterwards.
10945         (variable_tracking_main_1): Adjust for vt_initialize calling
10946         vt_stack_adjustments and returning whether it succeeded or not.
10947
10948 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
10949
10950         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
10951         debug statements.
10952
10953 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
10954
10955         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
10956         has been set.
10957         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
10958         drap_reg has not been set.
10959
10960 2010-03-15  Michael Matz  <matz@suse.de>
10961
10962         PR middle-end/43300
10963         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
10964         use it to expand block copies.
10965         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
10966         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
10967         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
10968
10969 2010-03-15  Richard Guenther  <rguenther@suse.de>
10970
10971         PR tree-optimization/43367
10972         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
10973         elimination check.
10974
10975 2010-03-15  Richard Guenther  <rguenther@suse.de>
10976
10977         PR tree-optimization/43317
10978         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
10979
10980 2010-03-15  Martin Jambor  <mjambor@suse.cz>
10981
10982         PR tree-optimization/43141
10983         * tree-sra.c (create_abstract_origin): New function.
10984         (modify_function): Call create_abstract_origin.
10985
10986 2010-03-15  Chris Demetriou  <cgd@google.com>
10987
10988         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
10989         wasn't copied.
10990
10991 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10992
10993         PR middle-end/43354
10994         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
10995         call insert_out_of_ssa_copy for default definitions.
10996
10997 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10998
10999         * graphite-clast-to-gimple.c (my_long_long): Defined.
11000         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
11001         * graphite-sese-to-poly.c (my_long_long): Defined.
11002         (scop_ivs_can_be_represented): Use it.
11003
11004 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11005
11006         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
11007         graphite-max-bbs-per-function, and loop-block-tile-size.
11008         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
11009         with "maximum".
11010         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
11011
11012 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11013
11014         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
11015         forward declaration.
11016         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
11017         (add_upper_bounds_from_estimated_nit): New.
11018         (build_loop_iteration_domains): Use it.
11019
11020 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11021
11022         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
11023
11024 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11025
11026         PR middle-end/43306
11027         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
11028         should be an INTEGER_CST.  Also handle CASE_CONVERT.
11029
11030 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11031
11032         * graphite.c (graphite_initialize): To bound the number of bbs per
11033         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
11034         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
11035         * doc/invoke.texi: Document it.
11036
11037 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11038
11039         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
11040         * graphite-sese-to-poly.h (build_poly_scop): Same.
11041
11042 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11043
11044         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
11045         the number of parameters in the scop.  Use as an upper bound
11046         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
11047         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
11048         * doc/invoke.texi: Document it.
11049
11050 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
11051
11052         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
11053         * doc/c-tree.texi: Remove.
11054         * doc/generic.texi: Merge c-tree.texi here.
11055         * doc/gccint.texi (Trees): Remove menu entry.
11056         (c-tree.texi): Remove @include.
11057         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
11058         * doc/languages.texi (Reading RTL): Ditto.
11059
11060 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
11061
11062         PR target/42869
11063         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
11064
11065 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
11066
11067         PR middle-end/42431
11068         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
11069         code added to work around reload clobbering CONST insns.
11070
11071 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
11072
11073         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
11074         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
11075         (cselib_preserve_only_values): Remove retain argument, don't
11076         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
11077         * cselib.h (cselib_preserve_only_values): Remove retain argument.
11078         * var-tracking.c (micro_operation): Move insn field before union.
11079         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
11080         (struct variable_tracking_info_def): Remove n_mos field, change
11081         mos into a vector of micro_operations.
11082         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
11083         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
11084         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
11085         changing into a vector.
11086         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
11087         come before all other uops generated by add_stores.
11088         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
11089         argument removal.
11090         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
11091         a vector.  Run just one pass over the bbs instead of separate counting
11092         and computation phase.
11093         (vt_finalize): Free VTI (bb)->mos vector instead of array.
11094
11095         PR debug/43329
11096         * tree-inline.c (remap_decls): Put old_var rather than origin_var
11097         into *nonlocalized_list vector.
11098         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
11099         even if origin is non-NULL.
11100         (gen_variable_die): Likewise.
11101         (process_scope_var): Don't change origin.
11102         (gen_decl_die): Likewise.
11103         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
11104         before adding new edges instead of after it, fix moving over
11105         debug stmts.
11106
11107 2010-03-11  David S. Miller  <davem@davemloft.net>
11108
11109         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
11110         of four.
11111         * configure: Rebuild.
11112
11113 2010-03-11  Martin Jambor  <mjambor@suse.cz>
11114
11115         PR tree-optimization/43257
11116         * tree.c (assign_assembler_name_if_neeeded): New function.
11117         (free_lang_data_in_cgraph): Assembler name assignment moved to the
11118         above new function.
11119         * tree.h (assign_assembler_name_if_neeeded): Declare.
11120         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
11121         the function if needed.
11122
11123 2010-03-11  Chris Demetriou  <cgd@google.com>
11124
11125         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
11126         include/stdint-gcc.h, and include/stdint.h world-readable.
11127
11128 2010-03-11  Richard Guenther  <rguenther@suse.de>
11129
11130         PR tree-optimization/43255
11131         * tree-vrp.c (process_assert_insertions_for): Do not insert
11132         asserts for trivial conditions.
11133
11134 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11135
11136         PR tree-optimization/43280
11137         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
11138         generation.  Move calculation of size out of the if branch.
11139         (find_bswap): Modify compare number generation.
11140
11141 2010-03-11  Richard Guenther  <rguenther@suse.de>
11142
11143         PR lto/43200
11144         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
11145         (input_gimple_stmt): Fixup handled component types during
11146         operand read.  Also fix up decls in ADDR_EXPRs.
11147
11148 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
11149
11150         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
11151         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
11152
11153 2010-03-10  Jan Hubicka  <jh@suse.cz>
11154
11155         PR c/43288
11156         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
11157         * varasm.c (get_variable_section): Don't do that here...
11158         (make_decl_rtl): ... and here.
11159         (do_assemble_alias): Produce decl RTL.
11160         (assemble_alias): Likewise.
11161
11162 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
11163
11164         PR debug/43290
11165         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
11166         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
11167         of fde->vdrap_reg.
11168         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
11169         (based_loc_descr): Only express drap or vdrap regno based expressions
11170         using DW_OP_fbreg when not optimizing.
11171         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
11172         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
11173         REG_CFA_SET_VDRAP note.
11174
11175 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
11176
11177         PR tree-optimization/43236
11178         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
11179         error in calculation of base address in reverse iteration case.
11180         (generate_builtin): Take number of latch executions if the statement
11181         is in the latch.
11182
11183 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
11184
11185         PR middle-end/42859
11186         * tree-eh.c: Include pointer-set.h.
11187         (lower_eh_dispatch): Filter out duplicate case labels and
11188         remove the unneeded edge when the label is unused.  Return
11189         true when some edges are removed.
11190         (execute_lower_eh_dispatch): When any lowering resulted in
11191         removing an edge, also delete unreachable blocks.
11192
11193 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
11194
11195         PR bootstrap/43287
11196         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11197         UNSPEC_MACHOPIC_OFFSET.
11198
11199 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
11200
11201         PR target/43294
11202         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
11203         (m68k_delegitimize_address): New function.
11204
11205 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
11206
11207         PR debug/43299
11208         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
11209
11210         PR debug/43299
11211         * var-tracking.c (adjust_sets): New function.
11212         (count_with_sets, add_with_sets): Use it.
11213         (get_adjusted_src): New inline function.
11214         (add_stores): Use it.
11215
11216         PR debug/43304
11217         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
11218         call cselib_dummy_expand_value_rtx_cb instead of
11219         cselib_expand_value_rtx_cb.
11220
11221         PR debug/43293
11222         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
11223         * config/i386/i386.c: Include debug.h and dwarf2out.h.
11224         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
11225         and .cfi_endproc around the pic thunks.
11226         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
11227         all queued unwind info register saves are saved before the call.
11228         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
11229         considered as sp-=4 for unwind info and the pop as sp+=4 which
11230         also clobbers dest, but doesn't actually restore it.
11231
11232         PR debug/43290
11233         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
11234         RTX_FRAME_RELATED_P.
11235
11236 2010-03-09  Jie Zhang  <jie@codesourcery.com>
11237
11238         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
11239         whitespaces in output template.
11240
11241 2010-03-09  Jie Zhang  <jie@codesourcery.com>
11242
11243         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
11244         out array boundary.
11245
11246 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
11247
11248         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
11249         builtins.exp in a separate job.
11250
11251 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11252
11253         * graphite-sese-to-poly.c (add_param_constraints): Use
11254         lower_bound_in_type and upper_bound_in_type.
11255
11256 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11257
11258         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
11259         instead of unsigned_type_node.
11260
11261 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11262             Reza Yazdani  <reza.yazdani@amd.com>
11263
11264         PR middle-end/43065
11265         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
11266         on pointer type parameters.
11267
11268 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
11269
11270         PR middle-end/42644
11271         PR middle-end/42130
11272         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
11273         handle conversions from pointer to integers.
11274         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
11275         induction variable, to be able to work with code generated by CLooG.
11276         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
11277         (build_poly_scop): Bail out if we cannot codegen a loop.
11278
11279 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
11280
11281         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
11282         code generation with gloog_error.
11283
11284 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11285
11286         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
11287         Call fold_convert on all the returned values.
11288         (expand_scalar_variables_expr): Pass to
11289         expand_scalar_variables_ssa_name the type of the resulting expression.
11290
11291 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11292
11293         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
11294         ppl_min_for_le_pointset.
11295         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
11296         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
11297
11298 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11299
11300         * graphite-dependences.c (map_into_dep_poly): Removed.
11301         (dependence_polyhedron_1): Use combine_context_id_scat.
11302
11303 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11304
11305         * graphite-poly.h (struct poly_scattering): Add layout documentation.
11306         (struct poly_bb): Same.
11307         (combine_context_id_scat): New.
11308
11309 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11310
11311         PR middle-end/42326
11312         * sese.c (name_defined_in_loop_p): Return false for default
11313         definitions.
11314
11315 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11316
11317         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
11318         and clean up the logic.
11319
11320 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11321
11322         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
11323         early return.
11324
11325 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
11326
11327         * var-tracking.c (remove_cselib_value_chains): Define only for
11328         ENABLE_CHECKING.
11329         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
11330         delete_slot_part, emit_notes_for_differences_1): Don't call
11331         remove_cselib_value_chains here.
11332         (set_slot_part, emit_notes_for_differences_2): Don't call
11333         add_cselib_value_chains here.
11334         (preserved_values): New vector.
11335         (preserve_value): New function.
11336         (add_uses, add_stores, vt_add_function_parameters): Use it
11337         instead of cselib_preserve_value.
11338         (changed_values_stack): New vector.
11339         (check_changed_vars_0): New function.
11340         (check_changed_vars_1, check_changed_vars_2): Use it.
11341         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
11342         changed_values_stack VALUEs.
11343         (vt_emit_notes): For all preserved_values call
11344         add_cselib_value_chains.  If ENABLE_CHECKING call
11345         remove_cselib_value_chains before verifying value_chains is empty.
11346         Initialize and free changed_values_stack.
11347         (vt_initialize): Initialize preserved_values.
11348         (vt_finalize): Free preserved_values.
11349
11350 2010-03-08  Richard Guenther  <rguenther@suse.de>
11351
11352         PR tree-optimization/43269
11353         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
11354         region detection.
11355
11356 2010-03-08  Martin Jambor  <mjambor@suse.cz>
11357
11358         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
11359         (ipa_is_param_called): Removed.
11360         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
11361         (ipa_print_node_params): Do not print the called flag.
11362         (ipa_write_node_info): Do not stream the called flag.
11363         (ipa_read_node_info): Likewise.
11364
11365 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
11366
11367         PR debug/43176
11368         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
11369         * cselib.c (struct expand_value_data): Add dummy field.
11370         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
11371         dummy to false.
11372         (cselib_dummy_expand_value_rtx_cb): New function.
11373         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
11374         any rtl.
11375         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
11376         * var-tracking.c: Include pointer-set.h.
11377         (variable): Change n_var_parts to char from int.  Add
11378         cur_loc_changed and in_changed_variables fields.
11379         (variable_canonicalize): Remove.
11380         (shared_var_p): New inline function.
11381         (unshare_variable): Maintain cur_loc_changed and
11382         in_changed_variables fields.  If var was in changed_variables,
11383         replace it there with new_var.  Just copy cur_loc instead of
11384         resetting it to something else.
11385         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
11386         (dataflow_set_union): Don't call variable_canonicalize.
11387         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
11388         of their DEBUG_EXPR_TREE_DECLs.
11389         (canonicalize_loc_order_check): Verify that cur_loc is NULL
11390         and in_changed_variables and cur_loc_changed is false.
11391         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
11392         and cur_loc_changed.  Don't update cur_loc here.
11393         (variable_merge_over_src): Don't call variable_canonicalize.
11394         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
11395         removing loc that is equal to cur_loc, clear cur_loc,
11396         set cur_loc_changed and ensure variable_was_changed is called.
11397         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
11398         compare pointers in cur_loc check, if it is equal to loc,
11399         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
11400         (variable_different_p): Remove compare_current_location argument,
11401         don't compare cur_loc.
11402         (dataflow_set_different_1): Adjust variable_different_p caller.
11403         (variable_was_changed): If dv had some var in changed_variables
11404         already, reset in_changed_variables flag for it and propagate
11405         cur_loc_changed over to the new variable.  On empty var
11406         always set cur_loc_changed.  Set in_changed_variables on whatever
11407         var is added to changed_variables.
11408         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
11409         Use shared_var_p.  When removing loc that is equal to cur_loc,
11410         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
11411         end, don't set it to something else, just call variable_was_changed.
11412         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
11413         loc being removed, clear cur_loc and set cur_loc_changed.
11414         Set cur_loc_changed if all locations have been removed.
11415         (struct expand_loc_callback_data): New type.
11416         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
11417         allocated.  Always create SUBREGs if simplify_subreg failed.
11418         Prefer to use cur_loc, when that fails and still in
11419         changed_variables (and seen first time) recompute it.  Set
11420         cur_loc_changed of variables which had to change cur_loc and
11421         compute elcd->cur_loc_changed if any of the subexpressions used
11422         had to change cur_loc.
11423         (vt_expand_loc): Adjust to pass arguments in
11424         expand_loc_callback_data structure.
11425         (vt_expand_loc_dummy): New function.
11426         (emitted_notes): New variable.
11427         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
11428         that weren't used for any other decl in current
11429         emit_notes_for_changes call call vt_expand_loc_dummy to update
11430         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
11431         first loc_chain location if NULL before.  Always use just
11432         cur_loc instead of first loc_chain location.  When cur_loc_changed
11433         is false, when not --enable-checking=rtl just don't emit any note.
11434         When rtl checking, compute the note and assert it is the same
11435         as previous note.  Clear cur_loc_changed and in_changed_variables
11436         at the end before removing from changed_variables.
11437         (check_changed_vars_3): New function.
11438         (emit_notes_for_changes): Traverse changed_vars to call
11439         check_changed_vars_3 on each changed var.
11440         (emit_notes_for_differences_1): Clear cur_loc_changed and
11441         in_changed_variables.  Recompute cur_loc of new_var.
11442         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
11443         (vt_emit_notes): Initialize and destroy emitted_notes.
11444
11445 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
11446
11447         PR rtl-optimization/42220
11448         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
11449         Use verify_reg_tracked to determine if we should use OP_OUT rather
11450         than OP_INOUT.
11451         (build_def_use): If we see an in-out operand for a register that we
11452         know nothing about, treat is an output if possible, fail the block if
11453         not.
11454
11455 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
11456
11457         PR debug/42897
11458         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
11459         permanently.
11460
11461 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
11462
11463         PR debug/42897
11464         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
11465         uses of relevant DEFs that are dead outside the loop too.
11466
11467 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
11468
11469         * var-tracking.c (dataflow_set_merge): Swap src and src2.
11470         Reverted:
11471         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
11472         PR debug/41371
11473         * var-tracking.c (values_to_unmark): New variable.
11474         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
11475         values_to_unmark vector.  Moved body to...
11476         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
11477         instead queue it into values_to_unmark vector.
11478         (vt_find_locations): Free values_to_unmark vector.
11479
11480 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
11481
11482         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
11483         (site.exp): Export them when plugins are enabled.
11484
11485 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
11486
11487         PR middle-end/42326
11488         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
11489         that contain scevs.
11490         (chrec_fold_multiply): Same.
11491
11492 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
11493
11494         PR c/43248
11495         * c-decl.c (build_compound_literal): Return early if init is
11496         an error_mark_node.
11497
11498 2010-03-04  Martin Jambor  <mjambor@suse.cz>
11499
11500         PR tree-optimization/43164
11501         PR tree-optimization/43191
11502         * tree-sra.c (type_consists_of_records_p): Reject records with
11503         zero-size bit-fields at the end.
11504
11505 2010-03-04  Mike Stump  <mikestump@comcast.net>
11506
11507         * Makefile.in (TAGS): Remove *.y.
11508
11509 2010-03-04  Richard Guenther  <rguenther@suse.de>
11510
11511         PR tree-optimization/40761
11512         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
11513         in reverse order.
11514         (my_rev_post_order_compute): New function.
11515         (init_pre): Call it.
11516
11517 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
11518
11519         PR middle-end/43209
11520         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
11521         decrease the cost of an IV candidate when the cost is infinite.
11522
11523 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11524
11525         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
11526         Use '3DNow!' for the extension of that name, ensure normal space
11527         after the string.
11528         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
11529
11530 2010-03-03  Jeff Law  <law@redhat.com>
11531
11532         * PR middle-end/32693
11533         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
11534         than gen_rtx_SUBREG.
11535         (extract_bit_field_1): Likewise.
11536
11537 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
11538
11539         * doc/sourcebuild.texi (Test directives): Document that arguments
11540         include-opts and exclude-opts are now optional for dg-skip-if,
11541         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
11542
11543 2010-03-03  Jason Merrill  <jason@redhat.com>
11544
11545         PR c++/12909
11546         * cgraph.h (varpool_node): Add extra_name field.
11547         * varpool.c (varpool_extra_name_alias): New.
11548         (varpool_assemble_decl): Emit extra name aliases.
11549         (varpool_mark_needed_node): Look past an extra name alias.
11550         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
11551         * lto-streamer-in.c (lto_input_tree): Read it.
11552         * lto-streamer-out.c (output_unreferenced_globals): Write it.
11553
11554 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
11555
11556         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
11557         (sparc*-*-solaris2*): ...this.
11558
11559 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
11560
11561         PR debug/43229
11562         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
11563         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
11564         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
11565         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
11566
11567         PR debug/43237
11568         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
11569         fallthrough to default handling, just with want_address 0 instead of 2.
11570         For single element lists, add_AT_loc directly, otherwise create an
11571         artificial variable DIE and stick location list to it.
11572
11573         PR debug/43177
11574         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
11575         (VAL_EXPR_HAS_REVERSE): Define.
11576         (reverse_op): New function.
11577         (add_stores): For reversible operations add an extra MO_VAL_USE.
11578
11579 2010-03-02  Jason Merrill  <jason@redhat.com>
11580
11581         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
11582
11583 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
11584
11585         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
11586         (sparc64-*-linux*): Likewise.
11587         (sparc64-*-solaris2*): Include assembler files before linker ones.
11588         (sparc-*-solaris2*): Simplify and reorder to match previous case.
11589         * config/sparc/gas.h: Delete.
11590         * config/sparc/sol2-64.h: Add copyright notice.
11591         * config/sparc/sol2-gas-bi.h: Likewise.
11592         * config/sparc/sol2-gld.h: Likewise.
11593         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
11594         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
11595         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
11596         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
11597         (sparc_elf_asm_named_section): Rename into...
11598         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
11599
11600 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
11601
11602         * config/alpha/alpha.c (override_options): Fix -mtune error message.
11603
11604 2010-03-02  Jeff Law  <law@redhat.com>
11605
11606         PR middle-end/42431
11607         * reload1.c (rtx_p, substitute_stack): Declare.
11608         (substitute): Record addresses of changed rtxs.
11609         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
11610         Restore the original rtx when complete.
11611         (reload): Free subsitute_stack when complete.
11612
11613 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
11614
11615         * doc/gccint.texi (menu): Add Testsuites as a chapter.
11616         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
11617         new chapter.
11618         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
11619         LTO Testing, gcov Testing, profopt Testing, compat Testing,
11620         Torture Tests): Change from subsection to section.
11621
11622 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
11623             Steven Bosscher  <steven@gcc.gnu.org>
11624
11625         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
11626         instead of bb.
11627
11628 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
11629
11630         PR middle-end/42640
11631         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
11632         the assignment from the new induction variable to the assignment
11633         of the value from the original loop PHI function.
11634
11635 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
11636             Daniel Jacobowitz  <dan@codesourcery.com>
11637
11638         * doc/sourcebuild.texi (Test directives): Clarify options to
11639         dg-skip-if.
11640
11641 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11642
11643         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
11644         Disable cfi directives unless GCC and gas agree on using read-only
11645         .eh_frame sections for 64-bit.
11646         * configure: Regenerate.
11647
11648 2010-03-01  Richard Guenther  <rguenther@suse.de>
11649
11650         PR tree-optimization/43220
11651         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
11652         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
11653
11654 2010-03-01  Richard Guenther  <rguenther@suse.de>
11655             Martin Jambor  <mjambor@suse.cz>
11656
11657         PR middle-end/41250
11658         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
11659         gimplified parameters.
11660
11661 2010-03-01  Christian Bruel  <christian.bruel@st.com>
11662
11663         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
11664
11665 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
11666
11667         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
11668
11669 2010-03-01  Richard Guenther  <rguenther@suse.de>
11670
11671         PR middle-end/43213
11672         * expr.c (expand_assignment): Use the alias-oracle to tell
11673         if the rhs aliases the result decl.
11674
11675 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11676
11677         PR pch/14940
11678         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
11679         to sol_gt_pch_get_address.
11680         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
11681         64-bit, SPARC and x86.
11682         (sol_gt_pch_get_address): New function.
11683
11684 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
11685
11686         * toplev.h (inform_n, error_n): Declare.
11687         * diagnostic.c (inform_n, error_n): New function.
11688
11689 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
11690
11691         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
11692         has no rtl yet when processing local_decls, queue it and recheck
11693         if deferred stack allocation hasn't assigned it rtl.
11694
11695 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
11696
11697         * config/sh/sh.c (unspec_bbr_uid): New.
11698         (gen_block_redirect): Use it instead of INSN_UID.
11699         (gen_far_branch): Likewise.
11700
11701 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
11702
11703         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
11704         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
11705
11706 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11707
11708         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
11709         (Warning Options): -Wno-conversion-null is valid for
11710         Objective-C++ as well.
11711         * doc/tm.texi (Named Address Spaces): Likewise.
11712         * doc/plugins.texi (Plugins): Replace TABs with spaces.
11713         * doc/tree-ssa.texi (Tree SSA): Likewise.
11714
11715 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
11716
11717         PR bootstrap/43202
11718         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
11719         by default.  Don't set the default arch for
11720         i[34567]86-*-darwin*|x86_64-*-darwin*.
11721
11722 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
11723
11724         PR bootstrap/43202
11725         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
11726         default.  Set the default 32bit/64bit archs with $with_arch
11727         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
11728
11729 2010-02-27  Richard Guenther  <rguenther@suse.de>
11730
11731         PR tree-optimization/43186
11732         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
11733         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
11734         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
11735         unroller iterations.
11736
11737 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
11738
11739         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
11740         required and i[34567]86-*-* targets don't support 64bit ISA.
11741
11742 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
11743
11744         PR ada/43096
11745         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
11746         the same alias set.
11747
11748 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
11749
11750         * config.gcc: Set the default arch at least to Prescott for
11751         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
11752         if SSE math is enabled.
11753
11754 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11755
11756         * diagnostic.c (diagnostic_initialize): Update.
11757         (diagnostic_report_diagnostic): Test inhibit_notes_p for
11758         informative notes.
11759         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
11760         (diagnostic_inhibit_notes): New.
11761         * toplev.c (process_options): inhibit notes with -fcompare-debug.
11762
11763 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11764
11765         PR c/20631
11766         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
11767         * doc/standards.texi: Likewise.
11768         * doc/extend.texi: Likewise.
11769         * doc/trouble.texi: Likewise.
11770         * doc/cppopts.texi: Likewise.
11771         * doc/install.texi: Likewise.
11772         * c.opt (std=c90,std=gnu90): New options.
11773         * c-opts.c (c_common_handle_option): Handle them.
11774
11775 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11776
11777         PR c/24577
11778         * c-decl.c (undeclared_variable): Use an informative note.
11779
11780 2010-02-26  Richard Guenther  <rguenther@suse.de>
11781
11782         PR tree-optimization/43186
11783         * gimple.h (gimple_fold): Remove.
11784         * gimple.c (gimple_fold): Remove.  Inline into single user ...
11785         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
11786         Try harder for conditions.
11787
11788 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
11789
11790         PR debug/43190
11791         * function.c (used_types_insert): Don't skip through named pointer
11792         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
11793         and it is different from the main variant's type.
11794
11795 2010-02-26  Nick Clifton  <nickc@redhat.com>
11796
11797         * config/rx/rx.md (sminsi3): Remove bogus alternative.
11798
11799 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
11800
11801         * config.gcc: Support --with-fpmath=sse for x86.
11802
11803         * config/i386/ssemath.h: New.
11804
11805         * doc/install.texi (--with-fpmath=sse): Documented.
11806
11807 2010-02-26  Richard Guenther  <rguenther@suse.de>
11808
11809         PR tree-optimization/43188
11810         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
11811         vector types of over-aligned element type.
11812
11813 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
11814
11815         PR target/43175
11816         * config/i386/i386.c (expand_vec_perm_blend): Use correct
11817         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
11818
11819 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
11820
11821         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
11822
11823 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
11824
11825         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
11826         * var-tracking.c: Include diagnostic.h.
11827         (debug_dv): New function.
11828         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
11829
11830         PR debug/43160
11831         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
11832         (add_value_chain, add_value_chains, remove_value_chain,
11833         remove_value_chains): Handle DEBUG_EXPRs.
11834         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
11835
11836         PR debug/43161
11837         * regcprop.c (struct queued_debug_insn_change): New type.
11838         (struct value_data_entry): Add debug_insn_changes field.
11839         (struct value_data): Add n_debug_insn_changes field.
11840         (debug_insn_changes_pool): New variable.
11841         (free_debug_insn_changes, apply_debug_insn_changes,
11842         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
11843         (kill_value_one_regno): Call free_debug_insn_changes if needed.
11844         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
11845         fields.
11846         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
11847         changes for them.
11848         (copyprop_hardreg_forward_1): Don't call apply_change_group for
11849         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
11850         changes, call cprop_find_used_regs via note_stores.
11851         (copyprop_hardreg_forward): When copying vd from predecessor
11852         which has any queued DEBUG_INSN changes, make sure the pointers are
11853         cleared.  At the end call df_analyze and then if there are any
11854         DEBUG_INSN changes queued at the end of some basic block for still
11855         live registers, apply them.
11856         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
11857
11858 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
11859
11860         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
11861         (arm*-*-*): Ditto.
11862
11863 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
11864
11865         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
11866         targets.  Set the default with_cpu/with_arch from arch/cpu.
11867         Allow x86-64 and native for with_cpu/with_arch.
11868
11869 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
11870
11871         * ebitmap.c: Change calls to verify_popcount with calls to
11872         sbitmap_verify_popcount.
11873         (ebitmap_clear_bit): Fixed map->cacheindex test and
11874         map>cache update when bit clearing results in an empty
11875         element.
11876
11877 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
11878
11879         PR target/43154
11880         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
11881         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
11882         and support both V2DF and V2DI modes.
11883         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
11884         support both V2DF and V2DI modes.
11885         (general): Delete trailing whitespace from a few patterns.
11886
11887         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11888         V2DF/V2DI interleave high/low builtins.
11889
11890         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
11891         new VSX builtins.
11892
11893         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
11894         interleave high/low functions.
11895
11896 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
11897
11898         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
11899         #pragma extern_prefix.
11900
11901 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
11902
11903         PR debug/43166
11904         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
11905         BLKmode, assert op0 is a MEM and just adjust its mode.
11906
11907         PR debug/43165
11908         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
11909         if bitpos isn't multiple of mode's bitsize.
11910
11911 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11912
11913         * c.opt (-ftemplate-depth=): New.
11914         (-ftemplate-depth-): Deprecate.
11915         * optc-gen.awk: Handle -ftemplate-depth=.
11916         * opth-gen.awk: Likewise.
11917         * c-opts.c (c_common_handle_option): Likewise.
11918         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
11919
11920 2010-02-24  Jason Merrill  <jason@redhat.com>
11921
11922         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
11923
11924 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11925
11926         * cfg.c (alloc_aux_for_block): Remove inline.
11927         (alloc_aux_for_edge): Likewise.
11928
11929 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11930
11931         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
11932
11933 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11934
11935         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
11936         * config/i386/sol2-gas.h: New file.
11937         * config.gcc (i[34567]86-*-solaris2*): Use it.
11938
11939 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11940
11941         PR c/43128
11942         * c-typeck.c (ep_convert_and_check): New.
11943         (build_conditional_expr): Use it.
11944         (build_binary_op): Likewise.
11945
11946 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
11947
11948         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
11949
11950         PR debug/43150
11951         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
11952         bounds even for -O+.
11953         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
11954         expr needs to have DECL_NAME set.
11955
11956 2010-02-24  Nick Clifton  <nickc@redhat.com>
11957
11958         * config/mep/mep.c: Include gimple.h.
11959         (mep_function_uses_sp): Delete unused function.
11960         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
11961         parameters.  Use unsigned integers to count args.  Return a
11962         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
11963
11964 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
11965
11966         PR target/43107
11967         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
11968         greater or equal to nelt instead of 2 * nelt.
11969         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
11970         with nelt - 1.
11971
11972 2010-02-23  Jason Merrill  <jason@redhat.com>
11973
11974         PR debug/42800
11975         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
11976         in cfun->local_decls even if they have register types.
11977
11978         PR c++/42837
11979         * stor-layout.c (place_field): Don't warn about unnecessary
11980         DECL_PACKED if the type is packed.
11981
11982 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
11983
11984         PR target/43139
11985         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
11986         GOTOFF relocs, even when the base reg isn't pic pointer.
11987
11988 2010-02-23  Michael Matz  <matz@suse.de>
11989
11990         PR debug/43077
11991         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
11992         (expand_gimple_basic_block): Generate and use debug temps if there
11993         are debug uses left after the last real use of TERed ssa names.
11994         Unlink debug immediate uses when they are expanded.
11995
11996 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11997
11998         PR 43123
11999         * config/i386/i386.c (override_options): Reorganise to provide
12000         better error messages.
12001
12002 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
12003
12004         PR middle-end/43083
12005         * graphite-scop-detection.c (create_single_exit_edge): Move
12006         the call to find_single_exit_edge to....
12007         (create_sese_edges): ...here.  Don't handle multiple edges
12008         exiting the function.
12009         (build_graphite_scops): Don't handle multiple edges
12010         exiting the function.
12011
12012 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
12013
12014         PR middle-end/43097
12015         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
12016         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
12017
12018 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
12019
12020         PR middle-end/43026
12021         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
12022
12023 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12024
12025         PR c++/43126
12026         * c-typeck.c (convert_arguments): Print declaration location.
12027         * c-common.c (validate_nargs): Rename as
12028         builtin_function_validate_nargs.
12029         (check_builtin_function_arguments): Update.
12030
12031 2010-02-22  Richard Guenther  <rguenther@suse.de>
12032
12033         PR lto/43045
12034         * tree-inline.c (declare_return_variable): Use the type of
12035         the call stmt lhs if available.
12036
12037 2010-02-22  Duncan Sands  <baldrick@free.fr>
12038
12039         * passes.c (register_pass): Always consider all pass lists when
12040         ref_pass_instance_number is zero.
12041
12042 2010-02-22  Richard Guenther  <rguenther@suse.de>
12043
12044         PR tree-optimization/42749
12045         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
12046         parameter.  Do arithmetic in the original type.
12047         (update_accumulator_with_ops): Likewise.
12048         (adjust_accumulator_values): Adjust.
12049
12050 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12051
12052         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
12053         (QI to BLKmode splitter): New splitter.
12054
12055 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
12056
12057         * config/i386/i386.c (initial_ix86_tune_features): Turn on
12058         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
12059
12060 2010-02-22  Richard Guenther  <rguenther@suse.de>
12061
12062         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
12063
12064 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
12065
12066         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
12067         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
12068         ($(T)crti.o, $(T)crtn.o): Remove rules.
12069
12070 2010-02-21  Tobias Burnus  <burnus@net-b.de>
12071
12072         PR fortran/35259
12073         * doc/invoke.texi (-fassociative-math): Document that this
12074         option is automatically enabled for Fortran.
12075
12076 2010-02-20  David S. Miller  <davem@davemloft.net>
12077
12078         * configure.ac: Test if linker and assembler properly support
12079         GOTDATA_OP relocations.
12080         * configure: Rebuild.
12081         * config.in: Likewise.
12082         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
12083         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
12084         (movsi_high_pic): Likewise.
12085         (movdi_lo_sum_pic): Likewise.
12086         (movdi_high_pic): Likewise.
12087         (movsi_pic_gotdata_op): New pattern.
12088         (movdi_pic_gotdata_op): Likewise.
12089         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
12090         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
12091
12092 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
12093
12094         PR target/43067
12095         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
12096         attribute to ssemul.
12097         (xop_mulv2div2di3_high): Ditto.
12098
12099 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12100
12101         PR c++/35669
12102         * c.opt (Wconversion-null): New option.
12103         * doc/invoke.texi (Wconversion-null): Document.
12104
12105 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12106
12107         * common.opt (Wlarger-than-): Add Undocumented.
12108
12109 2010-02-19  Mike Stump  <mikestump@comcast.net>
12110
12111         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
12112
12113 2010-02-19  Jason Merrill  <jason@redhat.com>
12114
12115         PR target/40332
12116         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
12117         * configure: Likewise.
12118
12119 2010-02-20  Alan Modra  <amodra@gmail.com>
12120
12121         PR middle-end/42344
12122         * cgraph.h (cgraph_make_decl_local): Declare.
12123         * cgraph.c (cgraph_make_decl_local): New function.
12124         (cgraph_make_node_local): Use it.
12125         * cgraphunit.c (cgraph_function_versioning): Likewise.
12126         * ipa.c (function_and_variable_visibility): Likewise.
12127
12128 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
12129
12130         PR bootstrap/43121
12131         * except.c (sjlj_emit_function_enter): Don't call
12132         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
12133         directly.
12134         * rtl.h (add_reg_br_prob_note): Remove prototype.
12135
12136 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12137
12138         PR 41779
12139         * c-common.c (conversion_warning): Remove widening conversions
12140         before checking the conversion of integers to reals.
12141
12142 2010-02-19  Mike Stump  <mikestump@comcast.net>
12143
12144         PR middle-end/43125
12145         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
12146
12147         PR objc/43061
12148         * cgraphunit.c (process_function_and_variable_attributes): Check
12149         DECL_PRESERVE_P instead of looking up attribute "used".
12150         * ipa-pure-const.c (check_decl): Likewise.
12151         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
12152         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
12153         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
12154         instead of attribute "used".
12155         * config/sol2-c.c (solaris_pragma_init): Likewise.
12156         (solaris_pragma_fini): Likewise.
12157
12158 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
12159
12160         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
12161         Use XCNEW instead of xcalloc.
12162         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
12163         XNEW instead of xmalloc.
12164         (get_fields): Use XNEWVEC instead of xmalloc.
12165
12166         PR debug/43084
12167         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
12168         populate vars array.
12169         (create_new_general_access): For debug stmts just reset value.
12170         (get_stmt_accesses): For accesses within debug stmts just record them
12171         using add_access_to_acc_sites instead of preventing the peeling or
12172         counting them as accesses.
12173
12174         PR middle-end/42233
12175         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
12176
12177 2010-02-19  Richard Guenther  <rguenther@suse.de>
12178
12179         PR tree-optimization/42916
12180         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
12181         instructions.
12182
12183 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
12184
12185         * configure.ac: Replace all uses of changequote in macro arguments
12186         with proper quoting.
12187
12188 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
12189
12190         PR middle-end/42233
12191         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
12192
12193 2010-02-19  Richard Guenther  <rguenther@suse.de>
12194
12195         PR tree-optimization/42944
12196         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
12197         test for aliasing with errno.
12198
12199 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
12200
12201         PR middle-end/42233
12202         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
12203         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
12204         * dojump.c: Include output.h.
12205         (inv): New inline function.
12206         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
12207         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
12208         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
12209         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
12210         argument, pass it down to other calls.
12211         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
12212         add REG_BR_PROB note to the conditional jump.
12213         * cfgexpand.c (add_reg_br_prob_note): Removed.
12214         (expand_gimple_cond): Don't call it, add the probability
12215         as last argument to jumpif_1/jumpifnot_1.
12216         * Makefile.in (dojump.o): Depend on output.h.
12217         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
12218         callers.
12219         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
12220         * stmt.c (do_jump_if_equal): Likewise.
12221         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
12222         * loop-unswitch.c (compare_and_jump_seq): Likewise.
12223         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
12224         Likewise.
12225         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
12226         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
12227         jumpifnot_1 callers.
12228         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
12229         callers.
12230         (store_expr): Adjust jumpifnot caller.
12231         (store_constructor): Adjust jumpif caller.
12232
12233         PR middle-end/42233
12234         * gimplify.c (gimple_boolify): For __builtin_expect call
12235         gimple_boolify also on its first argument.
12236
12237 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
12238
12239         * configure.ac (gnu-unique-object): Wrap regexps using [] in
12240         changequote block.
12241         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
12242         * configure: Regenerated.
12243
12244 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12245
12246         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
12247         lang_hooks.types_compatible_p instead of comptypes.
12248
12249 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
12250
12251         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
12252         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
12253         if __prefer_thumb__ is defined.
12254
12255 2010-02-18  Martin Jambor  <mjambor@suse.cz>
12256
12257         PR tree-optimization/43066
12258         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
12259         array with zero-sized element type.
12260
12261 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
12262
12263         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
12264         rtx, allocate struct var_loc_node here and return it to the
12265         caller, and only if it is actually needed.
12266         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
12267         move it earlier and return immediately if it returns NULL.
12268
12269 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
12270
12271         * config/sparc/gas.h: New file.  Restore
12272         TARGET_ASM_NAMED_SECTION to its ELF default.
12273         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
12274         check !HAVE_GNU_AS.
12275         * config/sparc/sparc.c (sparc_elf_asm_named_section):
12276         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
12277         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
12278         after sparc/sysv4.h.
12279
12280 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
12281
12282         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
12283
12284 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
12285
12286         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
12287         patterns from predicated pattern.
12288
12289 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
12290
12291         PR target/43103
12292         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
12293         for insn mnemonic suffix.
12294
12295 2010-02-17  Richard Guenther  <rguenther@suse.de>
12296
12297         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
12298         to loop PHI nodes.
12299
12300 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
12301
12302         PR debug/42918
12303         * caller-save.c (save_call_clobbered_regs): If BB ends with
12304         a DEBUG_INSN, move any notes in between last real insn and the last
12305         DEBUG_INSN after the last DEBUG_INSN.
12306
12307 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
12308
12309         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
12310         Fix return type.  Fix argument type.  Explain meaning of return value.
12311
12312 2010-02-16  Richard Guenther  <rguenther@suse.de>
12313
12314         PR tree-optimization/41043
12315         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
12316         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
12317         statements ...
12318         (vrp_visit_phi_node): ... but only for loop PHI nodes.
12319
12320 2010-02-16  Ira Rosen  <irar@il.ibm.com>
12321
12322         PR tree-optimization/43074
12323         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
12324         * tree-vect-loop.c (vect_analyze_loop_operations): Add
12325         vectorizable cycles in hybrid SLP check.
12326         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
12327
12328 2010-02-16  Richard Guenther  <rguenther@suse.de>
12329
12330         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
12331         (true_dependence): If memrefs_conflict_p computes must-alias
12332         trust it.  Move TBAA check after offset-based disambiguation.
12333         (canon_true_dependence): Likewise.
12334
12335 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
12336
12337         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
12338         * doc/invoke.texi: Document it.
12339         * var-tracking.c: Include toplev.h and params.h.
12340         (vt_find_locations): Return bool indicating success.  Compute
12341         hash sizes unconditionally.  Check new parameter, report.
12342         (variable_tracking_main_1): Check vt_find_locations results and
12343         retry.  Renamed from...
12344         (variable_tracking_main): ... this.  New wrapper to preserve
12345         flag_var_tracking_assignments.
12346         * Makefile.in (var-tracking.o): Adjust dependencies.
12347
12348 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
12349             Jakub Jelinek <jakub@redhat.com>
12350
12351         PR target/42854
12352         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
12353         if weak_import attribute is present.
12354         * config/darwin.c (machopic_select_section): Likewise.
12355
12356 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
12357
12358         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
12359         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
12360         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
12361         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
12362
12363         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
12364         types.
12365
12366         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
12367         Fix argument types.
12368
12369         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
12370         Rewrite text to refer to the names.
12371
12372 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
12373
12374         * config/i386/i386-builtin-types.def
12375         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
12376         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
12377         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
12378         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
12379         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
12380         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
12381         IX86_BUILTIN_VPERMIL2PS256.
12382         (MULTI_ARG_4_DF2_DI_I): Defined.
12383         (MULTI_ARG_4_DF2_DI_I1): Defined.
12384         (MULTI_ARG_4_SF2_SI_I): Defined.
12385         (MULTI_ARG_4_SF2_SI_I1): Defined.
12386         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
12387         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
12388         __builtin_ia32_vpermil2ps256.
12389         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
12390         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
12391         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
12392         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
12393         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
12394         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
12395         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
12396         CODE_FOR_xop_vpermil2v8sf3.
12397         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
12398         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
12399         * config/i386/xopintrin.h (_mm_permute2_pd): New.
12400         (_mm256_permute2_pd): New.
12401         (_mm_permute2_ps): New.
12402         (_mm256_permute2_ps): New.
12403
12404 2010-02-15  Nick Clifton  <nickc@redhat.com>
12405
12406         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
12407         boolean parameters.  Use emit_jump_insn when emitting a pop
12408         instruction containing a return insn.
12409         (push): Use 'true' rather than '1' as second parameter to F.
12410         (h8300_expand_prologue): Likewise.
12411         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
12412         (h8300_expand_epilogue): Likewise.
12413
12414 2010-02-15  Richard Guenther  <rguenther@suse.de>
12415
12416         PR middle-end/43068
12417         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
12418         if that is zero.
12419
12420 2010-02-15  Nick Clifton  <nickc@redhat.com>
12421
12422         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
12423         delta.
12424
12425 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
12426
12427         * intl.c (fake_ngettext): New function.
12428         * intl.h (fake_ngettext): Declare.
12429         (ngettext): Define macro.
12430         * collect2.c (notice_translated): New function.
12431         (main): Use notice_translated and ngettext.
12432         * collect2.h (notice_translated): Declare.
12433
12434 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
12435
12436         * reorg.c (delete_computation): Comment fixes.
12437         * caller-save.c (setup_save_areas): Idem.
12438         * sel-sched-dump.c (dump_lv_set): Idem.
12439         * rtl.def: Idem.
12440
12441 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12442
12443         * config/s390/s390.c (s390_sched_init): New function.
12444         (TARGET_SCHED_INIT): Target hook defined.
12445
12446 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
12447             Jack Howarth  <howarth@bromo.med.uc.edu>
12448             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
12449
12450         PR target/42982
12451         Partial revert of unintended change in fix for PR41605.
12452         * config/darwin.h: Fix typo.
12453         * config/darwin9.h: Same.
12454
12455 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
12456
12457         * c-pch.c (pch_init): Clear v.
12458
12459 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
12460
12461         PR middle-end/42930
12462         * graphite-scop-detection.c (graphite_can_represent_scev): Call
12463         graphite_can_represent_init for MULT_EXPR.
12464
12465 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
12466
12467         PR middle-end/42914
12468         PR middle-end/42530
12469         * graphite-sese-to-poly.c (remove_phi): New.
12470         (translate_scalar_reduction_to_array): Call remove_phi.
12471
12472 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
12473
12474         PR middle-end/42771
12475         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
12476         * graphite-clast-to-gimple.h (gloog): Update declaration.
12477         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
12478         * graphite-poly.h (struct poly_bb): Add missing comments.
12479         (struct scop): Add poly_scop_p field.
12480         (POLY_SCOP_P): New.
12481         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
12482         * graphite.c (graphite_transform_loops): Build the polyhedral
12483         representation for each scop before code generation.
12484         * sese.c (rename_variables_in_operand): Removed.
12485         (rename_variables_in_expr): Return the renamed expression.
12486         (rename_sese_parameters): New.
12487         * sese.h (rename_sese_parameters): Declared.
12488
12489 2010-02-11  Richard Guenther  <rguenther@suse.de>
12490
12491         PR tree-optimization/42998
12492         * tree-ssa-pre.c (create_expression_by_pieces): Treat
12493         POINTER_PLUS_EXPR properly.
12494
12495 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
12496             Changpeng Fang  <changpeng.fang@amd.com>
12497
12498         PR middle-end/40886
12499         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
12500         the cost of an IV candidate when the IV is used in a test against zero.
12501
12502         * gcc.dg/tree-ssa/ivopts-3.c: New.
12503
12504 2010-02-11  Richard Guenther  <rguenther@suse.de>
12505
12506         PR lto/41664
12507         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
12508         pointer-vs-decl case by swapping refs.  Handle some cases
12509         of pointer-vs-decl disambiguations more conservatively.
12510         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
12511         to false after expanding.
12512
12513 2010-02-11  Richard Guenther  <rguenther@suse.de>
12514
12515         PR driver/43021
12516         * gcc.c (process_command): Handle LTO file@offset case more
12517         appropriately.
12518
12519 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
12520
12521         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
12522         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
12523         of DEBUG_INSNs.
12524         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
12525
12526         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
12527         if MEM's mode size isn't DWARF2_ADDR_SIZE.
12528         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
12529         Optimize eq/ne comparisons when both arguments are known to be
12530         zero-extended.
12531         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
12532         Don't mask operands unnecessarily if they are known to be already
12533         zero-extended.
12534
12535 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
12536
12537         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
12538         instead of loop.
12539
12540 2010-02-10  Richard Guenther  <rguenther@suse.de>
12541
12542         PR tree-optimization/43017
12543         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
12544         for wrapping signed arithmetic.
12545
12546 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
12547
12548         PR debug/43010
12549         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
12550         if no debug info should be emitted for it.
12551
12552 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
12553
12554         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
12555         note when flag_exceptions is set.
12556
12557 2010-02-10  Duncan Sands  <baldrick@free.fr>
12558
12559         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
12560
12561 2010-02-10  Richard Guenther  <rguenther@suse.de>
12562
12563         PR c/43007
12564         * tree.c (get_unwidened): Handle constants.
12565         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
12566
12567 2010-02-10  Martin Jambor  <mjambor@suse.cz>
12568
12569         PR lto/42985
12570         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
12571         check for variable argument counts independently.
12572
12573 2010-02-10  Christian Bruel  <christian.bruel@st.com>
12574
12575         PR target/42841
12576         * config/sh/sh.c (find_barrier): Increase length for non delayed
12577         conditional branches.
12578
12579 2010-02-10  Christian Bruel  <christian.bruel@st.com>
12580
12581         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
12582
12583 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
12584
12585         * builtins.c (set_builtin_user_assembler_name): Also handle
12586         ffs if int is smaller than word.
12587
12588 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
12589
12590         PR middle-end/42973
12591         * ira-conflicts.c (get_dup): Remove.
12592         (process_reg_shuffles): Add new parameter.  Use it as an
12593         additional guard for copy generation.
12594         (add_insn_allocno_copies): Rewrite.
12595
12596 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
12597
12598         * common.opt (fsched2-use-traces): Preserved for backward
12599         compatibility.
12600         * doc/invoke.texi: Remove the documentation about option
12601         -fsched2-use-traces.
12602         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
12603         flag_sched2_use_traces.
12604         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
12605         the backward compatibility flag section.
12606
12607 2010-02-09  Richard Guenther  <rguenther@suse.de>
12608
12609         PR tree-optimization/43008
12610         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
12611         make HEAP variables initialized from global memory if they
12612         are not known builtin functions.
12613         (find_func_aliases): Adjust.
12614
12615 2010-02-09  Richard Guenther  <rguenther@suse.de>
12616
12617         PR tree-optimization/43000
12618         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
12619         arithmetic manually.
12620
12621 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
12622
12623         PR tree-optimization/42931
12624         * tree-loop-linear.c (try_interchange_loops): Don't call
12625         double_int_mul if estimated_loop_iterations failed.
12626
12627 2010-02-08  Martin Jambor  <mjambor@suse.cz>
12628
12629         PR middle-end/42898
12630         * tree-sra.c (build_accesses_from_assign): Do not mark in
12631         should_scalarize_away_bitmap if stmt has volatile ops.
12632         (sra_modify_assign): Do not process assigns piecemeal if if stmt
12633         has volatile ops.
12634
12635 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
12636
12637         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
12638
12639 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
12640
12641         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
12642         before the pattern.
12643
12644 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
12645
12646         PR middle-end/42946
12647         * df-core.c (df_finish_pass): Change type of saved_flags to int.
12648
12649 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
12650
12651         PR middle-end/42988
12652         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
12653         to unknown_dependence.
12654         (graphite_legal_transform_dr): Handle the unknown_dependence.
12655         (graphite_carried_dependence_level_k): Same.
12656
12657 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
12658
12659         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
12660
12661 2010-02-07  Richard Guenther  <rguenther@suse.de>
12662
12663         PR middle-end/42991
12664         * expr.c (get_inner_reference): Always initialize *pbitsize.
12665
12666 2010-02-07  Richard Guenther  <rguenther@suse.de>
12667
12668         PR middle-end/42956
12669         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
12670         new ARRAY_REFs on variable size element or minimal index arrays.
12671         Complete.
12672         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
12673         gimple_fold_indirect_ref.
12674
12675 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
12676
12677         PR target/42957
12678         * arm.c (arm_override_options): Just return if the user has specified
12679         an invalid fpu name.
12680
12681 2010-02-03  Jason Merrill  <jason@redhat.com>
12682
12683         PR c++/42870
12684         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
12685         i386_pe_maybe_record_exported_symbol.
12686
12687 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
12688
12689         PR target/42924
12690         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
12691         (pa_delegitimize_address): New function.
12692
12693 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
12694
12695         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
12696         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
12697
12698 2010-02-05  Richard Guenther  <rguenther@suse.de>
12699
12700         PR lto/42762
12701         * lto-streamer-in.c (get_resolution): Deal with references
12702         to undefined functions.
12703
12704 2010-02-05  Richard Guenther  <rguenther@suse.de>
12705
12706         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
12707         (fold_const_aggregate_ref): Likewise.
12708         (ccp_fold_stmt): Substitute loads.
12709         (maybe_fold_reference): Verify types before substituting.
12710         Unshare properly.
12711         (fold_gimple_assign): Unshare properly.
12712         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
12713
12714 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
12715
12716         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
12717         for rs6000_gen_cell_microcode.
12718
12719 2010-02-04  Richard Guenther  <rguenther@suse.de>
12720
12721         PR rtl-optimization/42952
12722         * dse.c (const_or_frame_p): Remove MEM handling.
12723
12724 2010-02-04  Nick Clifton  <nickc@redhat.com>
12725
12726         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
12727         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
12728         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
12729         (mn10300_asm_output_mi_thunk): New function.
12730         (mn10300_can_output_mu_thunk): New function.
12731         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
12732         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
12733         (FUNCTION_ARG): Delete incorrect comment.
12734
12735 2010-02-03  Jason Merrill  <jason@redhat.com>
12736
12737         PR c++/40138
12738         * fold-const.c (operand_equal_p): Handle erroneous types.
12739
12740 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
12741
12742         * config/h8300/h8300.md (can_delay): Fix attibute condition.
12743
12744 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
12745
12746         PR rtl-optimization/42941
12747         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
12748         of xmalloc.
12749
12750 2010-02-03  Jason Merrill  <jason@redhat.com>
12751
12752         PR c++/35652
12753         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
12754
12755 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
12756
12757         PR debug/42896
12758         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
12759         (cselib_reset_table): Renamed from...
12760         (cselib_reset_table_with_next_value): ... this.
12761         (cselib_get_next_uid): Renamed from...
12762         (cselib_get_next_unknown_value): ... this.
12763         * cselib.c (next_uid): Renamed from...
12764         (next_unknown_value): ... this.
12765         (cselib_clear_table): Adjust.
12766         (cselib_reset_table): Adjust.  Renamed from...
12767         (cselib_reset_table_with_next_value): ... this.
12768         (cselib_get_next_uid): Adjust.  Renamed from...
12769         (cselib_get_next_unknown_value): ... this.
12770         (get_value_hash): Use hash.
12771         (cselib_hash_rtx): Likewise.
12772         (new_cselib_val): Adjust.  Set and dump uid.
12773         (cselib_lookup_mem): Pass next_uid as hash.
12774         (cselib_subst_to_values): Likewise.
12775         (cselib_log_lookup): Dump uid.
12776         (cselib_lookup): Pass next_uid as hash.  Adjust.
12777         (cselib_process_insn): Adjust.
12778         (cselib_init): Initialize next_uid.
12779         (cselib_finish): Adjust.
12780         (dump_cselib_table): Likewise.
12781         * dse.c (canon_address): Dump value uid.
12782         * print-rtl.c (print_rtx): Print value uid.
12783         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
12784         (dvuid): New type.
12785         (dv_uid): New function, sort of renamed from...
12786         (dv_htab_hash): ... this, reimplemented in terms of it and...
12787         (dv_uid2hash): ... this.  New.
12788         (variable_htab_eq): Drop excess assertions.
12789         (tie_break_pointers): Removed.
12790         (canon_value_cmp): Compare uids.
12791         (variable_post_merge_New_vals): Print uids.
12792         (vt_add_function_parameters): Adjust.
12793         (vt_initialize): Reset table.  Adjust.
12794
12795 2010-02-03  Richard Guenther  <rguenther@suse.de>
12796
12797         PR tree-optimization/42944
12798         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
12799         (call_may_clobber_ref_p_1): Likewise.  Properly handle
12800         malloc and calloc clobbering errno.
12801
12802 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
12803
12804         * doc/invoke.texi: Fix name of sched1 dump.
12805
12806         * opts.c (decode_options): Set flag_tree_switch_conversion
12807         only conditionally on optimize >= 2.
12808
12809         * gcse.c: Assorted comment fixes in pass description.
12810
12811 2010-02-03  Anthony Green  <green@moxielogic.com>
12812
12813         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
12814         nop padding in order to maintain alignment of storage location of
12815         target function address.
12816         (moxie_trampoline_init): Store target function address at newly
12817         aligned location.
12818         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
12819         to 32.
12820         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
12821
12822 2010-02-03  Richard Guenther  <rguenther@suse.de>
12823
12824         PR middle-end/42927
12825         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
12826
12827 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12828
12829         * config.gcc: Reenable check for obsolete targets.
12830         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
12831         mips-sgi-irix6.[0-4]*.
12832
12833 2010-02-02  Nick Clifton  <nickc@redhat.com>
12834
12835         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
12836         constant size of 4 as being the same as 0.
12837         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
12838         can take values in the range 0..4.
12839
12840 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
12841
12842         PR java/41991
12843         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
12844         as _darwin10_Unwind_FindEnclosingFunction().
12845         * libgcc-libsystem.ver: New.
12846
12847 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
12848
12849         PR target/41399
12850         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
12851         implicitly set registers.
12852
12853 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
12854
12855         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
12856         (arm_override_options): Allow automatic selection of the thread
12857         pointer register if thumb2.
12858         (legitimize_pic_address): Improve code sequences for Thumb2.
12859         (arm_call_tls_get_addr): Likewise.
12860         (legitimize_tls_address): Likewise.
12861         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
12862         (pic_load_addr_32bit): ... this.  New named pattern.
12863         * thumb2.md (pic_load_addr_thumb2): Delete.
12864         (pic_load_dot_plus_four): Delete.
12865         (tls_load_dot_plus_four): New named pattern.
12866
12867 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12868
12869         PR libgomp/29986
12870         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
12871         Document fix for TLS bug.
12872
12873 2010-01-31  Richard Guenther  <rguenther@suse.de>
12874
12875         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
12876         conservatively correct.
12877
12878 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12879
12880         PR target/42850
12881         Revert:
12882         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12883
12884         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
12885
12886 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12887
12888         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
12889
12890 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
12891
12892         * config.gcc: Adjust order of makefile fragments for mingw targets.
12893
12894 2010-01-31  Richard Guenther  <rguenther@suse.de>
12895
12896         PR middle-end/42898
12897         * gimplify.c (gimplify_init_constructor): For volatile LHS
12898         initialize a temporary.
12899
12900 2010-01-31  Matthias Klose  <doko@ubuntu.com>
12901
12902         * configure.ac: Fix __stack_chk_fail check for cross builds configured
12903         --with-headers
12904         * configure: Regenerate.
12905
12906 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
12907
12908         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
12909         the same alias set and their sizes different constantness.
12910         (aliasing_component_refs_p): Revert 2009-10-24 change.
12911
12912 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12913
12914         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
12915         unused.
12916
12917 2010-01-29  Richard Guenther  <rguenther@suse.de>
12918
12919         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
12920         Assert we successfully updated the call.
12921
12922 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
12923
12924         PR rtl-optimization/42889
12925         * df.h (df_set_bb_dirty_nonlr): New prototype.
12926         * df-core.c (df_set_bb_dirty_nonlr): New function.
12927         * df-scan.c (df_insn_rescan): Call it instead of
12928         df_set_bb_dirty for DEBUG_INSNs.
12929
12930 2010-01-29  Richard Guenther  <rguenther@suse.de>
12931
12932         PR middle-end/37448
12933         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
12934         quadratic behavior in most cases.
12935
12936 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
12937
12938         PR target/42891
12939         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
12940         in the call to gen_x86_movsicc_0_m1.
12941
12942 2010-01-28  Richard Guenther  <rguenther@suse.de>
12943
12944         PR tree-optimization/42871
12945         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
12946
12947 2010-01-28  Richard Guenther  <rguenther@suse.de>
12948
12949         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
12950         into call arguments.
12951
12952 2010-01-28  Richard Guenther  <rguenther@suse.de>
12953
12954         PR middle-end/42883
12955         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
12956         the forwarder if the destination is an EH landing pad.
12957
12958 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
12959
12960         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
12961         block list passed to gimple_duplicate_sese_tail.
12962         (parallelize_loops): Avoid parallelization when the function
12963         has_nonlocal_label.
12964         Avoid parallelization when the preheader is IRREDUCIBLE.
12965         Try to optimize when estimated_loop_iterations_int is unresolved.
12966         Add the loop's location to the dump file.
12967         * tree-cfg.c (add_phi_args_after_redirect): Remove.
12968         (gimple_duplicate_sese_tail): Remove the check for the latch.
12969         Redirect nexits to the exit block.
12970         Remove handling of the incoming edges to the latch.
12971         Redirect the backedge from the copied latch to the exit bb.
12972
12973 2010-01-28  Michael Matz  <matz@suse.de>
12974
12975         PR target/42881
12976         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
12977         Wrap force_reg into a sequence, emit it before user.
12978
12979 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
12980
12981         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
12982         (arm_rev): New.
12983         (arm_legacy_rev): Likewise.
12984         (thumb_legacy_rev): Likewise.
12985
12986 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
12987
12988         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
12989         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
12990         on MEM's address failed, try avoid_constant_pool_reference and
12991         recurse if it returned something different.
12992         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
12993         address, try avoid_constant_pool_reference and recurse if it
12994         returned something different.
12995         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
12996         address and avoid_constant_pool_reference returned something
12997         different, don't set have_address.
12998
12999 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
13000
13001         PR debug/42861
13002         * var-tracking.c (val_store): Add modified argument, obey it.
13003         Adjust callers.
13004         (count_uses): Move down logging of main.
13005         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
13006         don't need resolution.
13007         (emit_notes_in_bb): Likewise.
13008
13009 2010-01-27  Richard Guenther  <rguenther@suse.de>
13010
13011         PR middle-end/42878
13012         * tree-inline.c (remap_decl): Delay remapping of SSA name
13013         default definitions until we need them.
13014
13015 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
13016
13017         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
13018         (rs6000_delegitimize_address): New function.
13019
13020         * config/s390/s390.c (s390_delegitimize_address): Call
13021         delegitimize_mem_from_attrs.
13022
13023         PR middle-end/42874
13024         * tree-inline.c (cannot_copy_type_1): Removed.
13025         (copy_forbidden): Don't forbid copying of functions containing
13026         records/unions with variable length fields.
13027
13028 2010-01-27  Christian Bruel  <christian.bruel@st.com>
13029
13030         Revert:
13031         PR target/42841
13032         * config/sh/sh.c (find_barrier): Increase length for non delayed
13033         conditional branches.
13034
13035 2010-01-27  Matthias Klose  <doko@ubuntu.com>
13036
13037         * configure.ac (gnu-unique-object): Fix ldd version check.
13038         * configure: Regenerate.
13039
13040 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13041
13042         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
13043         HAVE_GNU_AS value.
13044         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
13045         Test for HAVE_GNU_AS value.
13046
13047 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13048
13049         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
13050         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
13051         INT64_TYPE): Define.
13052         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
13053         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
13054         INT_LEAST64_TYPE): Define.
13055         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
13056         UINT_LEAST64_TYPE): Define.
13057         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
13058         INT_FAST64_TYPE): Define.
13059         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
13060         UINT_FAST64_TYPE): Define.
13061         (INTMAX_TYPE, UINTMAX_TYPE): Define.
13062         (INTPTR_TYPE, UINTPTR_TYPE): Define.
13063         (SIG_ATOMIC_TYPE): Define.
13064
13065 2010-01-26  Richard Guenther  <rguenther@suse.de>
13066
13067         * df-scan.c (df_scan_set_bb_info): Remove assert.
13068         (df_insn_rescan_debug_internal): Merge asserts.
13069         (df_install_ref): Likewise.
13070         (df_mark_reg): Use bitmap_set_range.
13071         (df_hard_reg_used_p): Remove assert.
13072         (df_hard_reg_used_count): Likewise.
13073
13074 2010-01-26  Richard Guenther  <rguenther@suse.de>
13075
13076         PR rtl-optimization/42685
13077         * web.c (web_main): Ignore DEBUG_INSNs.
13078
13079 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
13080
13081         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
13082
13083         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
13084         Fix types of fndecl and arglist parameters.
13085
13086 2010-01-26  Richard Guenther  <rguenther@suse.de>
13087
13088         PR middle-end/42806
13089         * tree-eh.c (unsplit_eh): Skip debug insns.
13090
13091 2010-01-26  Richard Guenther  <rguenther@suse.de>
13092
13093         PR tree-optimization/42250
13094         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
13095
13096 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
13097
13098         PR fortran/42866
13099         * omp-low.c (expand_omp_sections): Only use single_pred if
13100         l2_bb is single_pred_p.
13101
13102 2010-01-25  Christian Bruel  <christian.bruel@st.com>
13103
13104         PR target/42841
13105         * config/sh/sh.c (find_barrier): Increase length for non delayed
13106         conditional branches.
13107         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
13108
13109 2010-01-24  David S. Miller  <davem@davemloft.net>
13110
13111         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
13112         define if not using GAS.
13113         * config/sparc/sparc.c (sparc_elf_asm_named_section):
13114         Likewise.  Delete SECTION_MERGE code, which is only applicable
13115         when using GAS.
13116
13117 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
13118
13119         PR c++/42748
13120         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
13121         mangling of va_list in system headers.
13122
13123 2010-01-23  Toon Moene  <toon@moene.org>
13124
13125         * tree-predcom.c (combine_chains): Return NULL, not false.
13126
13127 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
13128
13129         * tree-loop-distribution.c (distribute_loop): Fix declaration and
13130         initialization of variable res to agree with return type.
13131
13132 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
13133
13134         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
13135         * tree-sra.c: Add include of expr.h.
13136
13137 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
13138
13139         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
13140         insert the debug stmt on the single non-EH edge from the stmt.
13141
13142 2010-01-22  Richard Henderson  <rth@redhat.com>
13143
13144         PR tree-opt/42833
13145         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
13146         the RHS until after generate_subtree_copies has insertted its
13147         code before the current statement.
13148
13149 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
13150
13151         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
13152
13153         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
13154
13155 2010-01-21  Martin Jambor  <mjambor@suse.cz>
13156
13157         PR tree-optimization/42585
13158         * tree-sra.c (struct access): New field grp_total_scalarization.
13159         (dump_access): Dump the new field.
13160         (should_scalarize_away_bitmap): New variable.
13161         (cannot_scalarize_away_bitmap): Likewise.
13162         (sra_initialize): Allocate new bitmaps.
13163         (sra_deinitialize): Free new bitmaps.
13164         (create_access_1): New function.
13165         (create_access): Parts moved to create_access_1.
13166         (type_consists_of_records_p): New function.
13167         (completely_scalarize_record): Likewise.
13168         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
13169         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
13170         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
13171         access.
13172         (analyze_all_variable_accesses): Completely scalarize small eligible
13173         records.
13174
13175 2010-01-21  Martin Jambor  <mjambor@suse.cz>
13176
13177         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
13178
13179 2010-01-21  Andrew Haley  <aph@redhat.com>
13180
13181         * gcc.c (process_command): Move lang_specific_driver before
13182         setting cc_libexec_prefix.
13183
13184 2010-01-21  Richard Guenther  <rguenther@suse.de>
13185
13186         PR middle-end/19988
13187         * fold-const.c (negate_expr_p): Pretend only negative
13188         real constants are easily negatable.
13189
13190 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
13191             Jason Merrill  <jason@redhat.com>
13192
13193         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
13194         (TYPE_TRANSPARENT_AGGR): this, for union and record.
13195         * calls.c (initialize argument_information): Handle it.
13196         * c-common.c (handle_transparent_union_attribute): Use new name.
13197         * c-decl.c (finish_struct): Ditto.
13198         * c-typeck.c (type_lists_compatible_p): Ditto.
13199         (convert_for_assignment): Use new name and also handle record.
13200         * function.c (aggregate_value_p): Handle it.
13201         (pass_by_reference): Ditto.
13202         (assign_parm_data_types): Ditto.
13203         * print-tree.c (print_node): Ditto.
13204         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
13205         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
13206         * tree.c (first_field): New fn.
13207
13208 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
13209
13210         PR target/42818
13211         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
13212         even when linking statically, for now.
13213
13214 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
13215
13216         PR debug/42715
13217         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
13218         without a cselib val.
13219         (count_uses): Accept MO_VAL_SET with no val on stores.
13220         (add_stores): Likewise.
13221
13222 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
13223
13224         * var-tracking.c (check_value_val): Add a compile time assertion.
13225         (dv_is_decl_p): Simplify.
13226         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
13227         gcc_assert if ENABLE_CHECKING.
13228
13229 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
13230
13231         PR debug/42782
13232         * var-tracking.c: Include tree-flow.h.
13233         (mem_dies_at_call): New.
13234         (dataflow_set_preserve_mem_locs): Use it.
13235         (dataflow_set_remove_mem_locs): Likewise.
13236         (dump_var): Renamed from dump_variable.  Adjust all callers.
13237         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
13238         * Makefile.in (var-tracking.o): Adjust deps.
13239
13240 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
13241
13242         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
13243
13244 2010-01-20  Richard Guenther  <rguenther@suse.de>
13245
13246         PR tree-optimization/42717
13247         * tree-ssa-dce.c (get_live_post_dom): Remove.
13248         (forward_edge_to_pdom): Take an arbitrary edge to copy
13249         degenerate PHI args from.
13250         (remove_dead_stmt): Use the first post-dominator even if it
13251         does not contain live statements as redirection destination.
13252
13253 2010-01-20  Richard Guenther  <rguenther@suse.de>
13254
13255         * tree-inline.c (estimate_num_insns): Handle EH builtins.
13256
13257 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
13258
13259         * sel-sched.c (create_speculation_check): Remove set but not used
13260         variable twin.
13261         (try_transformation_cache): Remove set but not used variable ds.
13262         (calculate_privileged_insns): Remove set but not used variables
13263         cur_insn and min_spec_insn.
13264         (find_best_expr): Remove set but not used variable avail_n.
13265         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
13266         variable e.
13267         * cgraphunit.c (assemble_thunk): Remove set but not used variable
13268         false_label.
13269         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
13270         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
13271         new_scop_exit_edge.
13272
13273 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
13274
13275         PR bootstrap/42786
13276         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
13277         cpu types.  Add support for *-sse3 cpu types.
13278         (x86_64-*-*): Ditto.
13279
13280 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
13281
13282         PR middle-end/42803
13283         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
13284         argument, call initializer_constant_valid_p_1 instead of
13285         initializer_constant_valid_p, pass CACHE to it, return NULL
13286         immediately if first call returns NULL.
13287         (initializer_constant_valid_p_1): New function.
13288         (initializer_constant_valid_p): Use it.
13289
13290 2010-01-20  Thomas Quinot  <quinot@adacore.com>
13291
13292         * tree.def (PLACEHOLDER_EXPR): Fix comment.
13293
13294 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
13295
13296         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
13297         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
13298         (loc_list_from_tree): Don't handle unsigned division.  Handle
13299         signed modulo using DW_OP_{over,over,div,mul,minus}.
13300         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
13301         modulo instead of signed.
13302
13303 2010-01-20  DJ Delorie  <dj@redhat.com>
13304
13305         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
13306         (Fpa): Pass it
13307         (h8300_emit_stack_adjustment): Propogate it.
13308         (push): Pass it.
13309         (h8300_expand_prologue): Likewise.
13310         (h8300_expand_epilogue): Likewise.
13311
13312 2010-01-19  Michael Matz  <matz@suse.de>
13313
13314         PR tree-optimization/41783
13315         * tree-data-ref.c (toplevel): Include flags.h.
13316         (dump_data_dependence_relation):  Also dump the inputs if the
13317         result will be unknown.
13318         (split_constant_offset_1): Look through some conversions.
13319         * tree-predcom.c (determine_roots_comp): Restart a new chain if
13320         the offset from last element is too large.
13321         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
13322         (reassociate_to_the_same_stmt): Handle vector registers.
13323         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
13324         (e.g. conversions).
13325         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
13326         wide_prolog_niters argument, emit widening instructions.
13327         (vect_do_peeling_for_alignment): Adjust caller, use widened
13328         variant of the iteration cound.
13329         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
13330
13331 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13332
13333         PR target/38697
13334         * config/arm/neon-testgen.m (emit_automatics): New parameter
13335         features. Adjust for Fixed_return_reg feature.
13336         (test_intrinsic): Call emit_automatics with new feature.
13337         * config/arm/neon.ml: Update copyright years.
13338         (features): New Fixed_return_reg feature.
13339         (ops): Update feature for Vget_low.
13340
13341 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
13342
13343         PR tree-optimization/42719
13344         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
13345         stmt uses.
13346
13347         PR debug/42728
13348         * fwprop.c (all_uses_available_at): Return false if def_set dest
13349         is a REG that is used in def_insn.
13350
13351 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
13352
13353         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
13354
13355         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
13356         Add argument names.
13357
13358         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
13359
13360         * target.h (struct gcc_target) <secondary_reload>: Change type
13361         of last argument to secondary_reload_info *.
13362
13363 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
13364
13365         PR target/42774
13366         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
13367         memory references with unaligned offsets.  Remove CQImode handling.
13368         (unaligned_memory_operand): Return 1 for memory references with
13369         unaligned offsets.  Remove CQImode handling.
13370
13371 2010-01-18  Richard Guenther  <rguenther@suse.de>
13372
13373         PR middle-end/39954
13374         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
13375         builtin calls.
13376
13377 2010-01-18  Richard Guenther  <rguenther@suse.de>
13378
13379         PR tree-optimization/42781
13380         * tree-ssa-structalias.c (find_what_var_points_to): Skip
13381         restrict processing only if the original variable was artificial.
13382
13383 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
13384
13385         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
13386         find number of popped argument bytes.
13387
13388         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
13389         Fix the text that describes the return value for invalid insns.
13390
13391         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
13392
13393         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
13394         Clarify what 'cost of the -dependence' is.  Fix quoting.
13395
13396         * toplev.c (default_get_pch_validity): Rename argument to "sz".
13397         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
13398
13399 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
13400
13401         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
13402         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
13403
13404 2010-01-17  Richard Guenther  <rguenther@suse.de>
13405
13406         PR middle-end/42248
13407         * function.c (split_complex_args): Take a VEC to modify.
13408         (assign_parms_augmented_arg_list): Build a VEC instead of
13409         a chain of PARM_DECLs.
13410         (assign_parms_unsplit_complex): Take a VEC of arguments.
13411         Do not fixup unmodified parms.
13412         (assign_parms): Deal with the VEC.
13413         (gimplify_parameters): Likewise.
13414
13415 2010-01-17  Richard Guenther  <rguenther@suse.de>
13416
13417         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
13418         node existence check.
13419         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
13420         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
13421         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
13422         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
13423         (gimple_execute_on_growing_pred): Likewise.
13424
13425 2010-01-17  Richard Guenther  <rguenther@suse.de>
13426
13427         PR tree-optimization/42773
13428         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
13429         (compute_antic_aux): Likewise.
13430         (compute_partial_antic_aux): Likewise.
13431
13432 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
13433
13434         PR debug/42767
13435         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
13436         and US_TRUNCATE.
13437
13438 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
13439
13440         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
13441         appearance.
13442
13443         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
13444         Fix markup for strict argument.
13445
13446         (TARGET_SCHED_REORDER2): Fix argument types.
13447
13448         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
13449         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
13450
13451         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
13452         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
13453
13454         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
13455         Add argument name.
13456
13457         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
13458         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
13459         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
13460         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
13461         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
13462
13463         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
13464
13465         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
13466
13467         (TARGET_ASM_RELOC_RW_MASK): Add return type.
13468         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
13469
13470         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
13471
13472         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
13473         Use prototype.
13474
13475         (TARGET_ASM_NAMED_SECTION): Fix argument list.
13476
13477         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
13478         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
13479
13480         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
13481
13482         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
13483
13484         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
13485         referring to it.  Fix language.
13486
13487         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
13488
13489         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
13490
13491         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
13492
13493         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
13494
13495         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
13496         '@var{stream}.  Remove stray 'and'.
13497
13498         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
13499
13500         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
13501
13502         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
13503
13504         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
13505         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
13506
13507         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
13508         Fix description of return value.
13509         Rename argument "sz" to "len."
13510
13511         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
13512         Clarify meaning of 'true' return value.
13513
13514         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
13515
13516         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
13517         rep_mode versus mode_rep.
13518
13519         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
13520
13521         (TARGET_BUILTIN_DECL): Fix name.
13522
13523         (TARGET_COMMUTATIVE_P): Fix type of first argument.
13524
13525         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
13526
13527         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
13528
13529         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
13530
13531         (TARGET_RELAXED_ORDERING): Use @deftypevr.
13532
13533         (TARGET_GET_DRAP_RTX): Note that this is a hook.
13534         Clarify language.
13535
13536         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
13537         Rename argument tm_fn to md_fn.
13538
13539         (TARGET_OPTION_PRINT): Fix argument list.
13540
13541 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
13542
13543         PR target/42664
13544         * config/i386/i386.c (ix86_fixup_binary_operands):
13545         Revert FMA4 fixup of operands.
13546
13547 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13548
13549         PR gcc/42525
13550         * Makefile.in (write_entries_to_file, install-plugin):
13551         Use \012 instead of \n with tr.
13552
13553 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
13554
13555         * configure.ac (HAVE_AS_REF): New C macro.
13556         * configure: Regenerate.
13557         * config.in: Likewise.
13558         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
13559         if HAVE_AS_REF.
13560         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
13561         if HAVE_AS_REF.
13562
13563 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
13564
13565         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
13566
13567         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
13568
13569         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
13570
13571         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
13572
13573         (TARGET_IN_SMALL_DATA_P): Fix argument type.
13574
13575         (TARGET_BINDS_LOCAL_P): Fix argument type.
13576
13577         (TARGET_ASM_FILE_END): Use prototype.
13578
13579         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
13580
13581         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
13582
13583         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
13584
13585         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
13586
13587         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
13588         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
13589
13590         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
13591         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
13592
13593         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
13594         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
13595         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
13596         (TARGET_ADDR_SPACE_CONVERT): Likewise.
13597
13598         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
13599
13600         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
13601
13602         (TARGET_INIT_BUILTINS): Use prototype.
13603
13604         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
13605         Put 'const char *' in braces.  Fix parameter types.
13606         (TARGET_INVALID_CONVERSION): Fix parameter types.
13607         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
13608         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
13609
13610         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
13611         Fix argument type.
13612
13613         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
13614
13615         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
13616
13617 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
13618
13619         * doc/tm.texi (TARGET_HELP): Fix return type.
13620
13621         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
13622         in braces.  Fix argument types.
13623
13624         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
13625
13626         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
13627
13628         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
13629
13630         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
13631         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
13632
13633         (TARGET_MANGLE_TYPE): Fix argument types.
13634
13635         (TARGET_IRA_COVER_CLASSES): Use prototype.
13636
13637         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
13638
13639         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
13640
13641         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
13642
13643         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
13644
13645         (TARGET_CALLEE_COPIES): Fix argument types.
13646
13647         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
13648
13649         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
13650
13651         (TARGET_FUNCTION_VALUE): Fix argument types.
13652
13653         (TARGET_RETURN_IN_MSB): Fix argument type.
13654
13655         (TARGET_RETURN_IN_MEMORY): Fix argument types.
13656
13657         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
13658
13659         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
13660
13661         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
13662         agree with return type.
13663
13664         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
13665
13666 2010-01-15  Jing Yu  <jingyu@google.com>
13667
13668         PR rtl-optimization/42691
13669         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
13670         a pseudo to a constant and are merged, and adjust comments.
13671
13672 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
13673
13674         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
13675
13676 2010-01-15  Richard Guenther  <rguenther@suse.de>
13677
13678         PR middle-end/42739
13679         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
13680         labels of computed or non-local gotos to the destination.
13681         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
13682         landing pad label is the first label.
13683
13684 2010-01-15  Richard Guenther  <rguenther@suse.de>
13685
13686         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
13687
13688 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
13689
13690         PR target/42747
13691         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
13692         to allow generation of the xssqrtdp instruction on power7.
13693         (sqrtdf2_fpr): Ditto.
13694
13695 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
13696
13697         PR middle-end/42674
13698         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
13699         functions with noreturn attribute.
13700
13701         PR c++/42608
13702         * varasm.c (declare_weak): Add weak attribute to decl if it
13703         doesn't have one already.
13704         (assemble_external): Only add decls to weak_decls if they also
13705         have weak attribute.
13706
13707 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
13708
13709         * var-tracking.c (var_reg_delete): Don't delete the association
13710         between REGs and values or one-part variables if the register
13711         isn't clobbered.
13712
13713 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
13714
13715         PR debug/42657
13716         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
13717         because its first operand is a non-localized variable.
13718
13719 2010-01-14  Martin Jambor  <mjambor@suse.cz>
13720
13721         PR tree-optimization/42706
13722         * tree-sra.c (encountered_recursive_call): New variable.
13723         (encountered_unchangable_recursive_call): Likewise.
13724         (sra_initialize): Initialize both new variables.
13725         (callsite_has_enough_arguments_p): New function.
13726         (scan_function): Call decl and flags check only for IPA-SRA, check
13727         whether there is a recursive call and whether it has enough arguments.
13728         (all_callers_have_enough_arguments_p): New function.
13729         (convert_callers): Look for recursive calls only when
13730         encountered_recursive_call is set.
13731         (ipa_early_sra): Bail out either if
13732         !all_callers_have_enough_arguments_p or
13733         encountered_unchangable_recursive_call.
13734
13735 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13736
13737         * sel-sched.c: Add 2010 to copyright years.
13738         * sel-sched-ir.c: Likewise.
13739         * sel-sched-ir.h: Likewise.
13740
13741 2010-01-14  Martin Jambor  <mjambor@suse.cz>
13742
13743         PR tree-optimization/42714
13744         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
13745         constructors specially.
13746
13747 2010-01-14  Andi Kleen  <ak@linux.intel.com>
13748
13749         * config/i386/drivers-i386.c (detect_caches_intel):
13750         Add l2sizekb parameter and fill in.
13751         (host_detect_local_cpu): Add l2sizekb, fill in.
13752         Add Atom small cache heuristic.
13753
13754 2010-01-14  Andi Kleen  <ak@linux.intel.com>
13755
13756         * config/i386/drivers-i386.c (detect_caches_cpuid4):
13757         Add level3 parameter and fill in.
13758         (detect_caches_intel): Handle level3 cache.
13759
13760 2010-01-14  Andi Kleen  <ak@linux.intel.com>
13761
13762         * config/i386/drivers-i386.c (host_detect_local_cpu):
13763         Fix core duo detection.
13764
13765 2010-01-14  Andi Kleen  <ak@linux.intel.com>
13766
13767         * config/i386/drivers-i386.c (host_detect_local_cpu):
13768         Fix Atom detection.
13769
13770 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13771
13772         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
13773         (rs6000_variable_issue_1): this.  Use...
13774         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
13775
13776 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13777
13778         * sel-sched-ir.c (sel_restore_other_notes): Rename to
13779         sel_restore_notes.  Update all callers.  Call reemit_notes
13780         for all insns.
13781
13782 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13783
13784         PR rtl-optimization/42246
13785         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
13786         loops.
13787
13788 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13789
13790         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
13791         all successors is the same as number of successors in current region.
13792
13793 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13794
13795         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
13796         to rename is not separable.  Otherwise check that its LHS is not NULL.
13797
13798 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13799
13800         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
13801
13802 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13803
13804         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
13805         available registers when failed to discover LHS register class.
13806         Fix indentation.  Update comment.
13807
13808 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13809             Alexander Monakov  <amonakov@ispras.ru>
13810
13811         PR rtl-optimization/42389
13812         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
13813         to can_issue_more.
13814         (advance_state_on_fence): Likewise.
13815         (sel_target_adjust_priority): Print debug output only when
13816         sched_verbose >= 4, not 2.
13817         (get_expr_cost): Do not issue all unique insns on the next cycle.
13818         (fill_insns): Initialize can_issue_more from the value saved
13819         with the fence.
13820         * sel-sched-ir.c (flist_add): New parameter issue_more.
13821         Init FENCE_ISSUE_MORE with it.
13822         (merge_fences): Likewise.
13823         (init_fences): Update call to flist_add.
13824         (add_to_fences, add_clean_fence_to_fences)
13825         (add_dirty_fence_to_fences): Likewise.
13826         (move_fence_to_fences): Update call to merge_fences.
13827         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
13828         sched groups.
13829         * sel-sched-ir.h (struct _fence): New field issue_more.
13830         (FENCE_ISSUE_MORE): New accessor macro.
13831
13832 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13833
13834         PR rtl-optimization/42388
13835         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
13836         that have no predecessors nor successors.  Do not call move_bb_info
13837         for empty blocks outside of current region.
13838
13839 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13840
13841         PR rtl-optimization/42294
13842         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
13843         * sel-sched.c (move_exprs_to_boundary): Transitively add all
13844         originators' originators.
13845
13846 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13847
13848         PR rtl-optimization/39453
13849         PR rtl-optimization/42246
13850         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
13851         for pipelining_p.
13852         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
13853
13854 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13855             Alexander Monakov  <amonakov@ispras.ru>
13856
13857         PR middle-end/42245
13858         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
13859         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
13860         argument.  Update all callers.
13861         (tidy_control_flow): ... and here.  Recompute topological order
13862         of basic blocks in region if necessary.
13863         (sel_redirect_edge_and_branch): Change return type.  Return true
13864         if topological order might have been invalidated.
13865         (purge_empty_blocks): Export and move from...
13866         * sel-sched.c (purge_empty_blocks): ... here.
13867         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
13868         (maybe_tidy_empty_bb): Delete prototype.
13869         (purge_empty_blocks): Declare.
13870
13871 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
13872
13873         PR rtl-optimization/42249
13874         * sel-sched.c (try_replace_dest_reg): When chosen register
13875         and original register is the same, do not bail out early, but
13876         still check all original insns for validity of replacing destination
13877         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
13878         in this case.
13879
13880 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
13881
13882         PR c/42721
13883         Port from no-undefined-overflow branch:
13884         2009-03-09  Richard Guenther  <rguenther@suse.de>
13885
13886         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
13887
13888 2010-01-14  Richard Guenther  <rguenther@suse.de>
13889
13890         PR lto/42665
13891         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
13892
13893 2010-01-14  Ira Rosen  <irar@il.ibm.com>
13894
13895         PR tree-optimization/42709
13896         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
13897         as scalar type in creation of constant vector operand.
13898
13899 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13900
13901         PR testsuite/42414
13902         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
13903         (check-parallel-%): Match `testsuite' directory component only
13904         at the end.
13905
13906 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
13907
13908         PR translation/39521
13909         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
13910         strings with _().
13911
13912 2010-01-13  Richard Guenther  <rguenther@suse.de>
13913
13914         PR tree-optimization/42730
13915         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
13916         offset zero.
13917
13918 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
13919
13920         PR target/pr42542
13921         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
13922         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
13923         them signed.
13924
13925 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
13926
13927         * config/bfin/libgcc-bfin.ver: Regenerate based on current
13928         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
13929         ___umulsi3_highpart.
13930
13931         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
13932         rather than schedule_insns if the pass is enabled.
13933
13934 2010-01-13  Martin Jambor  <mjambor@suse.cz>
13935
13936         PR tree-optimization/42704
13937         * tree-sra.c (sra_modify_assign): Do not delete assignments to
13938         SSA_NAMEs.
13939
13940 2010-01-13  Martin Jambor  <mjambor@suse.cz>
13941
13942         PR tree-optimization/42703
13943         * tree-sra.c (analyze_access_subtree): Check that we can build a
13944         reference to the original data within the aggregate.
13945
13946 2010-01-13  Richard Guenther  <rguenther@suse.de>
13947
13948         PR tree-optimization/42705
13949         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
13950
13951 2010-01-13  Richard Guenther  <rguenther@suse.de>
13952
13953         PR middle-end/42716
13954         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
13955
13956 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
13957
13958         PR debug/41371
13959         * var-tracking.c (values_to_unmark): New variable.
13960         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
13961         values_to_unmark vector.  Moved body to...
13962         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
13963         instead queue it into values_to_unmark vector.
13964         (vt_find_locations): Free values_to_unmark vector.
13965
13966 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
13967
13968         * config/s390/s390.c (override_options): Set
13969         default of max-pending-list-length to 256
13970
13971 2010-01-13  Richard Guenther  <rguenther@suse.de>
13972
13973         PR lto/42678
13974         * tree-pass.h (PROP_gimple_lcx): New.
13975         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
13976         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
13977         before the final cleanup_eh.
13978         (dump_properties): Dump PROP_gimple_lcx.
13979         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
13980         (tree_lower_complex_O0): Remove.
13981         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
13982         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
13983         tree_lower_complex, schedule TODO_update_ssa.
13984         * lto-streamer-out.c (output_function): Stream the functions
13985         properties.
13986         * lto-streamer-in.c (input_function): Likewise.
13987         (lto_read_body): Do not override them here.
13988
13989 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
13990
13991         PR c/42708
13992         * c-typeck.c (build_c_cast): Fold value cast to union type before
13993         wrapping it in a CONSTRUCTOR.
13994
13995 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
13996
13997         PR rtl-optimization/42699
13998         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
13999         involved.
14000
14001 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14002
14003         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
14004         SUBTARGET_WARN_UNUSED_SPEC): Move ...
14005         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
14006         SUBTARGET_WARN_UNUSED_SPEC): ... here
14007         * config/mips/iris5.h (LIBGCC_SPEC): Define.
14008
14009 2010-01-12  Julian Brown  <julian@codesourcery.com>
14010
14011         * config/arm/neon-schedgen.ml (Utils): Don't try to
14012         open missing module.
14013         (find_with_result): New.
14014
14015 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
14016
14017         PR debug/42662
14018         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
14019         sharing when canonicalizing ({lt,ge}u (plus a b) b).
14020
14021         PR tree-optimization/42645
14022         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
14023         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
14024         decl_map, set processing_debug_stmt to -1 and return name without
14025         any remapping.
14026
14027 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
14028
14029         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
14030         binutils version, and reword target configuration description.
14031
14032 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
14033
14034         * config/avr/avr.h (LINKER_NAME): Remove.
14035
14036 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
14037
14038         PR target/42416
14039         * config/rs6000/rs6000.c (rs6000_override_options): On targets
14040         that support VSX, warn for -mno-altivec if vsx is not disabled,
14041         and disable vsx.
14042
14043 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
14044             Shujing Zhao  <pearly.zhao@oracle.com>
14045
14046         PR translation/42469
14047         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
14048         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
14049         character between option name and help text.
14050         * c.opt (imultilib): Likewise.
14051
14052 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
14053
14054         * lto-streamer-out.c (output_unreferenced_globals): Output static
14055         variables.
14056
14057 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
14058
14059         PR rtl-optimization/42621
14060         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
14061         optimizing for size.
14062         (duplicate_computed_gotos): Remove now-redundant check.
14063
14064 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
14065
14066         PR target/37454
14067         * configure.ac: Save and restore LDFLAGS and LIBS
14068         * configure: Regenerate.
14069
14070 2010-01-10  Richard Guenther  <rguenther@suse.de>
14071
14072         PR middle-end/42667
14073         * builtins.c (fold_builtin_strlen): Add type argument and
14074         convert the resulting length to it.
14075         (fold_builtin_1): Adjust.
14076
14077 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
14078
14079         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
14080         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
14081         1 insn.
14082         (num_insns_constant_wide): Adjust for that change.
14083
14084 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14085
14086         PR debug/42631
14087         * web.c (union_defs): Add used argument, to combine uses of
14088         uninitialized regs.
14089         (entry_register): Adjust type and tests of used argument.
14090         (web_main): Widen used for new use.  Pass it to union_defs.
14091         * df.h (union_defs): Adjust prototype.
14092
14093 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14094
14095         PR debug/42630
14096         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
14097         uses in new incoming argument.  Free body.
14098         (reset_debug_uses_in_loop): New.
14099         (analyze_insn_to_expand_var): Call the latter if the former found
14100         anything.  Fix whitespace.  Reject invalid dest overlaps before
14101         going through all insns in the loop.
14102
14103 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14104
14105         PR debug/42629
14106         * haifa-sched.c (dying_use_p): Debug insns don't count.
14107
14108 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14109
14110         PR middle-end/42363
14111         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
14112         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
14113         (verify_gimple_call): Reject LHS in noreturn calls.
14114
14115 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14116
14117         PR debug/42604
14118         PR debug/42395
14119         * tree-vect-loop-manip.c (adjust_info): New type.
14120         (adjust_vec): New pointer to vector.
14121         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
14122         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
14123         (slpeel_update_phis_for_duplicate_loop): Use them.
14124         (slpeel_update_phi_nodes_for_guard1): Likewise.
14125         (slpeel_update_phi_nodes_for_guard2): Likewise.
14126         (slpeel_tree_peel_loop_to_edge): Likewise.
14127         (vect_update_ivs_after_vectorizer): Likewise.
14128
14129 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14130
14131         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
14132         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
14133
14134 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14135
14136         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
14137         bogus uninitialized warning.
14138
14139 2010-01-09  Richard Guenther  <rguenther@suse.de>
14140
14141         PR middle-end/42512
14142         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
14143         the evolution is compatible with the initial condition.
14144
14145 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
14146
14147         * gcc.c (process_command): Update copyright notice dates.
14148         * gcov.c (print_version): Likewise.
14149         * gcov-dump.c (print_version): Likewise.
14150         * mips-tfile.c (main): Likewise.
14151         * mips-tdump.c (main): Likewise.
14152
14153 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
14154
14155         PR target/41885
14156         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
14157         (rotlhi3): Delete.
14158         (rotlhi3_8): Delete.
14159         (rotlsi3): Delete.
14160         (rotlsi3_8): Delete.
14161         (rotlsi3_16): Delete.
14162         (rotlsi3_24): Delete.
14163         (rotl<mode>3): New.
14164         (*rotw<mode>3): New.
14165         (*rotb<mode>3): New.
14166         * config/avr/avr.c (avr_rotate_bytes): New function.
14167         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
14168
14169 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
14170
14171         PR target/37454
14172         * configure.ac: Modify -rdynamic check.
14173         * configure: Regenerate.
14174
14175 2010-01-08  DJ Delorie  <dj@redhat.com>
14176
14177         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
14178         register popping order.
14179
14180 2010-01-08  Richard Guenther  <rguenther@suse.de>
14181
14182         PR lto/42528
14183         * c.opt (fsigned-char): Also let LTO handle this option.
14184         (funsigned-char): Likewise.
14185
14186 2010-01-07  Richard Guenther  <rguenther@suse.de>
14187
14188         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
14189         (gimple_op): Likewise.
14190         (gimple_op_ptr): Likewise.
14191         (gimple_assign_set_lhs): Remove gcc_assert.
14192         (gimple_assign_set_rhs1): Likewise.
14193         (gimple_assign_set_rhs2): Likewise.
14194         (gimple_call_set_lhs): Likewise.
14195         (gimple_call_set_fn): Likewise.
14196         (gimple_call_set_fndecl): Likewise.
14197         (gimple_call_fndecl): Likewise.
14198         (gimple_call_return_type): Likewise.
14199         (gimple_call_set_chain): Likewise.
14200         (gimple_call_num_args): Likewise.
14201         (gimple_call_set_arg): Likewise.
14202         (gimple_cond_set_code): Likewise.
14203         (gimple_cond_set_lhs): Likewise.
14204         (gimple_cond_set_rhs): Likewise.
14205         (gimple_cond_set_true_label): Likewise.
14206         (gimple_cond_set_false_label): Likewise.
14207         (gimple_label_set_label): Likewise.
14208         (gimple_goto_set_dest): Likewise.
14209         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
14210         (gimple_debug_bind_get_value): Likewise.
14211         (gimple_debug_bind_get_value_ptr): Likewise.
14212         (gimple_debug_bind_set_var): Likewise.
14213         (gimple_debug_bind_set_value): Likewise.
14214         (gimple_debug_bind_reset_value): Likewise.
14215         (gimple_debug_bind_has_value_p): Likewise.
14216         (gimple_return_retval_ptr): Remove gcc_assert.
14217         (gimple_return_retval): Likewise.
14218         (gimple_return_set_retval): Likewise.
14219         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
14220         (safe_referenced_var_iterator): Remove.
14221         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
14222         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
14223         (fill_referenced_var_vec): Remove.
14224         (first_readonly_imm_use): Remove redundant gcc_assert.
14225         (phi_arg_index_from_use): Combine gcc_asserts.
14226         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
14227         (first_imm_use_stmt): Remove redundant gcc_assert.
14228         * tree-cfg.c (verify_gimple_call): Verify function and chain
14229         operands.  Verify arguments.
14230         (verify_types_in_gimple_stmt): Verify condition code and labels.
14231
14232 2010-01-07  Richard Guenther  <rguenther@suse.de>
14233
14234         PR tree-optimization/42641
14235         * sese.c (rename_map_elt_info): Use the SSA name version, do
14236         not hash pointers.
14237
14238 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
14239
14240         PR tree-optimization/42625
14241         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
14242         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
14243
14244 2010-01-07  Duncan Sands  <baldrick@free.fr>
14245
14246         * Makefile.in (PLUGIN_HEADERS): Add version.h.
14247
14248 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
14249
14250         PR target/42511
14251         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
14252         note itself is not function_invariant_p.
14253
14254 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
14255
14256         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
14257         Do not add the DF_NOTE problem.
14258         * store-motion.c (execute_rtl_store_motion): Likewise.
14259
14260 2010-01-07  Martin Jambor  <mjambor@suse.cz>
14261
14262         PR tree-optimization/42157
14263         * tree-sra.c (compare_access_positions): Stabilize sort if both
14264         accesses have integer types, return zero immediately if they are the
14265         same.
14266
14267 2010-01-06  Richard Henderson  <rth@redhat.com>
14268
14269         PR middle-end/41883
14270         * haifa-sched.c (add_to_note_list): Merge into ...
14271         (concat_note_lists): ... here, and ...
14272         (unlink_other_notes, rm_other_notes): Merge into...
14273         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
14274         NOTE_INSN_EPILOGUE_BEG.
14275
14276 2010-01-06  Richard Guenther  <rguenther@suse.de>
14277
14278         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
14279         not inline regular functions into always-inline functions.
14280
14281 2010-01-06  Nick Clifton  <nickc@redhat.com>
14282
14283         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
14284         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
14285         used together.
14286         (OVERRIDE_OPTIONS): Delete.
14287         (OPTIMIZATION_OPTIONS): Define.
14288         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
14289         * config/rx/rx.c (rx_handle_option): Issue an error message if
14290         -mcpu=rx200 and -fpu are used together.
14291         (rx_set_optimization_options): New function.  Issue an error
14292         message if an optimization attribute attempts to reset the FPU/
14293         math optimization pairing.
14294         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
14295         * config/rx/rx.opt: Set the default to 32-bit doubles.
14296         * config/rx/t-rx: Add multilibs for -nofpu option.
14297         * doc/invoke.texi: Update documentation of RX options.
14298
14299 2010-01-06  Richard Guenther  <rguenther@suse.de>
14300
14301         * tree-ssa-pre.c (name_to_id): New global.
14302         (alloc_expression_id): Simplify SSA name handling.
14303         (lookup_expression_id): Likewise.
14304         (init_pre): Zero name_to_id.
14305         (fini_pre): Free it.
14306
14307 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
14308
14309         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
14310
14311 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
14312
14313         PR target/42542
14314         * config/i386/sse.md (smaxv2di3): New.
14315         (umaxv2di3): Likewise.
14316         (sminv2di3): Likewise.
14317         (uminv2di3): Likewise.
14318
14319 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
14320
14321         PR target/42564
14322         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
14323         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
14324         (legitimize_tls_address): Likewise.
14325         (sparc_tls_referenced_p): Likewise.
14326         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
14327         and adjust calls to legitimize_pic_address.
14328         (legitimate_constant_p) Use sparc_tls_referenced_p.
14329         (legitimate_pic_operand_p): Likewise.
14330         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
14331         (sparc_tls_symbol_ref_1): Delete.
14332         (sparc_tls_referenced_p): Make static, recognize specific patterns.
14333         (legitimize_tls_address): Make static, handle CONST patterns.
14334         (legitimize_pic_address): Make static, remove unused parameter and
14335         adjust recursive calls.
14336         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
14337         and adjust call to legitimize_pic_address.
14338         (sparc_output_mi_thunk): Likewise.
14339
14340 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
14341             H.J. Lu  <hongjiu.lu@intel.com>
14342
14343         PR target/42542
14344         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
14345         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
14346         operands to make them signed.
14347
14348         Revert:
14349         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
14350
14351         PR target/42542
14352         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
14353         GTU to GT for V4SI and V2DI.
14354
14355         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
14356         (umin<mode>3): Removed.
14357         (uminv8hi3): New.
14358         (uminv4si3): Likewise.
14359
14360 2010-01-05  Martin Jambor  <mjambor@suse.cz>
14361
14362         PR tree-optimization/42462
14363         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
14364         current_function_decl to helper functions and macros.
14365
14366 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14367
14368         PR bootstrap/41771
14369         * flags.h: Don't include real.h.
14370         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
14371         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
14372         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
14373         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
14374         * dominance.c: Update copyright.
14375         * gimple.c (walk_gimple_op): Remove inline.
14376         * tree-ssa-reassoc.c: Include real.h.
14377         * Makefile.in (FLAGS_H): Remove $(REAL_H).
14378         (tree-ssa-reassoc.o): Depend on $(REAL_H).
14379
14380 2010-01-05  Nick Clifton  <nickc@redhat.com>
14381
14382         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
14383         register to push into the stack frame when the accumulator has to
14384         be saved during interrupts.
14385
14386 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
14387
14388         * doc/invoke.texi: Remove the documentation about option
14389         -Wunreachable-code.
14390         * common.opt (Wunreachable-code):  Preserved for backward
14391         compatibility.
14392         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
14393         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
14394         the backward compatibility flag section.
14395
14396 2010-01-05  Richard Guenther  <rguenther@suse.de>
14397
14398         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
14399
14400 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
14401
14402         PR other/42611
14403         * cfgexpand.c (expand_one_var): Diagnose too large variables.
14404
14405         PR tree-optimization/42508
14406         * tree-sra.c (convert_callers): Check for recursive call
14407         by comparing cgraph nodes instead of decls.
14408         (modify_function): Call ipa_modify_formal_parameters also
14409         on all same_body aliases.
14410
14411         * cgraphunit.c (cgraph_materialize_all_clones): Compare
14412         cgraph nodes when checking for same_body aliases.
14413
14414 2010-01-05  Richard Guenther  <rguenther@suse.de>
14415
14416         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
14417         allocation and lookup.
14418         (get_or_alloc_expr_for_constant): Likewise.
14419         (phi_translate): Sink allocation.
14420
14421 2010-01-04  Richard Guenther  <rguenther@suse.de>
14422
14423         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
14424         a new entry only if needed.
14425         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
14426         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
14427         hashtable lookup.
14428         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
14429         the result array.
14430         (phi_translate): Handle CONSTANTs early.
14431
14432 2010-01-04  Martin Jambor  <mjambor@suse.cz>
14433
14434         PR tree-optimization/42398
14435         * tree-sra.c (struct access): Removed flag grp_different_types.
14436         (dump_access): Do not dump the removed flag.
14437         (sort_and_splice_var_accesses): Do not set the removed flag.
14438         (sra_modify_expr): Check for type compatibility directly.
14439
14440 2010-01-04  Martin Jambor  <mjambor@suse.cz>
14441
14442         PR tree-optimization/42366
14443         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
14444         edges with variable number of parameters.
14445         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
14446         flag instead of asserting it.
14447         (ipa_read_node_info): Read uses_analysis_done flag.
14448
14449 2010-01-04  Richard Guenther  <rguenther@suse.de>
14450
14451         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
14452         iterative_hash_* as intended.
14453         (vn_reference_compute_hash): Likewise.  Simplify hashing
14454         SSA names.
14455         (vn_reference_lookup_2): Likewise.
14456         (vn_nary_op_compute_hash): Likewise.
14457         (vn_phi_compute_hash): Likewise.
14458         (expressions_equal_p): Remove strange code.
14459         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
14460         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
14461         (bitmap_insert_into_set_1): Take value-id as parameter.
14462         (add_to_value): Pass it.
14463         (bitmap_insert_into_set): Likewise.
14464         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
14465
14466 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
14467
14468         PR driver/42442
14469         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
14470         (do_self_spec): For switches with SWITCH_IGNORE set set also
14471         SWITCH_IGNORE_PERMANENTLY.
14472         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
14473         of SWITCH_IGNORE.
14474
14475 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
14476
14477         * lto-streamer-out.c (output_unreferenced_globals): Output the full
14478         tree of an unreferenced global var.
14479
14480 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
14481
14482         PR target/42542
14483         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
14484         GTU to GT for V4SI and V2DI.
14485
14486         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
14487         (umin<mode>3): Removed.
14488         (uminv8hi3): New.
14489         (uminv4si3): Likewise.
14490
14491 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
14492
14493         PR lto/42581
14494         * collect2.c (main): Turn on trace in collect2 if -v is passed
14495         to gcc with LTO.
14496
14497 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
14498
14499         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
14500         description of expression operand.
14501
14502 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
14503
14504         * configure.ac: Add install-html to target_list for Make-hooks.
14505         * configure: Regenerate.
14506         * fortran/Make-lang.in (F95_HTMLFILES): New.
14507         (fortran.html): Use it.
14508         (fortran.install-html): New.
14509         * Makefile.in (install-html): Add lang.install-html.
14510         * java/Make-lang.in (JAVA_HTMLFILES): New.
14511         (java.html): Use it.
14512         (java.install-html): New.
14513         * objc/Make-lang.in (objc.install-html): New.
14514         * objcp/Make-lang.in (obj-c++.install-html): New.
14515         * cp/Make-lang.in (c++.install-html): New.
14516         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
14517         * lto/Make-lang.in (lto.install-html): New.
14518
14519 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
14520
14521         PR lto/42520
14522         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
14523
14524 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
14525
14526         PR rtl-optimization/41862
14527         * store-motion.c (store_killed_in_insn, compute_store_table,
14528         remove_reachable_equiv_notes, replace_store_insn,
14529         build_store_vectors): Ignore all DEBUG_INSNs.
14530
14531 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
14532
14533         PR lto/41564
14534         * common.opt: Add dumpdir.
14535
14536         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
14537         isn't specified.
14538         (option_map): Add --dumpdir.
14539
14540         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
14541
14542         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
14543
14544         * opts.c (decode_options): Try dump_dir_name first if
14545         dump_base_name isn't an absolute path.
14546         (common_handle_option): Handle OPT_dumpdir.
14547
14548         * toplev.c (dump_dir_name): New.
14549         (print_switch_values): Also ignore -dumpdir.
14550
14551         * toplev.h (dump_dir_name): New.
14552
14553 2010-01-03  Richard Guenther  <rguenther@suse.de>
14554
14555         PR tree-optimization/42589
14556         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
14557         double-word expansion of bswap32.
14558
14559 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
14560
14561         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
14562         with BLOCK_FOR_INSN.
14563         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
14564         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
14565         noce_process_if_block): Likewise.
14566         * gcse.c (compute_local_properties, insert_expr_in_table,
14567         insert_set_in_table, canon_list_insert, find_avail_set,
14568         pre_insert_copy_insn): Likewise.
14569
14570         * basic-block.h (BLOCK_NUM): Move from here...
14571         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
14572
14573 2010-01-03  Richard Guenther  <rguenther@suse.de>
14574
14575         PR tree-optimization/42438
14576         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
14577         contains_may_not_return_call flag.
14578         (BB_MAY_NOTRETURN): New.
14579         (valid_in_sets): Trapping nary operations are not valid
14580         in blocks that may not return.
14581         (insert_into_preds_of_block): Remove check for trapping expressions.
14582         (compute_avail): Compute also BB_MAY_NOTRETURN.
14583
14584 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
14585
14586         * doc/invoke.texi: Add 2010 to copyright years.
14587
14588 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
14589
14590         * config/sparc/sparc.c: Fix formatting nits.
14591
14592 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
14593             Alexander Monakov  <amonakov@ispras.ru>
14594
14595         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
14596
14597 2010-01-02  Richard Guenther  <rguenther@suse.de>
14598
14599         PR middle-end/42577
14600         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
14601         (simplify_switch_using_ranges): Mark to be removed edges
14602         as non-executable.
14603
14604 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14605
14606         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
14607
14608         * collect2.c (scan_libraries): Add missing argument in call to
14609         scan_prog_file.
14610
14611 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
14612
14613         PR target/42448
14614         * config/alpha/predicates.md (aligned_memory_operand): Return false
14615         for CQImode.
14616         (unaligned_memory_operand): Return true for CQImode.
14617         * config/alpha/alpha.c (get_aligned_mem): Assert that location
14618         doesn not cross aligned SImode word boundary.
14619
14620 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
14621
14622         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
14623         Remove.
14624         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
14625         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
14626
14627 2010-01-02  Richard Guenther  <rguenther@suse.de>
14628
14629         PR lto/41597
14630         * toplev.c (compile_file): Emit LTO marker properly.  Change
14631         it to __gnu_lto_v1.
14632         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
14633
14634 2010-01-01  Richard Guenther  <rguenther@suse.de>
14635
14636         PR debug/42455
14637         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
14638
14639 2010-01-01  Richard Guenther  <rguenther@suse.de>
14640
14641         PR c/42570
14642         * c-decl.c (grokdeclarator): For zero-size arrays force
14643         structural equality checks as layout_type does.
14644
14645 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
14646
14647         * builtins.c: Update copyright to 2010.
14648
14649 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
14650
14651         PR lto/42531
14652         * lto-streamer-out.c (produce_asm): Revert the last change.
14653         (copy_function): Likewise.
14654
14655         * lto-streamer.c (lto_get_section_name): Skip any leading
14656         asterisk in name.
14657
14658 2010-01-01  Richard Guenther  <rguenther@suse.de>
14659
14660         PR middle-end/42559
14661         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
14662         for LABEL_DECLs.
14663
14664 \f
14665 Copyright (C) 2010 Free Software Foundation, Inc.
14666
14667 Copying and distribution of this file, with or without modification,
14668 are permitted in any medium without royalty provided the copyright
14669 notice and this notice are preserved.