OSDN Git Service

Add PR reference to 2010-06-10 change to configure.ac.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2
3         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
4         * Makefile.in (OBJS-common): Include insn-enums.o.
5         (insn-enums.o): New rule.
6         (simple_generated_c): Add insn-enums.c.
7         (build/genenums.o): New rule.
8         (genprogmd): Add "enums".
9         * genconstants.c (print_enum_type): Declare a C string array
10         for each enum.
11         * genenums.c: New file.
12         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
13         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
14         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
15
16 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
17
18         * doc/md.texi (define_enum_attr): Document.
19         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
20         * read-md.h (lookup_enum_type): Declare.
21         * read-md.c (lookup_enum_type): New function.
22         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
23         * genattrtab.c (attr_desc): Add an enum_name field.
24         (evaluate_eq_attr): Take the associated attribute as argument.
25         Get the enum prefix from the enum_name field, if defined.
26         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
27         (simplify_test_exp): Pass attr to evaluate_eq_attr.
28         (add_attr_value): New function, split out from...
29         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
30         (write_test_expr): Pass attr to evaluate_eq_attr.
31         (write_attr_get): Use the enum_name as the enum tag, if defined.
32         (write_attr_valueq): Use the enum_name as a prefix, if defined.
33         (find_attr): Initialize enum_name.
34         (main): Handle DEFINE_ENUM_ATTR.
35         * gensupport.c (process_rtx): Likewise.
36         * config/mips/mips.h (mips_tune_attr): Delete.
37         * config/mips/mips.md (cpu): Use define_attr_enum.
38
39 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
40
41         * doc/md.texi (define_c_enum, define_enum): Document.
42         * read-md.h (md_constant): Add a parent_enum field.
43         (enum_value, enum_type): New structures.
44         (upcase_string, traverse_enum_types): Declare.
45         * read-md.c (enum_types): New variable.
46         (upcase_string, add_constant): New functions.
47         (handle_constants): Don't create the hash table here.
48         Use add_constant.
49         (traverse_md_constants): Don't check for a null md_constants.
50         (decimal_string, handle_enum, traverse_enum_types): New functions.
51         (read_md_files): Initialize md_constants and md_enums.
52         * genconstants.c (print_md_constant): Ignore info argument.
53         Only print constants that belong to no enum.
54         (print_enum_type): New function.
55         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
56         for each defined enum type.
57         * config/mips/mips.md (processor): New define_enum.
58         (unspec): New define_c_enum.
59         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
60         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
61         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
62         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
63         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
64         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
65         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
66         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
67         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
68         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
69         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
70         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
71         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
72         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
73         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
74         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
75         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
76         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
77         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
78         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
79         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
80         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
81         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
82         (UNSPEC_RDDSP): Move to mips-dsp.md.
83         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
84         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
85         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
86         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
87         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
88         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
89         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
90         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
91         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
92         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
93         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
94         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
95         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
96         Moved to mips-dspr2.md.
97         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
98         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
99         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
100         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Moved from mips-ps-3d.md.
101         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
102         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
103         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
104         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
105         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
106         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
107         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD, UNSPEC_LOONGSON_PSADBH)
108         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
109         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
110         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
111         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
112         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
113         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
114         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved to mips-loongson2ef.md.
115         (cpu): Update comment.
116         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
117         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
118         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
119         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
120         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ)
121         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
122         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
123         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
124         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
125         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
126         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD, UNSPEC_LOONGSON_PSADBH)
127         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
128         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
129         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
130         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
131         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
132         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
133         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
134         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
135         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
136         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
137         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
138         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
139         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
140         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
141         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
142         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
143         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
144         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
145         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
146         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
147         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
148         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
149         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
150         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
151         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
152         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
153         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
154         (UNSPEC_RDDSP): Moved from mips.md.
155         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
156         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
157         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
158         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
159         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
160         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
161         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
162         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
163         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
164         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
165         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
166         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
167         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
168         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
169         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
170         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
171         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
172         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
173         (UNSPEC_SCC): Moved from mips.md.
174         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
175         "processor_type" to "processor".
176         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
177         * config/mips/mips.h (processor_type): Delete.
178         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
179         "processor_type" to "processor".
180
181 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
182
183         * configure.ac (tm_include_list): Add insn-constants.h.
184         * configure: Regenerate.
185         * Makefile.in (GTM_H): Move insn-constants.h here from...
186         (TM_H): ...here.
187         * mkconfig.sh: Remove special handling for insn-constants.h.
188
189 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
190
191         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
192         (BUILD_MD): ...this new variable.
193         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
194         that include the old contents of simple_generated_h and
195         simple_generated_c.
196         (simple_generated_h, simple_generated_c): Include them.  Add
197         insn-constants.h.
198         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
199         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
200         Remove these dependencies from the main rule and include
201         insn-conditions.md in the command line only if it appears
202         in the dependency list.
203         (insn-constants.h, s-constants): Delete.
204         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
205         or gensupport.h.
206         (build/genmddeps.o): Likewise.
207         (genprogrtl): New variable that contains everything from genprogmd
208         except mddeps and constants.
209         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
210         depend on $(BUILD_MD)
211         (genprog): New variable.  Make these programs depend on
212         $(BUILD_ERRORS).
213         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
214         (main): Use read_md_files instead of init_rtx_reader_args.
215         * genconstants.c: As for genmddeps.c.
216         * read-md.h (read_skip_construct): Declare.
217         * read-md.c (read_skip_construct): New function.
218         (handle_file): Allow a null handle_directive, skipping the
219         construct if so.
220         (parse_include): Update the comment accordingly.
221
222 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
223
224         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
225         * genmddeps.c: Include read-md.h.
226         (main): Call init_rtx_reader_args instead of init_md_reader_args.
227         * genattr.c (main): Likewise.
228         * genattrtab.c (main): Likewise.
229         * genautomata.c (main): Likewise.
230         * gencodes.c (main): Likewise.
231         * genconditions.c (main): Likewise.
232         * genconfig.c (main): Likewise.
233         * genconstants.c (main): Likewise.
234         * genemit.c (main): Likewise.
235         * genextract.c (main): Likewise.
236         * genflags.c (main): Likewise.
237         * genopinit.c (main): Likewise.
238         * genoutput.c (main): Likewise.
239         * genpeep.c (main): Likewise.
240         * genrecog.c (main): Likewise.
241         * genpreds.c (main): Likewise.
242         * gensupport.h (in_fname): Move to read-md.h.
243         (init_md_reader_args_cb): Rename to...
244         (init_rtx_reader_args_cb): ...this and return a bool.
245         (init_md_reader_args): Rename to...
246         (init_rtx_reader_args): ...this and return a bool.
247         (include_callback): Move to read-md.h.
248         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
249         (file_name_list, first_dir_md_include): Move to read-md.c
250         (first_bracket_include): Delete unused variable.
251         (last_dir_md_include): Move to read-md.c.
252         (process_include): Delete, moving code to read-md.c:handle_include.
253         (process_rtx): Don't handle INCLUDE.
254         (save_string): Delete.
255         (rtx_handle_directive): New function.
256         (init_md_reader_args_cb): Rename to...
257         (init_rtx_reader_args_cb): ...this and return a boolean success value.
258         Use read_md_args.
259         (init_md_reader_args): Rename to...
260         (init_rtx_reader_args): ...this and return a boolean success value.
261         * rtl.def (INCLUDE): Delete.
262         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
263         argument.
264         * read-rtl.c (read_conditions): Don't gobble ')' here.
265         (read_mapping): Likewise.
266         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
267         Handle top-level non-rtx constructs here rather than in read_rtx_1.
268         Store the whole queue in *X.  Remove call to init_md_reader.
269         (read_rtx_1): Rename to...
270         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
271         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
272         here.
273         (read_nested_rtx): New function.  Handle (nil) here rather than
274         in read_rtx_code.
275         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
276         gobble ')' here.
277         * read-md.h (directive_handler_t): New type.
278         (in_fname, include_callback): Moved from read-md.h.
279         (read_constants, init_md_reader): Delete.
280         (read_md_files): Declare.
281         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
282         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
283         from gensupport.c.
284         (read_constants): Rename to...
285         (handle_constants): ...this.  Don't gobble ')' here.
286         (handle_include, handle_file, handle_toplevel_file)
287         (parse_include): New functions, mostly taken from gensupport.c.
288         (init_md_reader): Subsume into...
289         (read_md_files): ...this new function.
290
291 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
292
293         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
294         (unread_char): Decrement read_md_lineno after putting back '\n'.
295         * read-md.c (fatal_with_file_and_line): Push back any characters
296         that we decide not to add to the context.
297         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
298         fatal_expected_char in cases where '/' ends a line (for example).
299         (read_name): Don't increment read_md_lineno here.
300         (read_escape): Likewise.
301         (read_quoted_string): Likewise.
302         (read_braced_string): Likewise.
303
304 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
305
306         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
307         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
308         * genconstants.c: Include read-md.h.
309         * read-rtl.c (md_constants): Move to read-md.c.
310         (md_name): Move to read-md.h.
311         (initialize_iterators): Use leading_string_hash instead of def_hash
312         and leading_string_eq_p instead of def_name_eq_p.
313         (read_name): Move to read-md.c.
314         (def_hash, def_name_eq_p): Delete.
315         (read_constants, traverse_md_constants): Move to read-md.c.
316         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
317         * read-md.h: Include hashtab.h.
318         (md_name): Moved from read-rtl.c.
319         (md_constant): Moved from read-md.h.
320         (leading_string_hash, leading_string_eq_p, read_name)
321         (read_constants, traverse_md_constants): Declare.
322         * read-md.c (md_constants): Moved from read-rtl.c.
323         (leading_string_hash, leading_string_eq_p): New functions.
324         (read_name, read_constants, traverse_md_constants): Moved from
325         read-rtl.c.
326
327 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
328
329         * read-rtl.c (md_name): New structure.
330         (read_name): Take an md_name instead of a buffer pointer.
331         Use the "string" field instead of strcpy when expanding constants.
332         (read_constants): Remove the tmp_char argument.  Update the calls
333         to read_name, using two local name buffers instead of the tmp_char
334         argument.  Merge the constant-creation code.
335         (read_conditions): Remove the tmp_char argument.  Update the calls
336         to read_name, using a local name buffer instead of the tmp_char
337         argument.
338         (read_mapping): Replace tmp_char variable with a local name buffer.
339         Update the calls to read_name.
340         (read_rtx_1): Likewise.  Update the calls to read_constants and
341         read_conditions.
342
343 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
344
345         * Makefile.in (build/read-md.o): Depend on errors.h.
346         * read-md.h (error_with_line): Declare.
347         * read-md.c: Include errors.h.
348         (message_with_line_1): New function, extracted from...
349         (message_with_line): ...here.
350         (error_with_line): New function.
351         * genattrtab.c: If a call to message_with_line is followed by
352         "have_error = 1;", replace both statements with a call to
353         error_with_line.
354         * genoutput.c: Likewise.
355         * genpreds.c: Likewise.
356         * genrecog.c: If a call to message_with_line is followed by
357         "error_count++;", replace both statements with a call to
358         error_with_line.
359         (errorcount): Delete.
360         (main): Don't check it.
361         * gensupport.c: If a call to message_with_line is followed by
362         "errors = 1;", replace both statements with a call to error_with_line.
363         (errors): Delete.
364         (process_define_cond_exec): Check have_error instead of errors.
365         (init_md_reader_args_cb): Likewise.  Don't set errors.
366
367 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
368
369         * read-md.h (read_md_file): Declare.
370         (read_char, unread_char): New functions.
371         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
372         (read_quoted_string, read_string): Remove FILE * argument.
373         * read-md.c (read_md_file): New variable.
374         (read_md_filename, read_md_lineno): Update comments and remove
375         unnecessary initialization.
376         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
377         (read_escape, read_quoted_string, read_braced_string, read_string):
378         Remove FILE * argument.  Update calls accordingly, using read_char
379         and unread_char instead of getc and ungetc.
380         * rtl.h (read_rtx): Remove FILE * argument.
381         * read-rtl.c (iterator_group): Remove FILE * argument from
382         "find_builtin".
383         (iterator_traverse_data): Remove "infile" field.
384         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
385         (add_mapping, read_name, read_constants, read_conditions)
386         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
387         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
388         Remove file arguments from all calls, using read_char and unread_char
389         instead of getc and ungetc.
390         * gensupport.c (process_include): Preserve read_md_file around
391         the include.  Set read_md_file to the handle of the included file.
392         Update call to read_rtx.
393         (init_md_reader_args_cb): Set read_md_file to the handle of the file
394         and remove local FILE *.  Update calls to read_rtx.
395
396 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
397
398         * read-md.h (read_rtx_lineno): Rename to...
399         (read_md_lineno): ...this.
400         (read_rtx_filename): Rename to...
401         (read_md_filename): ...this.
402         (copy_rtx_ptr_loc): Rename to...
403         (copy_md_ptr_loc): ...this.
404         (print_rtx_ptr_loc): Rename to...
405         (print_md_ptr_loc): ...this.
406         * read-md.c: Likewise.  Update references after renaming.
407         (string_obstack): Replace RTL with MD in comment.
408         (set_rtx_ptr_loc): Rename to...
409         (set_md_ptr_loc): ...this.
410         (get_rtx_ptr_loc): Rename to...
411         (get_md_ptr_loc): ...this.
412         * genconditions.c: Update references after renaming.
413         * genemit.c: Likewise.
414         * genoutput.c: Likewise.
415         * genpreds.c: Likewise.
416         * gensupport.c: Likewise.
417         * read-rtl.c: Likewise.
418
419 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
420
421         * Makefile.in (READ_MD_H): New variable.
422         (BUILD_RTL): Add build/read-md.o.
423         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
424         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
425         (build/genattrtab.o, build/genconditions.o build/genemit.o)
426         (build/genextract.o, build/genflags.o, build/genoutput.o)
427         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
428         (build/read-md.o): New rule.
429         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
430         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
431         * coretypes.h: ...here.
432         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
433         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
434         * genattr.c: Include read-md.h.
435         * genattrtab.c: Likewise.
436         * genconditions.c: Likewise.
437         * genemit.c: Likewise.
438         * genextract.c: Likewise.
439         * genflags.c: Likewise.
440         * genoutput.c: Likewise.
441         * genpreds.c: Likewise.
442         * genrecog.c: Likewise.
443         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
444         (join_c_conditions, print_c_condition, read_rtx_filename)
445         (read_rtx_lineno): Move to read-md.h.
446         * read-rtl.c: Include read-md.h.
447         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
448         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
449         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
450         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
451         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
452         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
453         (read_braced_string, read_string): Move to read-md.c.
454         (read_rtx): Move some initialization to init_md_reader and call
455         init_md_reader here.
456         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
457         Move to read-md.h.
458         * gensupport.c: Include read-md.h.
459         (message_with_line, n_comma_elts, scan_comma_elt): Move to
460         read-md.c.
461         * read-md.h, read-md.c: New files.
462
463 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
464
465         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
466         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
467         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
468         * config/moxie/moxie.c (moxie_function_value): Make static.
469         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
470         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
471
472 2010-06-10  Martin Jambor  <mjambor@suse.cz>
473
474         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
475         * dbgcnt.def (tree_sra): New counter.
476         * tree-sra.c: Include dbgcnt.h.
477         (gate_intra_sra): Check tree_sra debug counter.
478
479 2010-06-10  Martin Jambor  <mjambor@suse.cz>
480
481         PR tree-optimization/44258
482         * tree-sra.c (build_access_subtree): Return false iff there is a
483         partial overlap.
484         (build_access_trees): Likewise.
485         (analyze_all_variable_accesses): Disqualify candidates if
486         build_access_trees returns true for them.
487
488 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
489
490         PR debug/41371
491         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
492         tail-recurse into canonical node.  Fast-forward over
493         non-canonical VALUEs.
494
495 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
496
497         PR boostrap/44470
498         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
499         (*addsi_1_zext) <TYPE_LEA>: Likewise.
500         (add lea splitter): Likewise.
501         (add_zext lea splitter): Likewise.
502
503 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
504
505         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
506
507 2010-06-10  Jan Hubicka  <jh@suse.cz>
508
509         * df-problems.c (df_live_problem_data): Add live_bitmaps.
510         (df_live_alloc): Initialize problem data and live_osbtacks.
511         (df_live_finalize): Remove obstack, problem data; do not
512         clear all bitmaps.
513         (df_live_top_dump, df_live_bottom_dump): Do not dump old
514         data when not allocated.
515         (df_live_verify_solution_start): Do not allocate problem data.
516         (df_live_verify_solution_end): Check if out is allocated.
517         (struct df_md_problem_data): New structure.
518         (df_md_alloc): Allocate problem data.
519         (df_md_free): Free problem data; do not clear bitmaps.
520
521 2010-06-10  Jan Beulich  <jbeulich@novell.com>
522
523         PR bootstrap/37304
524         * configure.ac: Replace $() with ${} when intending to expand
525         variables rather than invoking commands.
526         * configure: Re-generate.
527
528 2010-06-10  Jan Hubicka  <jh@suse.cz>
529
530         PR rtl-optimization/44460
531         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove TYPE_NEEDS_CONSTRUCTING
532         sanity check.
533
534 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
535
536         * doc/include/fdl.texi: Move to GFDL version 1.3.
537
538         * doc/cpp.texi: Move to GFDL version 1.3.
539         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
540         * doc/gccint.texi: Move to GFDL version 1.3.
541         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
542         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
543         * doc/invoke.texi: Move to GFDL version 1.3.
544
545 2010-06-09  Jan Hubicka  <jh@suse.cz>
546
547         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
548         Break out from ...
549         (propagate) ... here; swap the order.
550
551 2010-06-09  Jan Hubicka  <jh@suse.cz>
552
553         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
554         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
555         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
556         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
557
558 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
559
560         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
561         Do not the gather memory reference in the outer loop if the step
562         is not a constant.
563
564 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
565
566         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
567         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
568         8 to 4.  Minor change of the related comments.
569
570 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
571
572         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
573         the scev analysis when the variable is not used outside the loop
574         in a close phi node: call compute_overall_effect_of_inner_loop.
575
576 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
577
578         * graphite-sese-to-poly.c (single_pred_cond): Renamed
579         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
580         (build_sese_conditions_before): Renamed call to single_pred_cond.
581         (build_sese_conditions_after): Same.
582
583 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
584
585         * graphite-poly.h: Fix comments and indentation.
586         * graphite-sese-to-poly.c: Same.
587         (build_sese_conditions_before): Compute stmt and gbb only when needed.
588         * tree-chrec.c: Fix comments and indentation.
589         (tree-ssa-loop-niter.c): Same.
590
591 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
592
593         PR rtl-optimization/42461
594         * dce.c (deletable_insn_p): Return true for const or pure calls again.
595         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
596
597 2010-06-09  Jan Hubicka  <jh@suse.cz>
598
599         * bitmap.c (bitmap_and): Walk array forward.
600         (bitmap_and_compl_into): Likewise.
601         (bitmap_xor): Likewise.
602         (bitmap_xor_into):  Likewise.
603         (bitmap_equal_p): Likewise.
604         (bitmap_intersect_p): Likewise.
605         (bitmap_intersect_compl_p): Likewise.
606         (bitmap_ior_and_into): Likewise.
607         (bitmap_elt_copy): Likewise.
608         (bitmap_and_compl): Likewise.
609         (bitmap_elt_ior): Likewise.
610
611 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
612
613         * opts-common.c (prune_options): Ensure replacement argv array
614         is correctly terminated by a NULL entry.
615
616 2010-06-09  Jan Hubicka  <jh@suse.cz>
617
618         * cgraph.h (varpool_first_static_initializer,
619         varpool_next_static_initializer): Make checking only when
620         checking enabled.
621         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
622         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
623         gcc_assert to gcc_checking_assert.
624         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use, phi_nodes
625         set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
626         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
627         op_iter_init_phiuse, op_iter_init_phidef, array_ref_contains_indirect_ref,
628         ref_contains_array_ref): Use gcc_checking_assert.
629         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
630         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
631         partition_is_global, live_on_entry, live_on_exit,
632         live_merge_and_clear): Likewise.
633         * system.h (gcc_checking_assert): New macro.
634         * gimple.h (set_bb_seq): Use gcc_checking_assert.
635
636 2010-06-09  Jason Merrill  <jason@redhat.com>
637
638         * Makefile.in (TAGS): Collect tags info from c-family.
639
640 2010-06-09  Jan Hubicka  <jh@suse.cz>
641
642         * gimple.h (gcc_gimple_checking_assert): New macro.
643         (gimple_set_def_ops, gimple_set_use_ops,
644         gimple_set_vuse, gimple_set_vdef,
645         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
646         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
647         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
648         gimple_asm_output_op, gimple_asm_output_op_ptr,
649         gimple_asm_set_output_op, gimple_asm_clobber_op, 
650         gimple_asm_set_clobber_op, gimple_asm_label_op,
651         gimple_asm_set_label_op, gimple_try_set_kind, gimple_try_catch_is_cleanup
652         gimple_try_set_catch_is_cleanup, gimple_phi_arg, 
653         gimple_switch_num_labels, gimple_switch_set_index, gimple_switch_label,
654         gimple_switch_set_label, gimple_omp_for_index, gimple_omp_for_index_ptr,
655         gimple_omp_for_set_index, gimple_omp_for_initial, gimple_omp_for_initial_ptr,
656         gimple_omp_for_set_initial, gimple_omp_for_final, gimple_omp_for_final_ptr,
657         gimple_omp_for_set_final, gimple_omp_for_incr, gimple_omp_for_incr_ptr,
658         gimple_omp_for_set_incr, gimple_omp_for_set_cond, gimple_omp_for_cond): Make
659         checking conditional with ENABLE_GIMPLE_CHECKING.
660         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
661
662 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
663
664         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
665         (get_computation_cost_at): Use it.
666         (determine_use_iv_cost_condition): Likewise.
667         (determine_iv_cost): Likewise.
668
669 2010-06-09  Richard Guenther  <rguenther@suse.de>
670
671         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
672         replace constants.
673
674 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
675
676         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
677
678 2010-06-09  Martin Jambor  <mjambor@suse.cz>
679
680         PR tree-optimization/44423
681         * tree-sra.c (dump_access): Dump also grp_assignment_read.
682         (analyze_access_subtree): Pass negative allow_replacements to children
683         if the current type is scalar.
684
685 2010-06-09  Joern Rennecke  <amylaar@spamcop.net>
686
687         PR testsuite/42843
688         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
689         * doc/plugins.texi (Plugin license check): Update information
690         on type of plugin_is_GPL_compatible.
691         * Makefile.in (PLUGINCC): Define as $(COMPILER).
692         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
693
694 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
695
696         * config/arm/arm.c (thumb2_reorg): New function.
697         (arm_reorg): Call it.
698         * config/arm/thumb2.md (define_peephole2 for flag clobbering
699         arithmetic operations): Delete.
700
701 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
702
703         PR target/44067
704         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
705         e500v2 target.
706
707 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
708
709         PR plugins/44459
710         * gcc-plugin.h: Encapsulate all declarations in extern "C".
711
712 2010-06-08  Jan Hubicka  <jh@suse.cz>
713
714         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
715         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
716
717 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
718
719         PR tree-optimization/39874
720         PR middle-end/28685
721         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
722         Declare.
723         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
724         same_bool_result_p): New.
725         (and_var_with_comparison, and_var_with_comparison_1,
726         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
727         (or_var_with_comparison, or_var_with_comparison_1,
728         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
729         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
730         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
731         of combine_comparisons.
732         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
733
734 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
735
736         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
737         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
738         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
739         pdp11_function_value_regno_p): New functions.
740         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
741         TARGET_FUNCTION_VALUE_REGNO_P): Define.
742
743 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
744
745         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
746         Thumb-2 in the MINUS case.
747
748 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
749
750         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
751
752         * doc/gty.texi (GTY Options): Document typed GC allocation and
753         variable_size GTY option.
754
755         * ggc-internal.h: New.
756
757         * ggc.h: Update copyright year.
758         (digit_string): Move to stringpool.c.
759         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
760         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
761         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
762         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
763         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
764         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
765         (ggc_force_collect, ggc_get_size, ggc_statistics)
766         (ggc_print_common_statistics): Move to ggc-internal.h.
767         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
768         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
769         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
770         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
771         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
772         (ggc_alloc_zone_pass_stat): Remove.
773         (ggc_internal_alloc_stat, ggc_internal_alloc)
774         (ggc_internal_cleared_alloc_stat): New.
775         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
776         (ggc_internal_vec_alloc_stat)
777         (ggc_internal_cleared_vec_alloc_stat)
778         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
779         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
780         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
781         (ggc_cleared_alloc_ptr_array_two_args): New.
782         (htab_create_ggc, splay_tree_new_ggc): Redefine.
783         (ggc_splay_alloc): Change the type of the first argument to
784         enum gt_types_enum.
785         (ggc_alloc_string): Make macro.
786         (ggc_alloc_string_stat): New.
787         (ggc_strdup): Redefine.
788         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
789         (ggc_alloc_rtvec_sized): New.
790         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
791         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
792         (ggc_internal_cleared_alloc_zone_stat)
793         (ggc_internal_zone_alloc_stat)
794         (ggc_internal_zone_cleared_alloc_stat)
795         (ggc_internal_zone_vec_alloc_stat)
796         (ggc_alloc_zone_rtx_def_stat)
797         (ggc_alloc_zone_tree_node_stat)
798         (ggc_alloc_zone_cleared_tree_node_stat)
799         (ggc_alloc_cleared_gimple_statement_d_stat): New.
800
801         * ggc-common.c: Include ggc-internal.h.
802         (ggc_internal_cleared_alloc_stat): Rename from
803         ggc_alloc_cleared_stat.
804         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
805         (ggc_calloc): Remove.
806         (ggc_cleared_alloc_htab_ignore_args): New.
807         (ggc_cleared_alloc_ptr_array_two_args): New.
808         (ggc_splay_alloc): Add obj_type parameter.
809         (init_ggc_heuristics): Formatting fixes.
810
811         * ggc-none.c: Update copyright year.
812         (ggc_alloc_stat): Rename to ggc_alloc_stat.
813         (ggc_alloc_cleared_stat): Rename to
814         ggc_internal_cleared_alloc_stat.
815         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
816
817         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
818         Remove references to ggc_alloc in comments.
819         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
820         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
821         (new_ggc_zone, destroy_ggc_zone): Remove.
822         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
823
824         * ggc-zone.c: Include ggc-internal.h.  Remove references to
825         ggc_alloc in comments.
826         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
827         (ggc_internal_alloc_zone_pass_stat): New.
828         (ggc_internal_cleared_alloc_zone_stat): New.
829         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
830         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
831         (new_ggc_zone, destroy_ggc_zone): Remove.
832
833         * stringpool.c: Update copyright year.  Include ggc-internal.h
834         (digit_vector): Make static.
835         (digit_string): Moved from ggc.h.
836         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
837         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
838
839         * Makefile.in (GGC_INTERNAL_H): New.
840         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
841         $(GGC_INTERNAL_H) to dependencies.
842
843         * gentype.c: Update copyright year.
844         (walk_type): Accept variable_size GTY option.
845         (USED_BY_TYPED_GC_P): New macro.
846         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
847         whitespace at the end of strings.
848         (get_type_specifier, variable_size_p): New functions.
849         (alloc_quantity, alloc_zone): New enums.
850         (write_typed_alloc_def): New function.
851         (write_typed_struct_alloc_def): Likewise.
852         (write_typed_typed_typedef_alloc_def): Likewise.
853         (write_typed_alloc_defns): Likewise.
854         (output_typename, write_splay_tree_allocator_def): Likewise.
855         (write_splay_tree_allocators): Likewise.
856         (main): Call write_typed_alloc_defns and
857         write_splay_tree_allocators.
858
859         * lto-streamer.h (lto_file_decl_data_ptr): New.
860
861         * passes.c (order): Define using cgraph_node_ptr.
862
863         * strinpool.c (struct string_pool_data): Declare nested_ptr using
864         ht_identifier_ptr.
865
866         * gimple.h (union gimple_statement_d): Likewise.
867
868         * rtl.h (struct rtx_def): Likewise.
869         (struct rtvec_def): Likewise.
870
871         * tree.h (union tree_node): Likewise.
872
873         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
874
875         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
876
877         * tree-scalar-evolution.c (scev_initialize): Likewise.
878
879         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
880
881         * dwarf2asm.c (dw2_force_const_mem): Likewise.
882
883         * omp-low.c (lower_omp_critical): Likewise.
884
885         * bitmap.h (struct bitmap_head_def): Update comment to not
886         reference ggc_alloc.
887
888         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
889
890         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
891
892         * ipa-prop.c (duplicate_ggc_array): Rename to
893         duplicate_ipa_jump_func_array.  Use typed GC allocation.
894         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
895
896         * gimple.c (gimple_alloc_stat): Use
897         ggc_alloc_cleared_gimple_statement_d_stat.
898
899         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
900
901         * tree.c (make_node_stat): Use
902         ggc_alloc_zone_cleared_tree_node_stat.
903         (make_tree_vec_stat): Likewise.
904         (build_vl_exp_stat): Likewise.
905         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
906         (make_tree_binfo_stat): Likewise.
907         (tree_cons_stat): Likewise.
908
909         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
910         (shallow_copy_rtx_stat): Likewise.
911         (make_node_stat): Likewise.
912
913         * lto-symtab.c: Fix comment.
914
915         * tree-cfg.c (create_bb): Update comment to not reference
916         ggc_alloc_cleared.
917         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is
918         value.
919
920         * varpool.c (varpool_node): Use typed GC allocation.
921         (varpool_extra_name_alias): Likewise.
922
923         * varasm.c (emutls_decl): Likewise.
924         (get_unnamed_section): Likewise.
925         (get_noswitch_section): Likewise.
926         (get_section): Likewise.
927         (get_block_for_section): Likewise.
928         (build_constant_desc): Likewise.
929         (create_constant_pool): Likewise.
930         (force_const_mem): Likewise.
931
932         * tree.c (build_vl_exp_stat): Likewise.
933         (build_real): Likewise.
934         (build_string): Likewise.
935         (decl_debug_expr_insert): Likewise.
936         (decl_value_expr_insert): Likewise.
937         (type_hash_add): Likewise.
938         (build_omp_clause): Likewise.
939
940         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
941
942         * tree-ssa.c (init_tree_ssa): Likewise.
943
944         * tree-ssa-structalias.c (heapvar_insert): Likewise.
945
946         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
947
948         * tree-ssa-loop-niter.c (record_estimate): Likewise.
949
950         * tree-ssa-alias.c (get_ptr_info): Likewise.
951
952         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
953
954         * tree-phinodes.c (allocate_phi_node): Likewise.
955
956         * tree-iterator.c (tsi_link_before): Likewise.
957         (tsi_link_after): Likewise.
958
959         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
960
961         * tree-dfa.c (create_var_ann): Likewise.
962
963         * tree-cfg.c (create_bb): Likewise.
964
965         * toplev.c (alloc_for_identifier_to_locale): Likewise.
966         (general_init): Likewise.
967
968         * stringpool.c (stringpool_ggc_alloc): Likewise.
969         (gt_pch_save_stringpool): Likewise.
970
971         * sese.c (if_region_set_false_region): Likewise.
972
973         * passes.c (do_per_function_toporder): Likewise.
974
975         * optabs.c (set_optab_libfunc): Likewise.
976         (set_conv_libfunc): Likewise.
977
978         * lto-symtab.c (lto_symtab_register_decl): Likewise.
979
980         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
981         (input_eh_region): Likewise.
982         (input_eh_lp): Likewise.
983         (make_new_block): Likewise.
984         (unpack_ts_real_cst_value_fields): Likewise.
985
986         * lto-section-in.c (lto_new_in_decl_state): Likewise.
987
988         * lto-cgraph.c (input_node_opt_summary): Likewise.
989
990         * loop-init.c (loop_optimizer_init): Likewise.
991
992         * lambda.h (lambda_vector_new): Likewise.
993
994         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
995
996         * ira.c (update_equiv_regs): Likewise.
997
998         * ipa.c (cgraph_node_set_new): Likewise.
999         (cgraph_node_set_add): Likewise.
1000         (varpool_node_set_new): Likewise.
1001         (varpool_node_set_add): Likewise.
1002
1003         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
1004         (duplicate_ipa_jump_func_array): Likewise.
1005         (ipa_read_node_info): Likewise.
1006
1007         * ipa-cp.c (ipcp_create_replace_map): Likewise.
1008
1009         * integrate.c (get_hard_reg_initial_val): Likewise.
1010
1011         * gimple.c (gimple_alloc_stat): Likewise.
1012         (gimple_build_omp_for): Likewise.
1013         (gimple_seq_alloc): Likewise.
1014         (gimple_copy): Likewise.
1015
1016         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
1017         (gsi_insert_after_without_update): Likewise.
1018
1019         * function.c (add_frame_space): Likewise.
1020         (insert_temp_slot_address): Likewise.
1021         (assign_stack_temp_for_type): Likewise.
1022         (allocate_struct_function): Likewise.
1023         (types_used_by_var_decl_insert): Likewise.
1024
1025         * except.c (init_eh_for_function): Likewise.
1026         (gen_eh_region): Likewise.
1027         (gen_eh_region_catch): Likewise.
1028         (gen_eh_landing_pad): Likewise.
1029         (add_call_site): Likewise.
1030
1031         * emit-rtl.c (get_mem_attrs): Likewise.
1032         (get_reg_attrs): Likewise.
1033         (start_sequence): Likewise.
1034         (init_emit): Likewise.
1035
1036         * dwarf2out.c (new_cfi): Likewise.
1037         (queue_reg_save): Likewise.
1038         (dwarf2out_frame_init): Likewise.
1039         (new_loc_descr): Likewise.
1040         (find_AT_string): Likewise.
1041         (new_die): Likewise.
1042         (add_var_loc_to_decl): Likewise.
1043         (clone_die): Likewise.
1044         (clone_as_declaration): Likewise.
1045         (break_out_comdat_types): Likewise.
1046         (new_loc_list): Likewise.
1047         (loc_descriptor): Likewise.
1048         (add_loc_descr_to_each): Likewise.
1049         (add_const_value_attribute): Likewise.
1050         (tree_add_const_value_attribute): Likewise.
1051         (add_comp_dir_attribute): Likewise.
1052         (add_name_and_src_coords_attributes): Likewise.
1053         (lookup_filename): Likewise.
1054         (store_vcall_insn): Likewise.
1055         (dwarf2out_init): Likewise.
1056
1057         * dbxout.c (dbxout_init): Likewise.
1058
1059         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
1060
1061         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
1062
1063         * config/score/score7.c (score7_output_external): Likewise.
1064
1065         * config/score/score3.c (score3_output_external): Likewise.
1066
1067         * config/s390/s390.c (s390_init_machine_status): Likewise.
1068
1069         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
1070         (rs6000_init_machine_status): Likewise.
1071         (output_toc): Likewise.
1072
1073         * config/pa/pa.c (pa_init_machine_status): Likewise.
1074         (get_deferred_plabel): Likewise.
1075
1076         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
1077
1078         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
1079
1080         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
1081
1082         * config/mep/mep.c (mep_init_machine_status): Likewise.
1083         (mep_note_pragma_flag): Likewise.
1084
1085         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
1086
1087         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
1088
1089         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
1090
1091         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
1092         (i386_pe_maybe_record_exported_symbol): Likewise.
1093
1094         * config/i386/i386.c (get_dllimport_decl): Likewise.
1095         (ix86_init_machine_status): Likewise.
1096         (assign_386_stack_local): Likewise.
1097
1098         * config/frv/frv.c (frv_init_machine_status): Likewise.
1099
1100         * config/darwin.c (machopic_indirection_name): Likewise.
1101
1102         * config/cris/cris.c (cris_init_machine_status): Likewise.
1103
1104         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
1105
1106         * config/avr/avr.c (avr_init_machine_status): Likewise.
1107
1108         * config/arm/arm.c (arm_init_machine_status): Likewise.
1109
1110         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
1111         (alpha_need_linkage): Likewise.
1112         (alpha_use_linkage): Likewise.
1113
1114         * cgraph.c (cgraph_allocate_node): Likewise.
1115         (cgraph_create_edge_1): Likewise.
1116         (cgraph_create_indirect_edge): Likewise.
1117         (cgraph_add_asm_node): Likewise.
1118
1119         * cfgrtl.c (init_rtl_bb_info): Likewise.
1120
1121         * cfgloop.c (alloc_loop): Likewise.
1122         (rescan_loop_exit): Likewise.
1123
1124         * cfg.c (init_flow): Likewise.
1125         (alloc_block): Likewise.
1126         (unchecked_make_edge): Likewise.
1127
1128         * c-parser.c (c_parse_init): Likewise.
1129         (c_parse_file): Likewise.
1130
1131         * c-decl.c (bind): Likewise.
1132         (record_inline_static): Likewise.
1133         (push_scope): Likewise.
1134         (make_label): Likewise.
1135         (lookup_label_for_goto): Likewise.
1136         (finish_struct): Likewise.
1137         (finish_enum): Likewise.
1138         (c_push_function_context): Likewise.
1139
1140         * bitmap.c (bitmap_element_allocate): Likewise.
1141         (bitmap_gc_alloc_stat): Likewise.
1142
1143         * alias.c (record_alias_subset): Likewise.
1144         (init_alias_analysis): Likewise.
1145
1146 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
1147         
1148         * fold-const.c (fold_comparison): Remove redundant parenthesis.
1149         * tree-inline.c (expand_call_inline): Pass translated return value of
1150         cgraph_inline_failed_string to diagnostic function.
1151
1152 2010-06-08  Andrew Pinski <pinskia@gmail.com>
1153             Shujing Zhao  <pearly.zhao@oracle.com>
1154
1155         PR c/37724
1156         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
1157         implicit bad conversions is initialization.
1158         (error_init): Use gmsgid instead of msgid for argument name and change
1159         the call for error.
1160         (pedwarn_init): Use gmsgid instead of msgid for argument name and
1161         change the call for pedwarn.
1162         (warning_init): Use gmsgid instead of msgid for argument name and
1163         change the call for warning.
1164
1165 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
1166
1167         * config/mips/mips-protos.h (mips_print_operand): Delete.
1168         (mips_print_operand_address): Delete.
1169         * config/mips/mips.h (mips_print_operand_punct): Delete.
1170         (PRINT_OPERAND): Delete.
1171         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1172         (PRINT_OPERAND_ADDRESS): Delete.
1173         * config/mips/mips.c (mips_print_operand_punct): Make static.
1174         (mips_print_operand_address): Make static.
1175         (mips_print_operand): Make static.  Call
1176         mips_print_operand_punct_valid_p.
1177         (mips_print_operand_punct_valid_p): New function.
1178         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
1179         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1180
1181 2010-06-07  Jan Hubicka  <jh@suse.cz>
1182
1183         PR middle-end/44454
1184         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
1185         are allocated.
1186
1187 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
1188
1189         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
1190         name of RECORD.
1191
1192 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1193
1194         * doc/sourcebuild.texi (Effective-Target Keywords, Other
1195         attributes): Document gas.
1196
1197 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
1198
1199         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
1200         <TYPE_LEA>: Split instruction.
1201         <default>: Remove alternative 2 handling.
1202         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
1203         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
1204         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
1205
1206         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
1207         (ashift_zext lea splitter): Use DImode for multiplication.
1208
1209         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
1210         to generate addition.
1211
1212 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
1213
1214         * common.opt (fira-verbose): Use Var.
1215         (fpcc-struct-return): Use Init instead of VarExists.
1216         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
1217         toplev.c.
1218         * flags.h (flag_signed_char, flag_short_enums,
1219         flag_pcc_struct_return, flag_ira_verbose,
1220         flag_detailed_statistics, flag_remove_unreachable_functions):
1221         Remove.
1222         * toplev.c (flag_detailed_statistics, flag_signed_char,
1223         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
1224         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
1225         * toplev.h (flag_crossjumping, flag_if_conversion,
1226         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
1227         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
1228         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
1229         flag_cprop_registers, time_report, flag_ira_loop_pressure,
1230         flag_ira_coalesce, flag_ira_move_spills,
1231         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
1232
1233 2010-06-07  Jan Hubicka  <jh@suse.cz>
1234
1235         * df-core.c (df_analyze_problem): Do verification after allocation.
1236
1237         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
1238         (df_lr_alloc): Initialize problem data; move bitmaps to
1239         lr_bitmaps obstack.
1240         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
1241         (df_lr_verify_solution_start): Do not initialize problem data;
1242         allocate bitmaps in lr_bitmaps.
1243         (df_lr_verify_solution_end): Do not free problem data.
1244
1245 2010-06-07  Jan Hubicka  <jh@suse.cz>
1246
1247         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
1248         if caller is noreturn.
1249         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
1250         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
1251         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
1252         * ipa-pure-const.c (check_decl): Add IPA parameter.
1253         (state_from_flags): New function.
1254         (better_state, worse_state): New functions.
1255         (check_call): When in IPA mode, do not care about callees.
1256         (check_load, check_store): Update.
1257         (check_ipa_load, check_ipa_store): New.
1258         (check_stmt): When in IPA mode, use IPA checkers.
1259         (analyze_function): Use state_from_flags.
1260         (propagate): Check indirect edges and references.
1261
1262 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
1263
1264         PR rtl-optimization/44404
1265         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
1266         of count_occurrences to see if it's safe to modify mem_insn.insn.
1267
1268 2010-06-07  Richard Guenther  <rguenther@suse.de>
1269
1270         * gimplify.c (gimplify_cleanup_point_expr): For empty body
1271         and EH-only cleanup drop the cleanup instead of inserting it
1272         unconditionally.
1273
1274 2010-06-07  Ira Rosen  <irar@il.ibm.com>
1275
1276         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
1277         documentation.
1278         * targhooks.c (default_builtin_vectorization_cost): New function.
1279         * targhooks.h (default_builtin_vectorization_cost): Declare.
1280         * target.h (enum vect_cost_for_stmt): Define.
1281         (builtin_vectorization_cost): Change argument and comment.
1282         * tree-vectorizer.h: Remove cost model macros.
1283         * tree-vect-loop.c: Include target.h.
1284         (vect_get_cost): New function.
1285         (vect_estimate_min_profitable_iters): Replace cost model macros with
1286         calls to vect_get_cost.
1287         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
1288         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
1289         default implementation.
1290         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
1291         calls to target hook builtin_vectorization_cost.
1292         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
1293         Likewise.
1294         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
1295         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
1296         implementation to return costs.
1297         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
1298         * config/spu/spu.h: Remove vectorizer cost model macros.
1299         * config/i386/i386.h: Likewise.
1300         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
1301         a call to target hook builtin_vectorization_cost.
1302
1303 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
1304
1305         PR target/44319
1306         * config/i386/i386.c (override_options): Turn zee pass on for level 2
1307         and above and defer till target is known.
1308         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
1309         turn off otherwise.
1310
1311 2010-05-25  Jan Hubicka  <jh@suse.cz>
1312
1313         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
1314         (df_compact_blocks): Likewise.
1315         * df.h (struct df): Turn hardware_regs_used,
1316         regular_block_artificial_uses, eh_block_artificial_uses,
1317         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
1318         bitmap_head.
1319         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
1320         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
1321         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
1322         df_scan_blocks, df_insn_delete, df_insn_rescan,
1323         df_insn_rescan_debug_internal, df_insn_rescan_all,
1324         df_process_deferred_rescans, df_process_deferred_rescans,
1325         df_notes_rescan, df_get_call_refs, df_get_call_refs,
1326         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
1327         df_record_entry_block_defs, df_record_exit_block_uses,
1328         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
1329         df_scan_verify): Update.
1330
1331 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
1332
1333         PR c++/44188
1334         * c-common.c (is_typedef_decl): Move this definition ...
1335         * tree.c (is_typedef_decl): ... here.
1336         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
1337         * c-common.h (is_typedef_decl): Move this declaration ...
1338         * tree.h (is_typedef_decl): ... here.
1339         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
1340         * dwarf2out.c (is_naming_typedef_decl): New function.
1341         (gen_tagged_type_die): Split out of ...
1342         (gen_type_die_with_usage): ... this function. When an anonymous
1343         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
1344         is emitted for the typedef.
1345         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
1346         anonymous tagged types.
1347
1348 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1349
1350         PR c/20000
1351         * c-decl.c (grokdeclarator): Delete warning.
1352
1353 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
1354
1355         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
1356         newly built CALL_EXPR.
1357         * tree-profile.c (tree_profiling): Don't profile functions produced
1358         for built-in stuff.
1359
1360 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
1361
1362         PR bootstrap/44427
1363         PR bootstrap/44428
1364         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
1365         endianness-independent.
1366
1367 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
1368
1369         * c-common.c: Move to c-family/.
1370         * c-common.def: Likewise.
1371         * c-common.h: Likewise.
1372         * c-cppbuiltin.c: Likewise.
1373         * c-dump.c: Likewise.
1374         * c-format.c: Likewise.
1375         * c-format.h : Likewise.
1376         * c-gimplify.c: Likewise.
1377         * c-lex.c: Likewise.
1378         * c-omp.c: Likewise.
1379         * c.opt: Likewise.
1380         * c-opts.c: Likewise.
1381         * c-pch.c: Likewise.
1382         * c-ppoutput.c: Likewise.
1383         * c-pragma.c: Likewise.
1384         * c-pragma.h: Likewise.
1385         * c-pretty-print.c: Likewise.
1386         * c-pretty-print.h: Likewise.
1387         * c-semantics.c: Likewise.
1388         * stub-objc.c: Likewise.
1389
1390         * gengtype.c (get_file_langdir): Special-case files in c-family/.
1391         (get_output_file_with_visibility): Fix name for c-common.h.
1392         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
1393
1394         * c-tree.h: Update include path for moved files.
1395         * c-lang.c: Likewise.
1396         * c-lang.h: Likewise.
1397         * c-parser.c: Likewise.
1398         * c-convert.c: Likewise.
1399         * c-decl.c: Likewise.
1400         * c-objc-common.c: Likewise.
1401         * configure.ac: Make sure c-family/ exists in the build directory.
1402         * configure: Regenerate.
1403         * Makefile.in: Update paths for moved files.  Regroup files per
1404         location and update dependencies.  Move generated_files down after
1405         ALL_GTFILES_H.
1406
1407         * config/spu/spu-c.c: Update paths for moved files.
1408         * config/mep/mep-pragma.c: Likewise.
1409         * config/darwin-c.c: Likewise.
1410         * config/i386/msformat-c.c: Likewise.
1411         * config/i386/i386-c.c: Likewise.
1412         * config/avr/avr-c.c: Likewise.
1413         * config/sol2-c.c: Likewise.
1414         * config/ia64/ia64-c.c: Likewise.
1415         * config/rs6000/rs6000-c.c: Likewise.
1416         * config/arm/arm.c: Likewise.
1417         * config/arm/arm-c.c: Likewise.
1418         * config/h8300/h8300.c: Likewise.
1419         * config/v850/v850-c.c: Likewise.
1420
1421         * config/t-darwin: Fix dependencies for moved files.
1422         * config/t-sol2: Fix dependencies for moved files.
1423         * config/mep/t-mep: Fix dependencies for moved files.
1424         * config/ia64/t-ia64: Fix dependencies for moved files.
1425         * config/rs6000/t-rs6000: Fix dependencies for moved files.
1426         * config/v850/t-v850: Fix dependencies for moved files.
1427         * config/v850/t-v850e: Fix dependencies for moved files.
1428
1429         * config/m32c/m32c-pragma.c
1430
1431         * po/exgettext: Look in c-family/ also.
1432
1433 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
1434
1435         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
1436         (mark_control_dependent_edges_necessary): Call it instead of marking
1437         the last statement manually.
1438         (propagate_necessity): Likewise.
1439
1440 2010-06-05  Jan Hubicka  <jh@suse.cz>
1441
1442         * basic-block.h (compute_dominance_frontiers): Updated.
1443         (compute_idf): Likewise.
1444
1445         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
1446         for dominance frontiers.
1447         (rewrite_into_ssa): Update for bitmap heads in dominance
1448         frontiers.
1449         (insert_updated_phi_nodes_for): Likewise.
1450         (update_ssa): Likewise.
1451         * cfganal.c (compute_dominance_frontiers_1): Likewise.
1452         (compute_dominance_frontiers): Likewise.
1453         (compute_idf): Likewise.
1454         * df-problems.c (df_md_local_compute): Likewise.
1455
1456 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
1457
1458         * target.h (struct gcc_target): Add memory_move_cost field.
1459         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
1460         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
1461         * targhooks.c (default_memory_move_cost): New function.
1462         * targhooks.h (default_memory_move_cost): Declare function.
1463         * reload.h (memory_move_cost): Declare.
1464         (memory_move_secondary_cost): Change type of 'in' argument to bool.
1465         * reginfo.c (memory_move_cost): New function.
1466         (memory_move_secondary_cost): Change type of 'in' argument to bool.
1467         * ira.h (ira_memory_move_cost): Update comment.
1468         * ira.c: (ira_memory_move_cost): Update comment.
1469         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
1470         with memory_move_cost.
1471         * postreload.c (reload_cse_simplify_set): (Ditto.).
1472         * reload1.c (choose_reload_regs): (Ditto.).
1473         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
1474         (MEMORY_MOVE_COST):  Revise documentation.
1475
1476         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
1477         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
1478         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
1479         type of 'in' argument to bool.
1480         (TARGET_MEMORY_MOVE_COST): Define.
1481
1482 2010-06-05  Jan Hubicka  <jh@suse.cz>
1483
1484         * ipa-pure-const.c (propagate): Fix typo in handling of functions
1485         that cannot return.  Be more careful when merging the results with
1486         previously known ones.
1487
1488 2010-06-05  Matthias Klose  <doko@ubuntu.com>
1489
1490         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
1491         function to add the -iplugindir option.
1492         (find_plugindir_spec_function): Add new declaration and function.
1493         (static_spec_func): Use it for "find-plugindir".
1494
1495 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
1496
1497         PR c++/44361
1498         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
1499         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
1500         statement expression.
1501
1502 2010-06-05  Jan Hubicka  <jh@suse.cz>
1503
1504         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
1505         (df_rd_problem_data): Convert sparse_invalidated_by_call,
1506         dense_invalidated_by_call to bitmap head.
1507         (df_rd_alloc, df_rd_bb_local_compute_process_def,
1508         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
1509         df_rd_start_dump, df_lr_verify_transfer_functions,
1510         df_live_verify_transfer_functions, df_chain_create_bb,
1511         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
1512         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
1513         df_simulate_one_insn_forwards, df_md_alloc,
1514         df_md_bb_local_compute_process_def,
1515         df_md_bb_local_compute_process_def, df_md_local_compute,
1516         df_md_transfer_function df_md_free): Update.
1517
1518 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
1519
1520         PR c/44322
1521         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
1522         target type for ADDR_EXPR; require no changes to qualifiers except
1523         for function types.
1524         * c-tree.h (c_build_type_variant): Remove.
1525
1526 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
1527
1528         * genautomata.c (get_excl_set): Do work per element, not per char.
1529         (check_presence_pattern_sets): Similar.
1530         (check_absence_pattern_sets): Similar.
1531
1532 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
1533
1534         * genautomata.c (curr_state_pass_num): Delete.
1535         (min_issue_delay_pass_states): Delete.
1536         (min_issue_delay): Delete.
1537         (initiate_min_issue_delay_pass_states): Delete.
1538         (output_min_issue_delay_table): Compute min_issue_delay_vect
1539         using a breadth-first search variant.
1540         (output_tables): Don't call initiate_min_issue_delay_pass_states.
1541
1542 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
1543
1544         PR boostrap/44421
1545         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
1546         (df_byte_lr_bb_local_compute): Likewise.
1547
1548 2010-06-03  Jason Merrill  <jason@redhat.com>
1549
1550         Implement noexcept operator (5.3.7)
1551         * c-common.c (c_common_reswords): Add noexcept.
1552         * c-common.h (enum rid): Add RID_NOEXCEPT.
1553
1554 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
1555
1556         * config/darwin-driver.c (darwin_default_min_version): Use
1557         GCC-specific formats in diagnostics.
1558         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
1559         diagnostics.
1560         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
1561         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
1562         eval_spec_function, handle_braces, process_brace_body, main,
1563         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
1564         getenv_spec_function, compare_version_strings,
1565         version_compare_spec_function): Use GCC-specific formats in
1566         diagnostics.
1567
1568 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
1569
1570         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
1571         that operand 0 and operand 1 are equal.
1572         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
1573         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
1574         and operand 1 are equal.
1575         <default>: Ditto.  Remove ??? comment.
1576         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
1577         and operand 1 are equal.
1578         <default>: Ditto.  Remove ??? comment.
1579         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
1580         are equal.
1581         (*add<mode>_4) <default>: Ditto.
1582         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
1583
1584 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
1585
1586         * config/i386/i386-protos.h (ix86_print_operand): Declare.
1587         * config/i386/i386.c (ix86_print_operand): Make non-static.
1588         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
1589         * output.h (output_operand): Declare.
1590         * final.c (output_operand): Make non-static.
1591
1592 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
1593
1594         PR rtl-optimization/44013
1595         * sched-deps.c (add_dependence_list_and_free): Don't free lists
1596         when processing debug insns.
1597
1598         PR debug/41371
1599         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
1600         recursing.  Check that recursion is bounded.  Rename inner var
1601         to avoid hiding incoming argument.
1602
1603 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
1604
1605         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
1606         operands[2] == 255.
1607         (*addqi_3): Ditto.
1608         (*addqi_4): Ditto.
1609         (*addqi_5): Ditto.
1610         (*addqi_ext_1_rex64): Ditto.
1611         (*addqi_ext_1): Ditto.
1612
1613         (*addqi_4): Check for incdec_operand in QImode.
1614
1615         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
1616         using SWI mode iterator.
1617         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
1618         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
1619         mode iterator.
1620         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
1621         using SWI mode iterator.
1622
1623 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1624
1625         PR c/25880
1626         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
1627         * c-format.c (gcc_diag_flag_specs): Add hash.
1628         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
1629         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
1630         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
1631         pp_c_cv_qualifiers. Handle qualifiers spelling here.
1632         (pp_c_type_qualifier_list): Call the function above.
1633         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
1634         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
1635         (WARN_FOR_QUALIFIERS): New macro.
1636         (convert_for_assignment): Use it.
1637
1638 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
1639
1640         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
1641
1642 2010-06-04  Jan Hubicka  <jh@suse.cz>
1643
1644         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
1645         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
1646         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
1647         DF_BYTE_LR_OUT): Update for embedded bitmaps.
1648         * fwprop.c (single_def_use_enter_block): Likewise.
1649         * ddg.c (create_ddg_dep_from_intra_loop_link,
1650         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
1651         * loop-iv.c (latch_dominating_def): Likewise.
1652         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
1653         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
1654         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
1655         df_rd_transfer_function, df_rd_top_dump,
1656         df_rd_bottom_dump): Update.
1657         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
1658         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
1659         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
1660         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
1661         df_lr_verify_solution_start, df_lr_verify_solution_end,
1662         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
1663         df_live_free_bb_info, df_live_alloc, df_live_reset,
1664         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
1665         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
1666         df_live_verify_solution_start, df_live_verify_solution_end,
1667         df_live_verify_transfer_functions, df_chain_create_bb,
1668         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
1669         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
1670         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
1671         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
1672         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
1673         df_byte_lr_transfer_function, df_byte_lr_top_dump,
1674         df_byte_lr_bottom_dump, df_create_unused_note,
1675         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
1676         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
1677         df_md_transfer_function, df_md_init, df_md_confluence_0,
1678         df_md_confluence_n,
1679         df_md_top_dump, df_md_bottom_dump): Update.
1680         (struct df_lr_problem_data): Embedd bitmap headers.
1681
1682 2010-06-04  Jan Hubicka  <jh@suse.cz>
1683
1684         * dce.c (dce_process_block): Do not re-scan already marked
1685         instructions.
1686
1687 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
1688
1689         PR rtl-optimization/39871
1690         PR rtl-optimization/40615
1691         PR rtl-optimization/42500
1692         PR rtl-optimization/42502
1693         * ira.c (init_reg_equiv_memory_loc: New function.
1694         (ira): Call it twice.
1695         * reload.h (calculate_elim_costs_all_insns): Declare.
1696         * ira-costs.c: Include "reload.h".
1697         (regno_equiv_gains): New static variable.
1698         (init_costs): Allocate it.
1699         (finish_costs): Free it.
1700         (ira_costs): Call calculate_elim_costs_all_insns.
1701         (find_costs_and_classes): Take estimated elimination costs
1702         into account.
1703         (ira_adjust_equiv_reg_cost): New function.
1704         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
1705         * reload1.c (init_eliminable_invariants, free_reg_equiv,
1706         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
1707         (elim_bb): New static variable.
1708         (reload): Move code out of here into init_eliminable_invariants and
1709         free_reg_equiv.  Call them.
1710         (calculate_elim_costs_all_insns): New function.
1711         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
1712         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
1713         but call note_reg_elim_costly if we turned a valid memory address
1714         into an invalid one.
1715         * Makefile.in (ira-costs.o): Depend on reload.h.
1716
1717 2010-06-04  Julian Brown  <julian@codesourcery.com>
1718
1719         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
1720         for pool ranges.
1721
1722 2010-06-04  Richard Guenther  <rguenther@suse.de>
1723
1724         PR lto/41584
1725         * cgraph.h (struct varpool_node): Add lto_file_data field.
1726         * lto-cgraph.c (input_varpool_node): Initialize it.
1727
1728 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
1729
1730         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
1731         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
1732         predicate in "type" attribute calculation.
1733         (*addsi_1_zext): Ditto.
1734         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
1735         (*addsi_2_zext): Ditto.
1736         (*add<mode>_3): Ditto.
1737         (*addsi_3_zext): Ditto.
1738         (*add<mode>_5): Ditto.
1739
1740 2010-06-03  Jan Hubicka  <jh@suse.cz>
1741
1742         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
1743         of bitmap_bit_p.
1744         * cfganal.c (compute_dominance_frontiers_1): Likewise.
1745
1746 2010-06-03  Jan Hubicka  <jh@suse.cz>
1747
1748         * df-problems.c (df_create_unused_note, df_note_bb_compute):
1749         micro-optimize the checks when to add new note.
1750
1751 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
1752
1753         * final.c (output_asm_insn): Call
1754         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
1755         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
1756         (output_address): Call targetm.asm_out.print_operand_address.
1757         Update comments.
1758         * target.h (struct gcc_target): Add print_operand,
1759         print_operand_address, and print_operand_punct_valid_p fields.
1760         * targhooks.h (default_print_operand): Declare.
1761         (default_print_operand_address): Declare.
1762         (default_print_operand_punct_valid_p): Declare.
1763         * targhooks.c (default_print_operand): Define.
1764         (default_print_operand_address): Define.
1765         (default_print_operand_punct_valid_p): Define.
1766         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
1767         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
1768         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
1769         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
1770         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
1771         * vmsdbgout.c (addr_const_to_string): Update comment.
1772         * config/i386/i386.c (print_operand): Rename to...
1773         (ix86_print_operand): ...this.  Make static.
1774         (print_operand_address): Rename to...
1775         (ix86_print_operand_address): ...this.  Make static.  Call
1776         ix86_print_operand instead of PRINT_OPERAND.
1777         (ix86_print_operand_punct_valid_p): New function.
1778         (TARGET_PRINT_OPERAND): Define.
1779         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1780         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1781         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
1782         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1783         (PRINT_OPERAND): Delete.
1784         (PRINT_OPERAND_ADDRESS): Delete.
1785         * config/i386/i386-protos.h (print_operand): Delete prototype.
1786         (print_operand_address): Delete prototype.
1787
1788 2010-06-03  Richard Guenther  <rguenther@suse.de>
1789
1790         PR tree-optimization/44403
1791         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
1792         Preserve pointer qualifiers.
1793         (vect_create_data_ref_ptr): Likewise.
1794
1795 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1796
1797         PR c++/44294
1798         * defaults.h (MAX_FIXED_MODE_SIZE): New.
1799
1800         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
1801
1802 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
1803
1804         PR debug/44375
1805         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
1806         return false if merging the bbs would lead to goto_locus
1807         location being lost from the IL.
1808
1809 2010-06-03  Jan Hubicka  <jh@suse.cz>
1810             Jakub Jelinek  <jakub@redhat.com>
1811
1812         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
1813         set->regs[i] is NULL or has just one entry.
1814
1815 2010-06-03  Jan Hubicka  <jh@suse.cz>
1816
1817         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
1818         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
1819
1820 2010-06-03  Paul Brook  <paul@codesourcery.com>
1821
1822         * config/arm/arm.c (FL_TUNE): Define.
1823         (arm_default_cpu, arm_cpu_select): Remove.
1824         (all_cores): Populate core field.
1825         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
1826         (arm_find_cpu): New function.
1827         (arm_handle_option): Lookup cpu/architecture names.
1828         (arm_override_options): Cleanup mcpu/march/mtune handling.
1829         (arm_file_start): Ditto.
1830
1831 2010-06-03  Alan Modra  <amodra@gmail.com>
1832
1833         PR target/44169
1834         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
1835         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
1836         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
1837         (rs6000_emit_load_toc_table): Likewise.
1838
1839 2010-06-02  Jan Hubicka  <jh@suse.cz>
1840
1841         * passes.c (init_optimization_passes): Put ipa reference
1842         after ipa pure-const.
1843
1844 2010-06-02  Jan Hubicka  <jh@suse.cz>
1845
1846         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
1847         calls_read_all and calls_write_all.
1848         (get_reference_optimization_summary): Fix formatting.
1849         (is_proper_for_analysis): Check that decl is not readonly.
1850         (propagate_bits): Check CONST/PURE/noreturn flags.
1851         (ipa_init): Move all_module_statics to optimization_summary_obstack.
1852         (analyze_function): Ignore indirect edges.
1853         (copy_global_bitmap): For all module statics, do nothing.
1854         (generate_summary): Do not print calls_read_all/calls_write_all.
1855         (read_write_all_from_decl): Take node as argument; check
1856         cgraph_node_cannot_return.
1857         (propagate): Reorganize read_all/write_all computation;
1858         check indirect edges; check ecf flags; use all_module_statics
1859         in the results; do not free all_module_statics.
1860         (stream_out_bitmap): Handle all_module_statics.
1861         (ipa_reference_write_optimization_summary): Likewise; use
1862         varpool/cgraph encoders to get boundaries.
1863         (ipa_reference_read_optimization_summary): Read in all_module_statics;
1864         use it when possible.
1865
1866 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1867
1868         PR target/44218
1869         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
1870         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
1871
1872         * doc/extend.texi (powerpc builtins): Document vec_recip,
1873         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
1874
1875         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
1876         (rs6000_emit_swrsqrt): Ditto.
1877         (rs6000_emit_swdivsf): Delete.
1878         (rs6000_emit_swdivdf): Ditto.
1879         (rs6000_emit_swrsqrtsf): Ditto.
1880
1881         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
1882         describe the reciprocal estimate support for each type.
1883         (recip_options): Map -mrecip=<opt> into option bits.
1884         (gen_2arg_fn_t): New typedef for binary rtx gen function.
1885         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
1886         reciprocal estimate instructions.
1887         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
1888         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
1889         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
1890         cost information if -mdebug=cost or -mdebug=reg.
1891         (rs6000_override_options): Set -mrecip-precision for power6, and
1892         power7 machines.  If -mvsx or -mdfp, enable various options that
1893         came in previous instruction set ISAs, unless the option was
1894         explicitly disabled by the command line option.  Parse
1895         -mrecip=<opt> options.
1896         (rs6000_builtin_vectorized_function): Add support for vectorizing
1897         the reciprocal estimate builtins and expansions.
1898         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
1899         (bdesc_2arg): Add reciprocal estimate builtins.
1900         (bdesc_1arg): Add reciprocal square root estimate builtins.
1901         (rs6000_expand_builtin): Rewrite to use a switch statement,
1902         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
1903         (rs6000_init_builtins): Create declarations for reciprocal
1904         estimate builtins.
1905         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
1906         sized, prefer traditional floating point registers, if integer
1907         vector types, prefer altivec registers.  Don't actually look at
1908         the memory address any more.
1909         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
1910         builtins.
1911         (rs6000_load_constant_and_splat): New helper function to load up
1912         the constant for reciprocal estimate instructions.
1913         (rs6000_emit_madd): New helper function for generating
1914         multiply/add type instructions, based on the current switches.
1915         (rs6000_emit_msub): Ditto.
1916         (rs6000_emit_mnsub): Ditto.
1917         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
1918         replace a divide with a reciprocal estimate and fixup, adding
1919         support for machines with high precision and vectors.
1920         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
1921         low precision machines.
1922         (rs6000_emit_swdiv): New common function to be called to replace a
1923         division with reciprocal estimate and fixup.
1924         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
1925         for double and vector types.  Add support for high precision machines.
1926
1927         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
1928         the reciprocal estimate instructions can be generated.
1929         (TARGET_FRE): Ditto.
1930         (TARGET_FRSQRTES): Ditto.
1931         (TARGET_FRSQRTE): Ditto.
1932         (RS6000_RECIP_*): New macros for reciprocal estimate support.
1933
1934         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
1935         square root estimate on vectors.
1936         (re<mode>2): New insn for reciprocal division estimate on vectors.
1937
1938         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
1939         New builtin.
1940         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
1941         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
1942         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
1943         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
1944         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
1945         (RS6000_BUILTIN_RSQRT): Ditto.
1946         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
1947         floating point builtin.
1948
1949         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1950         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
1951         __RECIP_PRECISION__ based on the command line switches.
1952         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
1953
1954         * config/rs6000/rs6000.opt (-mrecip): Document add support for
1955         replacing division instructions with reciprocal estimate and fixup.
1956         (-mrecip=<opt>): New option.
1957         (-mrecip-precision): Ditto.
1958
1959         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
1960         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
1961         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
1962         precision scalar.
1963
1964         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
1965         (UNSPEC_VREFP): Ditto.
1966         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
1967         conterparts with regard to support of -mno-fused-madd and -ffast-math.
1968         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
1969         reciprocal estimate instructions to be generated.
1970         (altivec_vrefp): Ditto.
1971
1972         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
1973         estimate support.
1974         (rreg): New mode attribute for reciprocal estimate support.
1975         (recip<mode>3): New insn for division using reciprocal estimate
1976         and fixup builtins.
1977         (divide define_split): New define_split to convert floating point
1978         division to use reciprocal estimate if the user used the
1979         appropriate options and the split is run when we can add new
1980         pseudo registers for the fixup.
1981         (rsqrt<mode>2): New insn for reciprocal square root support.
1982         (recipsf3): Move into recip<mode>3.
1983         (recipdf3): Ditto.
1984         (fres): Use TARGET_FRES.
1985         (rsqrtsf2): Move into rsqrt<mode>2.
1986         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
1987         (copysignsf3): Add support for VSX.
1988         (fred): Use TARGET_FRE.
1989         (fred_fpr): Ditto.
1990         (rsqrtdf_internal1): New function for frsqrte instruciton.
1991
1992         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
1993         (vec_rsqrt): Ditto.
1994
1995 2010-06-03  Richard Guenther  <rguenther@suse.de>
1996
1997         PR middle-end/44291
1998         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
1999         (set_user_assembler_libfunc): Likewise.
2000
2001 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
2002
2003         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
2004         defaults.h.
2005         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
2006         to defaults.h
2007         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
2008         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
2009         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
2010         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
2011         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
2012         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
2013         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
2014         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
2015         * defaults.h: Updated for above mentioned changes.
2016
2017 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
2018
2019         * c-common.c: Remove header include of tm_p.h.
2020         * Makefile.in (c-common.o): Remove TM_P_H dependency.
2021
2022 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
2023
2024         * tree.h (struct tree_decl_map): New type.
2025         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
2026         (tree_decl_map_hash): New prototype.
2027         (debug_expr_for_decl, value_expr_for_decl): Change into
2028         tree_decl_map hashtab from tree_map.
2029         (init_ttree): Adjust initialization.
2030         (tree_decl_map_hash): New function.
2031         (decl_debug_expr_lookup, decl_debug_expr_insert,
2032         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
2033
2034 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2035
2036         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
2037         linker emulations.
2038         * configure: Regenerate.
2039         * config.in: Regenerate.
2040
2041         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
2042         (X86_64_EMULATION): Define.
2043         (TARGET_LD_EMULATION): Use them.
2044
2045         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
2046         (SPARC64_EMULATION): Define.
2047         (LINK_ARCH_SPEC): Use them.
2048
2049 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
2050
2051         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
2052         smallest_mode_for_size for computing the precision types of new
2053         graphite IVs.  Do not call lang_hooks.types.type_for_size.
2054
2055 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
2056
2057         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
2058         information.
2059         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
2060
2061 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
2062
2063         PR middle-end/44363
2064         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
2065         return false instead.
2066
2067 2010-06-02  Jan Hubicka  <jh@suse.cz>
2068
2069         PR middle-end/44295
2070         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
2071         create new cgraph node to check callee.
2072
2073 2010-06-02  Richard Guenther  <rguenther@suse.de>
2074
2075         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
2076
2077 2010-06-02  Richard Guenther  <rguenther@suse.de>
2078
2079         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
2080         (lto_wrapper_cleanup): ... this.  Do not exit.
2081         (fatal): Adjust.  Exit here.
2082         (fatal_perror): Likewise.
2083         (fatal_signal): New function.
2084         (main): Set up signal handlers to cleanup temporary files.
2085         * Makefile.in (lto-wrapper.o): Adjust dependencies.
2086
2087 2010-06-02  Richard Guenther  <rguenther@suse.de>
2088
2089         PR tree-optimization/44377
2090         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
2091
2092 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2093
2094         * config/s390/2097.md (z10_fhex): Remove insn reservation.
2095         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
2096         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
2097         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
2098         instruction.
2099         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
2100
2101 2010-06-02  Jan Hubicka  <jh@suse.cz>
2102
2103         * bitmap.c (bitmap_descriptor): Add search_iter.
2104         (bitmap_find_bit): Increment it.
2105         (print_statistics): Print it.
2106
2107 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
2108
2109         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
2110         instead of gimple_build_call_vec.  Delete unnecessary local variable.
2111
2112 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
2113
2114         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
2115         change from yesterday.
2116
2117 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
2118
2119         * c-ada-spec.c: Clean up redundant includes.
2120
2121 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
2122
2123         * gimplify.c: Do not include except.h and optabs.h.
2124         (gimplify_body): Do not initialize RTL profiling.
2125         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
2126         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
2127         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
2128         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
2129         langhooks.h.
2130
2131         * tree-pretty-print.h: Include pretty-print.h.
2132         * gimple-pretty-print.h: Include pretty-print.h.
2133
2134         * tree-pretty-print.c: Do not include diagnostic.h.
2135         * tree-vrp.c: Likewise.
2136         * tree-tailcall.c: Likewise
2137         * tree-scalar-evolution.c: Likewise
2138         * tree-ssa-dse.c: Likewise
2139         * tree-chrec.c: Likewise
2140         * tree-ssa-sccvn.c: Likewise
2141         * tree-ssa-copyrename.c: Likewise
2142         * tree-nomudflap.c: Likewise
2143         * tree-call-cdce.c: Likewise
2144         * tree-stdarg.c: Likewise
2145         * tree-ssa-math-opts.c: Likewise
2146         * tree-nrv.c: Likewise
2147         * tree-ssa-sink.c: Likewise
2148         * tree-browser.c: Likewise
2149         * tree-ssa-loop-ivcanon.c: Likewise
2150         * tree-ssa-loop.c: Likewise
2151         * tree-parloops.c: Likewise
2152         * tree-ssa-address.c: Likewise
2153         * tree-ssa-ifcombine.c: Likewise
2154         * tree-if-conv.c: Likewise
2155         * tree-data-ref.c: Likewise
2156         * tree-affine.c: Likewise
2157         * tree-ssa-phiopt.c: Likewise
2158         * tree-ssa-coalesce.c: Likewise
2159         * tree-ssa-pre.c: Likewise
2160         * tree-ssa-live.c: Likewise
2161         * tree-predcom.c: Likewise
2162         * tree-ssa-forwprop.c: Likewise
2163         * tree-ssa-dce.c: Likewise
2164         * tree-ssa-ter.c: Likewise
2165         * tree-ssa-loop-prefetch.c: Likewise
2166         * tree-optimize.c: Likewise
2167         * tree-ssa-phiprop.c: Likewise
2168         * tree-object-size.c: Likewise
2169         * tree-outof-ssa.c: Likewise
2170         * tree-ssa-structalias.c: Likewise
2171         * tree-switch-conversion.c: Likewise
2172         * tree-ssa-reassoc.c: Likewise
2173         * tree-ssa-operands.c: Likewise
2174         * tree-vectorizer.c: Likewise
2175         * tree-vect-data-refs.c: Likewise
2176         * tree-vect-generic.c: Likewise
2177         * tree-vect-stmts.c: Likewise
2178         * tree-vect-patterns.c: Likewise
2179         * tree-vect-slp.c: Likewise
2180         * tree-vect-loop.c: Likewise
2181         * tree-ssa-loop-ivopts.c: Likewise
2182         * tree-ssa-loop-im.c: Likewise
2183         * tree-ssa-loop-niter.c: Likewise
2184         * tree-ssa-loop-unswitch.c: Likewise
2185         * tree-ssa-loop-manip.c: Likewise
2186         * tree-ssa-loop-ch.c: Likewise
2187         * tree-dump.c: Likewise
2188         * tree-complex.c: Likewise
2189
2190         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
2191         * tree-ssa-uninit.c: Likewise
2192         * tree-ssa-threadupdate.c: Likewise
2193         * tree-ssa-uncprop.c: Likewise
2194         * tree-ssa-ccp.c: Likewise
2195         * tree-ssa-dom.c: Likewise
2196         * tree-ssa-propagate.c: Likewise
2197         * tree-ssa-alias.c: Likewise
2198         * tree-dfa.c: Likewise
2199         * tree-cfgcleanup.c: Likewise
2200         * tree-sra.c: Likewise
2201         * tree-ssa-copy.c: Likewise
2202         * tree-ssa.c: Likewise
2203         * tree-profile.c: Likewise
2204         * tree-cfg.c: Likewise
2205         * tree-ssa-threadedge.c: Likewise
2206         * tree-vect-loop-manip.c: Likewise
2207
2208         * tree-inline.c: Do not include diagnostic.h and expr.h.
2209         Include rtl.h.
2210         (copy_decl_for_dup_finish): Do not use NULL_RTX.
2211
2212         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
2213         * tree-loop-distribution.c: Likewise.
2214
2215 2010-06-01  Jan Hubicka  <jh@suse.cz>
2216
2217         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
2218
2219 2010-06-01  Jan Hubicka  <jh@suse.cz>
2220
2221         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
2222         remove return value.
2223         (split_bbs_on_noreturn_calls) .... here.
2224         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
2225         * tree-flow.h (fixup_noreturn_call): New.
2226
2227 2010-06-01  Jan Hubicka  <jh@suse.cz>
2228
2229         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
2230
2231 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
2232
2233         * tree.h (build_nt_call_list): Delete.
2234         * tree.c (build_nt_call_list): Delete.
2235
2236 2010-06-01  Jan Hubicka  <jh@suse.cz>
2237
2238         * fwprop.c: Make emit-rtl.h include last.
2239         * rtlanal.c: Include emit-rtl.h.
2240         * genautomata.c: Output emit-rtl include into insn-automata.c
2241         * df-scan.c: Include emit-rtl.h.
2242         * haifa-sched.c: Indlude emit-rtl.h.
2243         * mode-switching.c: Indlude emit-rtl.h.
2244         * graph.c: Indlude emit-rtl.h.
2245         * sel-sched.c: Include emit-rtl.h.
2246         * sel-sched-ir.c: Include emit-rtl.h.
2247         * ira-build.c: Include emit-rtl.h.
2248         * emit-rtl.c: (first_insn, last_insn): Remove defines.
2249         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
2250         Move to emit-rtl.h.
2251         (set_new_first_and_last_insn, get_last_insn_anywhere,
2252         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
2253         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
2254         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
2255         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
2256         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
2257         Use accessor functions.
2258         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
2259          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
2260         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
2261         mem_expr_equal_p): Move here from rtl.h.
2262         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
2263         Move here from emit-rtl.c; make inline.
2264         * cfglayout.h: Include emit-rtl.h.
2265         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
2266          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
2267         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
2268         mem_expr_equal_p, get_insns, set_first-insn,
2269         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
2270         * reg-stack.c: Include emit-rtl.h.
2271         * dce.c: Likewise.
2272
2273 2010-06-01  Jan Hubicka  <jh@suse.cz>
2274
2275         * cgraph.h (tree_function_versioning): Update prototype.
2276         (cgraph_function_versioning): Update prototype.
2277         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
2278         bitmap.
2279         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
2280         (cgraph_materialize_clone, save_inline_function_body): Update use of
2281         tree_function_versioning.
2282         * tree-inline.c (copy_bb): Look for previous copied block to link
2283         after; fix debug output.
2284         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
2285         (copy_body): Likewise.
2286         (expand_call_inline): Update use of copy_body.
2287         (tree_function_versioning): Update use of copy body; accept
2288         blocks_to_copy and new_entry.
2289
2290 2010-06-01  Jan Hubicka  <jh@suse.cz>
2291
2292         * gegenrtl.c: Remove unnecesary prototypes.
2293         (gendecl): Remove.
2294         (gendef): Produce static inline.
2295         (gencode): Remove.
2296         (main): Do not decode parameters; generate header only.
2297         * Makefile.in (genrtl.c): Remove.
2298
2299 2010-06-01  Jan Hubicka  <jh@suse.cz>
2300
2301         * tree-switch-conversion.c (build_one_array): Make it readonly.
2302
2303 2010-06-01  Richard Guenther  <rguenther@suse.de>
2304
2305         * optabs.c (init_optabs): Guard all accesses to reinit.
2306         * ipa-pure-const.c (propagate): Fix another typo.
2307         * opts.c (common_handle_option): Split assignment to bool.
2308         * c-opts.c (c_common_handle_option): Likewise.
2309
2310 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
2311             Matthew Gingell  <gingell@adacore.com>
2312
2313         * doc/invoke.texi: Mention -fdump-ada-spec.
2314         * tree-dump.c (dump_files): Add ada-spec.
2315         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
2316         * tree-pass.h (tree_dump_index): Add TDI_ada.
2317         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
2318         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
2319         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
2320         * c-decl.c: Include c-ada-spec.h.
2321         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
2322         functions.
2323         (c_write_global_declarations): Add handling of -fdump-ada-spec.
2324         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
2325         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
2326         * c-ada-spec.h, c-ada-spec.c: New files.
2327
2328 2010-06-01  Richard Guenther  <rguenther@suse.de>
2329
2330         PR lto/43853
2331         * ipa-pure-const.c (get_function_state): Hand back varying state
2332         if we do not have one.
2333         (has_function_state): New function.
2334         (duplicate_node_data): Adjust.
2335         (remove_node_data): Likewise.
2336         (pure_const_write_summary): Likewise.
2337         (propagate): Likewise.  Fix typo.
2338
2339 2010-06-01  Jan Hubicka  <jh@suse.cz>
2340
2341         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
2342         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
2343         (execute_all_ipa_transforms): Do not play with the states.
2344
2345 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
2346
2347         * config/arm/t-linux-androideabi: New.
2348         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
2349
2350 2010-06-01  Jan Hubicka  <jh@suse.cz>
2351
2352         * tree-inline.c (estimate_num_insns): For stdarg functions look
2353         into call statement to count cost of argument passing.
2354
2355 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
2356
2357         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
2358         argument for fprintf.
2359         (ix86_output_addr_diff_elt): Likewise.
2360         (x86_function_profiler): Likewise.
2361         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
2362         (LPREFIX): Likewise.
2363         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2364
2365 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
2366
2367         PR target/44338
2368         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
2369         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
2370         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
2371         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
2372         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
2373         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
2374         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
2375         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
2376         TARGET_FUSED_MADD.
2377
2378 2010-05-31  Jan Hubicka  <jh@suse.cz>
2379
2380         * tree.h (tree_range_check_failed): Declare noreturn.
2381
2382 2010-05-31  Jan Hubicka  <jh@suse.cz>
2383
2384         * gimple.c (gimple_call_builtin_p): New function.
2385         * gimple.h (gimple_call_builtin_p): Declare.
2386         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
2387         to exit.
2388         (execute_warn_function_return): BUILT_IN_RETURN is return.
2389         (split_critical_edges): Return edges are not critical.
2390         (is_ctrl_altering_stmt): Builtin_in_return is altering.
2391         (gimple_verify_flow_info): Handle built_in_return.
2392         (execute_warn_function_return): Handle built_in_return.
2393         * ipa-pure-const.c (check_call): Ignore builtin_return.
2394
2395 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
2396
2397         PR middle-end/44337
2398         * expr.c (expand_assignment): Don't store anything for out-of-bounds
2399         array accesses with non-MEM.
2400
2401         PR tree-optimization/44182
2402         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
2403         newly needs to end a bb is followed by debug stmts, instead return
2404         true from the function at the end.
2405         (maybe_move_debug_stmts_to_successors): New function.
2406         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
2407
2408 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
2409
2410         PR target/44161
2411         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
2412
2413 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
2414
2415         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
2416         for nested functions in non-optimized compilation.
2417
2418 2010-05-31  Richard Guenther  <rguenther@suse.de>
2419
2420         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
2421
2422 2010-05-30  Jan Hubicka  <jh@suse.cz>
2423
2424         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
2425
2426 2010-05-30  Richard Guenther  <rguenther@suse.de>
2427
2428         PR lto/42975
2429         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
2430         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
2431         no longer needed.
2432
2433 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
2434
2435         * config/darwin.c (output_objc_section_asm_op): Add comment.
2436         (name_needs_quotes): Add '_' to list of valid comment chars.
2437         (machopic_output_function_base_name): Remove unneeded quotes.
2438         (darwin_encode_section_info): Adjust asm whitespace.
2439         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
2440         (ASM_OUTPUT_LOCAL): Ditto.
2441         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
2442         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
2443         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
2444
2445 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2446
2447         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
2448         RS6000_OUTPUT_BASENAME unconditionally.
2449         (rs6000_output_function_epilogue): Likewise.
2450
2451 2010-05-30  Jan Hubicka  <jh@suse.cz>
2452
2453         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
2454         nodes.
2455
2456 2010-05-30  Richard Guenther  <rguenther@suse.de>
2457
2458         * tree-cfg.c (verify_gimple_assign_single): Implement
2459         verification for COND_EXPR rhs.
2460
2461 2010-05-30  Jan Hubicka  <jh@suse.cz>
2462
2463         * cgraph.h (cgraph_dump_file): Declare.
2464         * cgraphunit.c (cgraph_dump_file): Export.
2465         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
2466
2467 2010-05-30  Jan Hubicka  <jh@suse.cz>
2468
2469         * dwarf2out.c (reference_to_unused,
2470         premark_types_used_by_global_vars_helper): Avoid creation of new
2471         varpool nodes.
2472
2473 2010-05-30  Jan Hubicka  <jh@suse.cz>
2474
2475         * cgraph.h (cgraph_node_cannot_return,
2476         cgraph_edge_cannot_lead_to_return): New functions.
2477         * cgraph.c (cgraph_node_cannot_return,
2478         cgraph_edge_cannot_lead_to_return): Use them.
2479         * ipa-pure-const.c (pure_const_names): New static var.
2480         (check_call): Handle calls not leading to return.
2481         (pure_const_read_summary): Dump info read.
2482         (propagate): Dump info about propagation process; ignore side effects
2483         of functions not leading to exit; fix handling of pure functions.
2484
2485 2010-05-30  Jan Hubicka  <jh@suse.cz>
2486
2487         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
2488         for tail call epilogues.
2489
2490 2010-05-30  Jan Hubicka  <jh@suse.cz>
2491
2492         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
2493         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
2494         dump files.
2495
2496 2010-05-29  Jan Hubicka  <jh@suse.cz>
2497
2498         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
2499         node; remove references in node we no longer keep in cgrpah but need
2500         body of.
2501
2502 2010-05-29  Jan Hubicka  <jh@suse.cz>
2503
2504         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
2505
2506 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2507
2508         PR target/44165
2509         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
2510
2511 2010-05-29  Jan Hubicka  <jh@suse.cz>
2512
2513         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
2514         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
2515         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
2516         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
2517         debug_names_replaced_by, debug_update_ssa): Likewise.
2518         * sbitmap.c (debug_sbitmap): Likewise.
2519         * genrecog.c (debug_decision, debug_decision_list): Likewise.
2520         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
2521         debug_tree_chain): Likewise.
2522         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
2523         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
2524         * optabs.c  (debug_optab_libfuncs): Likewise.
2525         (verify_loop_closed_ssa): Likewise.
2526         * value-prof.c (verify_histograms): Likewise.
2527         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
2528         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
2529         * cfghooks.c (verify_flow_info): Likewise.
2530         * fold-const.c (debug_fold_checksum): Likewise.
2531         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
2532         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
2533         Likewise.
2534         * omega.c (debug_omega_problem): Likewise.
2535         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
2536         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
2537         * dominance.c (verify_dominators, debug_dominance_info,
2538         debug_dominance_tree): Likewise.
2539         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
2540         * df_regno_debug, df_ref_debug,
2541         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
2542         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
2543         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
2544         * sel-sched.c (debug_state): Likewise.
2545         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
2546         Likewise.
2547         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
2548         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
2549         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
2550         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
2551         Likewise.
2552         * c-pretty-print.c (debug_c_tree): Likewise.
2553         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
2554         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
2555         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
2556         * ebitmap.c (debug_ebitmap): Likewise.
2557         * function.c (debug_find_var_in_block_tree): Likewise.
2558         * print-rtl.c (debug_rtx): Likewise.
2559         (debug_rtx_count): Likewise.
2560         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
2561         * stor-layout.c (debug_rli): Likewise.
2562         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
2563         * tree-data-ref.c (debug_data_references,
2564         debug_data_dependence_relations, debug_data_reference,
2565         debug_data_dependence_relation, debug_rdg_vertex,
2566         debug_rdg_component, debug_rdg): Likewise.
2567         * tree-affine.c (debug_aff): Likewise.
2568         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
2569         Likewise.
2570         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
2571         * emit-rtl.c (verify_rtl_sharing): Likewise.
2572         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
2573         debug_value_expressions): Likewise.
2574         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
2575         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
2576         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
2577         * cfglayout.c (verify_insn_chain): Likewise.
2578         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
2579         debug_clast_stmt, debug_generated_program): Likewise.
2580         * ggc-page.c (debug_print_page_list): Likewise.
2581         * tree-ssa-ter.c (debug_ter): Likewise.
2582         * graphite-dependences.c (debug_pddr): Likewise.
2583         * sched-deps.c (debug_ds): Likewise.
2584         * tree-ssa.c (verify_ssa): Likewise.
2585         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
2586         debug_scattering_functions, debug_iteration_domains, debug_pdr,
2587         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
2588         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
2589         * tree-inline.c (debug_find_tree): Likewise.
2590         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
2591         debug_ppl_powerset_matrix): Likewise.
2592         * var-tracking.c (debug_dv): Likewise.
2593         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
2594         * cfgloop.c (verify_loop_structure): Likewise.
2595         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
2596         * c-common.c (verify_sequence_points): Likewise.
2597         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
2598         debug_candidates, debug_rgn_dependencies): Likewise.
2599         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
2600         * debug_constraint_graph, debug_solution_for_var,
2601         debug_sa_points_to_info): Likewise.
2602         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
2603         Likewie.
2604         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
2605         debug_loops, debug_loop, debug_loop_num): Likewise.
2606         * passes.c (debug_pass): Likewise.
2607         (dump_properties): Likewise; add cfglayout property.
2608         (debug_properties): Likewise.
2609         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
2610         * varpool.c (debug_varpool): Likewise.
2611         * regcprop.c (debug_value_data): Likewise.
2612         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
2613         debug_immediate_uses_for): Likewise.
2614
2615 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2616
2617         PR bootstrap/44315
2618         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
2619         Filter out insn-flags.h.
2620
2621 2010-05-29  Jan Hubicka  <jh@suse.cz>
2622
2623         * cgraph.h (struct varpool_node_set_def,
2624         struct cgraph_node_set_def): Remove unused AUX pointer.
2625         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
2626         VEC_empty macro.
2627
2628 2010-05-29  Jan Hubicka  <jh@suse.cz>
2629
2630         PR middle-end/44324
2631         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
2632
2633 2010-05-29  Richard Guenther  <rguenther@suse.de>
2634
2635         * lto-streamer.c (cached_bp): New global variable.
2636         (bitpack_create): Return the cached bitpack, if available.
2637         (bitpack_delete): Clear and cache the bitpack, if appropriate.
2638         (bp_pack_value): Remove redundant asserts.
2639
2640 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
2641
2642         PR middle-end/44306
2643         * tree-if-conv.c (is_true_predicate): New.
2644         (is_predicated): Use is_true_predicate.
2645         (add_to_predicate_list): Same.  Do not use unshare_expr.
2646         (add_to_dst_predicate_list): Same.
2647
2648 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
2649
2650         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
2651         field on edges.
2652         (predicate_bbs): Same.
2653         (clean_predicate_lists): Same.
2654         (find_phi_replacement_condition): Do not AND the predicate from
2655         edge->aux.
2656
2657 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2658
2659         PR bootstrap/44315
2660         * Makefile.in (build/gencondmd.o): Add a missing `\'.
2661
2662 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2663
2664         PR target/44261
2665         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
2666         (negdf2): Adjust expander pattern and use negdf2_slow.
2667         (negsf2): Likewise.
2668
2669 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
2670
2671         * basic-block.h (struct control_flow_graph): Move last_label_uid field
2672         up.
2673         * df.h (struct df_base_ref): Move regno field up.
2674         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
2675         * expr.h (struct separate_ops): Move location field up.
2676         * optabs.h (struct optab_d): Move libcall_basename field down.
2677         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
2678         * config/i386/i386.h (struct machine_function): Convert call_abi field
2679         into a bitfield.  Move cfa field to the end of the structure.
2680
2681 2010-05-29  Jan Hubicka  <jh@suse.cz>
2682
2683         * varpool.c (varpool_get_node): Fix lookup.
2684
2685 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2686
2687         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
2688         RTL specific prototypes with #ifdef RTX_CODE.
2689         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
2690         * config/spu/t-spu-elf: Fix dependencies.
2691
2692         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
2693
2694 2010-05-29  Mike Stump  <mikestump@comcast.net>
2695
2696         PR bootstrap/44315
2697         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
2698         TM_H when building to avoid dependency loops.
2699
2700 2010-05-29  Jan Hubicka  <jh@suse.cz>
2701
2702         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
2703         refs and body; not the whole node for masters of materialized
2704         clones.
2705
2706 2010-05-29  Mike Stump  <mikestump@comcast.net>
2707
2708         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
2709
2710 2010-05-29  Jan Hubicka  <jh@suse.cz>
2711
2712         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
2713         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
2714         use of clone_function_name.
2715         * cgraph.h (cgraph_create_virtual_clone,
2716         cgraph_function_versioning): update prototypes.
2717         (clone_function_name): Declare.
2718         * ipa-cp.c (ipcp_insert_stage): Update call of
2719         cgraph_create_virtual_clone.
2720         * omp-low.c (create_omp_child_function_name): Use
2721         cgraph_create_virtual_clone.
2722         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
2723         (cgraph_function_versioning): Take SUFFIX argument; produce new name
2724         and make decl local.
2725
2726 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2727
2728         * vec.h: Include statistics.h
2729         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
2730         with VEC_H.
2731
2732 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2733
2734         * c-lex.c: Do not include c-tree.h.
2735         * c-pretty-print.c: Likewise.
2736         * c-opts.c: Likewise.
2737         * c-gimplify.c: Likewise.
2738         * c-common.c: Likewise.
2739         * c-dump.c: Likewise.  Include c-common.h.
2740
2741 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2742
2743         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
2744         before including diagnostic-core.h.
2745         (c_cpp_error): New prototype moved from c-tree.h.
2746         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
2747         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
2748         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
2749         (c_cpp_error): Prototype moved to c-common.h.
2750         * Makefile.in: Update dependency for C_COMMON_H.
2751
2752 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2753
2754         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
2755         * c-common.c (c_register_addr_space): Remove here.
2756         * c-decl.c (c_register_addr_space): Re-add here.
2757
2758 2010-05-28  Mike Stump  <mikestump@comcast.net>
2759
2760         * config/darwin-c.c: Remove c-tree.h include.
2761
2762 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2763
2764         * gcc.c: Include diagnostic.h.
2765         (error_count): Remove.  All users changed to use errorcount.
2766         (programname): Remove.  All users changed to use progname.
2767         (fancy_abort, internal_error, fatal_error, error, warning, inform,
2768         fnotice): Remove.
2769         (execute): Don't include "Internal error" and bug reporting
2770         information in argument of internal_error call.
2771         (process_command): Don't increment error_count after calling
2772         perror_with_name.
2773         (input_filename): Rename to gcc_input_filename.  All users
2774         changed.
2775         (main): Call diagnostic_initialize.  Register delete_temp_files
2776         with atexit.  Use seen_error to test for errors.
2777         * gcc.h: Include diagnostic-core.h.
2778         (fatal_error, error, warning): Remove.
2779         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
2780         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
2781         (gcc.o): Update dependencies.
2782
2783 2010-05-28  Jeff Law  <law@redhat.com>
2784
2785         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
2786         functions.
2787         * ira.h (ira_bad_reload_regno): Declare
2788         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
2789
2790         * ira-color.c (update_curr_costs): Free updated hard reg costs.
2791         (ira_reassign_conflict_allocnos): Remove bogus asserts.
2792         (allocno_reload_assign): Likewise.
2793
2794 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
2795
2796         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
2797         build1_stat.
2798
2799 2010-05-28  Richard Guenther  <rguenther@suse.de>
2800
2801         PR lto/44312
2802         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
2803         Stream fixed-point constants mode.
2804         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
2805         and TYPE_PRECISION.
2806         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
2807         Stream fixed-point constants mode.
2808         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
2809         and TYPE_PRECISION.
2810
2811 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
2812
2813         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
2814         only place it was called from.
2815         (number_of_latch_executions): Do not return chrec_dont_know when the
2816         may_be_zero is a runtime condition: instead, return a COND_EXPR
2817         including the may_be_zero condition.
2818         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
2819         of nb_iterations.
2820         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
2821         COND_EXPRs.
2822
2823 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
2824
2825         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
2826         generate COND_EXPRs for degenerate_phi_result.
2827
2828 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
2829
2830         PR middle-end/44293
2831         * tree-if-conv.c (if_convertible_loop_p): Check the
2832         if-convertibility of phi nodes in non predicated BBs.
2833
2834 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2835
2836         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
2837
2838 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2839
2840         PR driver/15303
2841         * gcc.c (inform, warning, inform): New functions.
2842         (fatal_ice): Rename to internal_error; change cmsgid parameter to
2843         gmsgid.  All callers changed.
2844         (notice): Rename to fnotice; add parameter fp.  All callers
2845         changed.
2846         (fatal_error): Rename to fatal_signal.  All users changed.
2847         (fatal): Rename to fatal_error; change cmsgid parameter to
2848         gmsgid.  All callers changed.
2849         (process_command): Use warning instead of error for warnings.
2850         (end_going_arg): Don't use _() around argument of error.
2851         (do_spec_1): Use inform for message from %n specs.  Use warning
2852         instead of error for warnings.
2853         (main): Use inform for comparison messages.  Use warning for
2854         message about unused linker input.
2855         (error): Increment error_count.  Print "error: ".
2856         * gcc.h (fatal): Change to fatal_error.
2857         (warning): Declare.
2858         * config/darwin-driver.c (darwin_default_min_version): Use warning
2859         instead of fprintf for warnings.
2860         * cppspec.c (lang_specific_driver): Use fatal_error instead of
2861         fatal.
2862
2863 2010-05-28  Julian Brown  <julian@codesourcery.com>
2864
2865         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
2866         (*thumb2_addsi3_compare0_scratch): New.
2867         * config/arm/constraints.md (Pv): New.
2868         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
2869         for ARM mode only.
2870         (*addsi3_compare0_scratch): Likewise.
2871
2872 2010-05-28  Jan Hubicka  <jh@suse.cz>
2873
2874         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
2875         check.
2876         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
2877         only on local statics.
2878
2879 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
2880
2881         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
2882
2883 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
2884
2885         PR bootstrap/44314
2886         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
2887         (OPTION_GLIBC): Define.
2888
2889 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
2890
2891         PR debug/41048
2892         * dwarf2out.c (double_int_type_size_in_bits): New function.
2893         (round_up_to_align): Change first argument and return value to
2894         double_int.
2895         (field_byte_offset): Work internally on double_ints.
2896
2897         PR target/43636
2898         * builtins.c (expand_movstr): Use a temporary pseudo instead
2899         of target even when target is not NULL and not const0_rtx, but
2900         fails movstr predicate.
2901         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
2902
2903 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2904
2905         * final.c (rest_of_clean_state): Use %m in errors instead of
2906         strerror (errno).
2907         * gengtype.c (read_input_list, close_output_files): Use xstrerror
2908         instead of strerror.
2909         * toplev.c (process_options): Use %m in errors instead of strerror
2910         (errno).
2911         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
2912         (errno).
2913
2914 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
2915
2916         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
2917         (ix86_canonical_va_list_type): Make static.  Add declaration.
2918         (ix86_enum_va_list): Make static.  Reindent.
2919         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
2920         (ix86_canonical_va_list_type): Ditto.
2921         (ix86_enum_va_list): Ditto.
2922
2923 2010-05-28  Richard Guenther  <rguenther@suse.de>
2924
2925         * lto-wrapper.c (run_gcc): With -save-temps generate a
2926         user-visible ltrans filename.  Fixup ltrans unit numbering.
2927
2928 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
2929
2930         * c-common.c (c_common_nodes_and_builtins): Replace use
2931         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
2932         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
2933         to ix86_enum_va_list.
2934         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
2935         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
2936         (TARGET_ENUM_VA_LIST_P): Add hook description.
2937         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
2938         * target.h (gcc_target): Add enum_va_list hook.
2939
2940         PR bootstrap/44299
2941         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
2942         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
2943         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
2944
2945 2010-05-28  Alan Modra  <amodra@gmail.com>
2946
2947         PR target/44266
2948         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2949         emit_library_call machinery to set up __tls_get_addr calls.
2950
2951 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2952
2953         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
2954
2955 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
2956
2957         Revert fix for PR c++/44188
2958         * c-common.c (is_typedef_decl): Revert the moving of  this
2959         definition ...
2960         * tree.c (is_typedef_decl): ... here.
2961         (typdef_variant_p): Revert the moving of this  definition
2962         here from gcc/cp/tree.c.
2963         * c-common.h (is_typedef_decl): Revert the moving of this
2964         declaration ...
2965         * tree.h (is_typedef_decl): ... here.
2966         (typedef_variant_p): Revert the moving of this  declaration here
2967         from gcc/cp/cp-tree.h
2968         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
2969         (gen_tagged_type_die): Revert the splitting out of ...
2970         (gen_type_die_with_usage): ... this function. Revert the anonymous
2971         tagged type handling.
2972         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
2973         typedefs naming anonymous tagged types.
2974
2975 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
2976
2977         * config/rs6000/rs6000-modes.def (PSImode): Delete.
2978
2979 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
2980
2981         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
2982         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
2983         throughout.
2984         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
2985         "xer" to "ca".
2986         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
2987         XER_REGS to CA_REGS throughout.
2988         * config/rs6000/rs6000.h: Same.
2989         (ADDITIONAL_REGISTER_NAMES): Add "xer".
2990         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
2991         that mode_iterator "P" is the size for arithmetic carries as well.
2992         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
2993
2994 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
2995
2996         PR bootstrap/44255
2997         * combine.c (struct rtx_subst_pair): Define unconditionally.
2998         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
2999         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
3000         Call make_compound_operation on pair->to.
3001         (propagate_for_debug): Don't call make_compound_operation here.
3002         Always use simplify_replace_fn_rtx.
3003
3004 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
3005
3006         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
3007         * config/xtensa/xtensa.c (override_options): Check
3008           TARGET_FORCE_NO_PIC and set flag_pic.
3009         * config/xtensa/xtensa.opt: Document -mforce-no-pic
3010
3011 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
3012
3013         PR bootstrap/44299
3014         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
3015         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
3016
3017 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
3018
3019         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
3020         toplev.h.
3021         * diagnostic.c: Don't include toplev.h.
3022         (progname): Define.  Moved from toplev.c.
3023         (seen_error): New function.
3024         * diagnostic.h: Include diagnostic-core.h.
3025         (diagnostic_t, emit_diagnostic): Don't declare here.
3026         * toplev.c (progname): Move to toplev.c.
3027         (emit_debug_global_declarations, compile_file, finalize,
3028         do_compile, toplev_main): Use seen_error.
3029         * toplev.h: Include diagnostic-core.h.
3030         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
3031         internal_error, warning, warning_at, error, error_n, error_at,
3032         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
3033         verbatim, fnotice, progname): Move to diagnostic-core.h.
3034         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
3035         (expand_builtin_expect): Use seen_error.
3036         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
3037         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
3038         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
3039         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
3040         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
3041         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
3042         errorcount for errors.
3043         * c-opts.c (c_common_finish): Use seen_error.
3044         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
3045         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
3046         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
3047         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
3048         (get_coverage_counts): Use seen_error.
3049         * dwarf2out.c (dwarf2out_finish): Use seen_error.
3050         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
3051         gimplify_body): Use seen_error.
3052         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
3053         * ipa-pure-const.c (gate_pure_const): Use seen_error.
3054         * ipa-reference.c (gate_reference): Use seen_error.
3055         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
3056         * lambda-code.c: Include diagnostic-core.h instead of
3057         diagnostic.h.
3058         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
3059         * lto-compress.c: Include diagnostic-core.h instead of
3060         diagnostic.h.
3061         * lto-section-in.c: Include diagnostic-core.h instead of
3062         diagnostic.h.
3063         * lto-streamer-out.c: Include diagnostic-core.h instead of
3064         diagnostic.h.
3065         * lto-streamer.c: Include diagnostic-core.h instead of
3066         diagnostic.h.
3067         (gate_lto_out): Use seen_error.
3068         * matrix-reorg.c: Include diagnostic-core.h instead of
3069         diagnostic.h.
3070         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
3071         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
3072         (gate_expand_omp, lower_omp_1): Use seen_error.
3073         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
3074         (rest_of_decl_compilation, rest_of_type_compilation,
3075         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
3076         * tree-cfg.c (label_to_block_fn): Use seen_error.
3077         * tree-inline.c (optimize_inline_calls): Use seen_error.
3078         * tree-mudflap.c (mudflap_finish_file): Use
3079         seen_error.
3080         * tree-optimize.c (gate_all_optimizations,
3081         gate_all_early_local_passes, gate_all_early_optimizations): Use
3082         seen_error.
3083         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
3084         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
3085         (varpool_remove_unreferenced_decls,
3086         varpool_assemble_pending_decls): Use seen_error.
3087         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
3088         (TOPLEV_H, DIAGNOSTIC_H): Update.
3089         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
3090         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
3091         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
3092         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
3093         coverage.o, lambda-code.o): Update dependencies.
3094
3095 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
3096
3097         PR c++/44188
3098         * c-common.c (is_typedef_decl): Move this definition ...
3099         * tree.c (is_typedef_decl): ... here.
3100         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
3101         * c-common.h (is_typedef_decl): Move this declaration ...
3102         * tree.h (is_typedef_decl): ... here.
3103         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
3104         * dwarf2out.c (is_naming_typedef_decl): New function.
3105         (gen_tagged_type_die): Split out of ...
3106         (gen_type_die_with_usage): ... this function. When an anonymous
3107         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
3108         is emitted for the typedef.
3109         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
3110         anonymous tagged types.
3111
3112 2010-05-27  Jason Merrill  <jason@redhat.com>
3113
3114         * print-tree.c (debug_vec_tree): New fn.
3115         (print_vec_tree): New fn.
3116         * tree.h: Declare them.
3117         * gdbinit.in (pvt): New command.
3118
3119         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
3120
3121         * gdbinit.in (pdd): New command.
3122
3123 2010-05-27  Jan Hubicka  <jh@suse.cz>
3124
3125         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
3126         (update_caller_keys): Return early if there are no callers;
3127         only update fibheap when decresing the key.
3128         (update_callee_keys): Avoid recursion.
3129         (decide_inlining_of_small_functions): When badness does not match;
3130         re-insert into fibheap.
3131
3132 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
3133
3134         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
3135         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
3136         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
3137         (ALL_HOST_OBJS): Now a union of the above two.
3138         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
3139         all files in ALL_HOST_FRONTEND_OBJS.
3140         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
3141
3142         * c-common.c: Pretend to be a backend file by undefining
3143         IN_GCC_FRONTEND (still need rtl.h here).
3144
3145 2010-05-27  Jan Hubicka  <jh@suse.cz>
3146
3147         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
3148         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
3149
3150 2010-05-27  Jan Hubicka  <jh@suse.cz>
3151
3152         * sched-ebb.c: Rename struct deps to struct deps_desc.
3153         * ddg.c: Likewise.
3154         * sel-sched-ir.c: Likewise.
3155         * sched-deps.c: Likewise.
3156         * sched-int.h: Likewise.
3157         * sched-rgn.c: Likewise.
3158
3159 2010-05-27  Jon Beniston <jon@beniston.com>
3160
3161         PR 43726
3162         * config/lm32/lm32.h: Remove definition of
3163         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
3164
3165 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3166
3167         PR lto/44230
3168         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
3169
3170 2010-05-27  Richard Guenther  <rguenther@suse.de>
3171
3172         PR tree-optimization/44284
3173         * tree-vect-stmts.c (vectorizable_assignment): Handle
3174         sign-changing conversions as simple copy.
3175
3176 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3177
3178         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
3179         Bionic C library.
3180         (__gthread_active_p): Check for pthread_create if compiling against
3181         Bionic C library.
3182
3183 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3184
3185         Support compilation for Android platform.  Reimplement -mandroid.
3186
3187         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
3188         (*android*): Set ANDROID_DEFAULT.
3189         (arm*-*-linux*): Include linux-android.h.
3190         (arm*-*-eabi*): Don't include previous -mandroid implementation.
3191         * config/arm/eabi.h: Remove, move Android-specific parts ...
3192         * config/linux-android.h: ... here.  New file.
3193         * config/arm/eabi.opt: Rename to ...
3194         * config/linux-android.opt: ... this.
3195         (mandroid): Allow -mno-android option.  Initialize based on
3196         ANDROID_DEFAULT.
3197         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
3198         Move logic to corresponding LINUX_TARGET_* macros.
3199         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
3200         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
3201         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
3202         Android definitions.
3203         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
3204         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
3205         Document.
3206
3207 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3208
3209         Add support for Bionic C library
3210
3211         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
3212         macro.
3213         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
3214         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
3215
3216         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
3217         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
3218         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
3219         to support multiple C libraries.  Handle Bionic.
3220         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
3221         (BIONIC_DYNAMIC_LINKER64): Define.
3222         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
3223         Update.
3224         (TARGET_HAS_SINCOS): Enable for Bionic.
3225
3226         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
3227         the last option specified on command line take effect.
3228         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
3229         (mbionic): New.
3230         (mglibc, muclibc): Update.
3231
3232         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
3233         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
3234         DEFAULT_LIBC.
3235
3236         * doc/invoke.texi (-mglibc, -muclibc): Update.
3237         (-mbionic): Document.
3238
3239 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3240
3241         * c-common.h (c_register_addr_space): Add prototype.
3242         (ADDR_SPACE_KEYWORD): Remove.
3243         * c-common.c (c_register_addr_space): New function.
3244         (c_addr_space_name): Reimplement.
3245         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
3246
3247         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
3248         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
3249
3250         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
3251         Remove TARGET_ADDR_SPACE_KEYWORDS.
3252
3253 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
3254
3255         * input.c: New file.
3256         * input.h (main_input_filename): Move declaration to toplev.h.
3257         * toplev.c (input_location, line_table): Move to input.c
3258         * toplev.h (main_input_filename): Move declaration from input.h.
3259         * tree.c (expand_location): Move to input.c.
3260         * Makefile.in (OBJS-common): Add input.o.
3261         (input.o): Add dependencies.
3262
3263 2010-05-27  Richard Guenther  <rguenther@suse.de>
3264
3265         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
3266         for non-existant files.
3267         (fork_execute): Mark args_name file as deleted.
3268
3269 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
3270
3271         PR bootstrp/44287
3272         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
3273         (narrow_signed_type): Likewise.
3274
3275 2010-05-26  Jan Hubicka  <jh@suse.cz>
3276
3277         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
3278         edge only when checking is enabled; check using former_clone_of;
3279         check inline clones too.
3280         (cgraph_materialize_clone): Record former_clone_of pointer.
3281         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
3282         combining redirections; dump args_to_skip bitmap
3283         (cgraph_materialize_all_clones): Do no redirection here.
3284         * ipa-inline.c (inline_transform): Do redirection here.
3285         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
3286         cheking only).
3287
3288 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3289
3290         * config/avr/avr-c.c: Do not include regs.h.
3291         Include cpplib.h for cpp_define and tree.h for c-common.h.
3292         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
3293         * config/avr/t-avr: Fix dependencies for avr-c.o.
3294
3295 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3296
3297         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
3298         string instead of SYMBOL_REF rtx.
3299         * rtl.h (set_stack_check_libfunc): Move prototype from here...
3300         * libfuncs.h: ...to here.  Adjust for explow.c change.
3301
3302 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
3303
3304         * pretty-print.c: Don't include ggc.h.
3305         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
3306         (identifier_to_locale): Use them for allocation.
3307         * pretty-print.h (identifier_to_locale_alloc,
3308         identifier_to_locale_free): Declare.
3309         * toplev.c (alloc_for_identifier_to_locale): New.
3310         (general_init): Set identifier_to_locale_alloc and
3311         identifier_to_locale_free.
3312         * Makefile.in (pretty-print.o): Update dependencies.
3313
3314 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3315
3316         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
3317         pointer types if they have different alignment or mode.
3318
3319 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
3320
3321         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
3322         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
3323         * config/sparc/sparc-protos.h (function_value): Remove declaration.
3324         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
3325         sparc_function_value_regno_p): New functions.
3326         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3327         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3328         (function_value): Rename to...
3329         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
3330         argument to 'outgoing'.
3331         (function_arg_record_value, function_arg_union_value,
3332         function_arg_vector_value): Update comment.
3333
3334 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3335
3336         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
3337         (fde_needed_for_eh_p): New predicate.
3338         (output_call_frame_info): Use it throughout to decide whether FDEs
3339         are needed for EH purpose.
3340         (dwarf2out_begin_prologue): Reorder assignments.
3341
3342 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3343
3344         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
3345         special case loop->header.
3346         (is_predicated): New.
3347         (if_convertible_loop_p): Call it.
3348
3349 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3350
3351         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
3352         iterator in parameter.  Do not generate code during the analysis.
3353         (tree_if_convert_cond_stmt): Removed.
3354         (tree_if_convert_stmt): Removed.
3355         (predicate_bbs): New.
3356         (if_convertible_loop_p): Call predicate_bbs.
3357         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
3358         now contains all the analysis part.
3359
3360 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3361
3362         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
3363         statements in the analysis part.
3364         (tree_if_convert_stmt): Update comment.
3365         (remove_conditions_and_labels): New.
3366         (combine_blocks): Call remove_conditions_and_labels.
3367         (tree_if_conversion): Update comment.
3368
3369 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3370
3371         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
3372         than 2 predecessors or more than 2 successors.
3373
3374 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3375
3376         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
3377         of loops in which the data dependence analysis fails.
3378
3379 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3380
3381         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
3382         CDI_POST_DOMINATORS.
3383         (tree_if_conversion): Same.
3384
3385 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3386
3387         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
3388
3389 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3390
3391         * tree-if-conv.c: Update copyright years.  Fix comments.
3392         Fix indentation.
3393
3394 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
3395
3396         * builtin-types.def (BT_INT128): New primitive type.
3397         (BT_UINT128): Likewise.
3398         * c-common.c (c_common_r): Add __int128 keyword.
3399         (c_common_type_for_size): Handle __int128.
3400         (c_common_type_for_mode): Likewise.
3401         (c_common_signed_or_unsigned_type): Likewise.
3402         (c_common_nodes_and_builtins): Add builtin type
3403         if target supports 128-bit integer scalar.
3404         * c-common.h (enum rid): Add RID_INT128.
3405         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
3406         if target supports 128-bit integer scalar.
3407         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
3408         (finish_declspecs): Likewise.
3409         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
3410         (c_token_starts_declspecs): Likewise.
3411         (c_parser_declspecs): Likewise.
3412         (c_parser_attributes): Likewise.
3413         (c_parser_objc_selector): Likewise.
3414         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
3415         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
3416         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
3417         * tree.c (make_or_reuse_type): Likewise.
3418         (make_unsigned_type): Likewise.
3419         (build_common_tree_nodes_2): Likewise.
3420         * tree.h (enum integer_type_kind): Add itk_int128 and
3421         itk_unsigned_int128.
3422         (int128_integer_type_node): New define.
3423         (int128_unsigned_type_node): New define.
3424         * doc/extend.texi: Add documentation about __int128 type.
3425
3426 2010-05-26  Richard Guenther  <rguenther@suse.de>
3427
3428         * tree-ssa-sccvn.c (copy_nary): Adjust.
3429         (copy_phis): Rename to ...
3430         (copy_phi): ... this.  Adjust.
3431         (copy_references): Rename to ...
3432         (copy_reference): ... this.  Adjust.
3433         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
3434         result into the valid table.
3435
3436 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3437
3438         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
3439         insn-config.h, insn-codes.h, recog.h, and optabs.h.
3440
3441 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3442
3443         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
3444
3445 2010-05-26  Richard Guenther  <rguenther@suse.de>
3446
3447         * opts.c (common_handle_option): Handle OPT_Ofast.
3448
3449 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
3450
3451         * diagnostic.c: Don't include opts.h.
3452         (permissive_error_option): Define.
3453         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
3454         for classify_diagnostic.  Don't use memset for
3455         classify_diagnostic.  Initialize new and recently added fields.
3456         (diagnostic_classify_diagnostic): Use context->n_opts instead of
3457         N_OPTS.
3458         (diagnostic_report_diagnostic): Pass context parameter to
3459         diagnostic_report_warnings_p.  Use option_enabled and option_name
3460         hooks from context.
3461         (emit_diagnostic): Use permissive_error_option.
3462         (permerror): Likewise.
3463         * diagnostic.h: Don't include options.h.
3464         (struct diagnostic_context): Add n_opts, opt_permissive,
3465         inhibit_warnings, warn_system_headers, option_enabled and
3466         option_name fields.  Change classify_diagnostic to a pointer.
3467         * opts-diagnostic.h: New file.
3468         * opts.c: Include opts-diagnostic.h.
3469         (common_handle_option): Set global_dc fields for -Wfatal-errors,
3470         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
3471         (option_name): New function.
3472         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
3473         (c_common_handle_option): Set global_dc->permissive for
3474         -fpermissive.
3475         * c-common.c (c_cpp_error): Save and restore
3476         global_dc->warn_system_headers, not variable warn_system_headers.
3477         * toplev.c: Include opts-diagnostic.h.
3478         (general_init): Update call to diagnostic_initialize.  Set
3479         global_dc->show_column, global_dc->option_enabled and
3480         global_dc->option_name.
3481         (process_options): Don't set global_dc fields here.
3482         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
3483         (diagnostic.o, opts.o, toplev.o): Update dependencies.
3484
3485 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3486
3487         * config/picochip/picochip.md (movsi): Split a movsi from a
3488         const after reload.
3489
3490 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3491
3492         * ggc-zone.c: Update copyright year.
3493         (poison_region): Mark memory for Valgrind as undefined before
3494         memset () call and inaccessible afterwards.
3495         (ggc_pch_total_size): Change type of i to int.
3496
3497 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3498
3499         * ggc-common.c (ggc_free_overhead): Allow empty slot.
3500
3501 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3502
3503         * ggc-common.c: Update copyright year.
3504         (ggc_rlimit_bound): Remove prototype.  Compile only if
3505         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
3506         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
3507         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
3508         (ggc_min_heapsize_heuristic): Likewise.
3509
3510 2010-05-26  Richard Guenther  <rguenther@suse.de>
3511
3512         PR rtl-optimization/44164
3513         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
3514         no-common access-path disambiguation.
3515         (indirect_ref_may_alias_decl_p): Adjust.
3516         (indirect_refs_may_alias_p): Likewise.
3517         (refs_may_alias_p_1): Likewise.
3518
3519 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3520
3521         * c-typeck.c: Do not include expr.h.
3522
3523 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3524
3525         * rtl.h (decl_default_tls_model): Move prototype from here...
3526         * output.h: ...to here.
3527         * c-decl.c: Do not include rtl.h.
3528         * c-pragma.c: Likewise.
3529         * c-parser.c: Likewise.
3530         * c-gimplify.c: Likewise.  And also not hard-reg-set.
3531         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
3532         FIXME note for it.  Add a FIXME note for expr.h.
3533         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
3534         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
3535         defined.
3536
3537 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
3538
3539         PR target/44199
3540         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
3541         or total_size is larger than red zone size for non-V4 ABI, emit a
3542         stack_tie resp. frame_tie insn before stack pointer restore.
3543         * config/rs6000/rs6000.md (frame_tie): New insn.
3544
3545 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3546
3547         * function.h (struct function): Add can_throw_non_call_exceptions bit.
3548         * lto-streamer-in.c (input_function): Stream it in.
3549         * lto-streamer-out.c (output_function): Stream it out.
3550         * function.c (allocate_struct_function): Set it.
3551         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
3552         for flag_non_call_exceptions.
3553         * cfgbuild.c (control_flow_insn_p): Likewise.
3554         (make_edges): Likewise.
3555         * cfgexpand.c (expand_stack_alignment): Likewise.
3556         * combine.c (distribute_notes): Likewise.
3557         * cse.c (cse_extended_basic_block): Likewise.
3558         * except.c (insn_could_throw_p): Likewise.
3559         * gcse.c (simple_mem): Likewise.
3560         * ipa-pure-const.c (check_call): Likewise.
3561         (check_stmt ): Likewise.
3562         * lower-subreg.c (lower-subreg.c): Likewise.
3563         * optabs.c (emit_libcall_block): Likewise.
3564         (prepare_cmp_insn): Likewise.
3565         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
3566         * postreload.c (rest_of_handle_postreload): Likewise.
3567         * reload1.c (reload_as_needed): Likewise.
3568         (emit_input_reload_insns): Likewise.
3569         (emit_output_reload_insns): Likewise.
3570         (fixup_abnormal_edges): Likewise.
3571         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
3572         * store-motion.c (find_moveable_store): Likewise.
3573         * tree-eh.c (stmt_could_throw_p): Likewise.
3574         (tree_could_throw_p): Likewise.
3575         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3576         * config/arm/arm.c (arm_expand_prologue): Likewise.
3577         (thumb1_expand_prologue): Likewise.
3578         * config/rx/rx.md (cbranchsf4): Likewise.
3579         (cmpsf): Likewise.
3580         * config/s390/s390.c (s390_emit_prologue): Likewise.
3581         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
3582         (inline_forbidden_into_p): New predicate.
3583         (expand_call_inline): Use it to forbid inlining.
3584         (tree_can_inline_p): Likewise.
3585
3586 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
3587
3588         * config/i386/i386-c.c: Do not include rtl.h.
3589         * config/i386/t-i386: Update dependencies.
3590
3591 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
3592
3593         * attribs.c: Do not include rtl.h.
3594         * Makefile.in: Update dependencies.
3595
3596 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
3597
3598         * double-int.h (double_int_and): New.
3599         * combine.c (try_combine): Clean up, use double_int_* and
3600         immed_double_int_const functions.
3601
3602 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3603
3604         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
3605         stderr to /dev/null instead of grep -q.
3606         * configure: Regenerate.
3607
3608 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
3609
3610         * Makefile.in (EXCEPT_H): Fix typo.
3611
3612 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
3613
3614         * ira-build.c (update_conflict_hard_reg_costs): New.
3615         (ira_build): Call update_conflict_hard_reg_costs.
3616
3617 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
3618
3619         PR debug/41371
3620         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
3621         ENABLE_CHECKING.
3622         (intersect_loc_chains): Walk the s2var's loc_chain together
3623         with s1node chain as long as the locations are equal, don't
3624         call find_loc_in_1pdv in that case.
3625
3626         PR debug/42801
3627         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
3628         (copy_bind_expr): ... instead of here.
3629         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
3630         if the block hasn't been remapped.
3631         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
3632         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
3633
3634 2010-05-25  Richard Guenther  <rguenther@suse.de>
3635
3636         PR middle-end/44069
3637         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
3638         out-of-bounds array accesses.
3639
3640 2010-05-25  Richard Guenther  <rguenther@suse.de>
3641
3642         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
3643         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
3644         (run_gcc): Re-organize to make cleanup easier.
3645
3646 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3647
3648         * config/s390/s390.c (optimization_options): Fix and move the
3649         flag_prefetch_loop_arrays override ...
3650         (override_options): ... here.
3651
3652 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
3653
3654         * diagnostic.c: Don't include plugin.h.
3655         (diagnostic_report_diagnostic): Don't handle plugins specially
3656         here.  Pass context to internal_error callback.
3657         * diagnostic.h (struct diagnostic_context): Add context parameter
3658         to internal_error callback.
3659         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
3660         * plugin.h (struct diagnostic_context): Declare.
3661         (warn_if_plugins, plugins_internal_error_function): Declare.
3662         * toplev.c (general_init): Set global_dc->internal_error.
3663         * Makefile.in (diagnostic.o): Update dependencies.
3664
3665 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
3666
3667         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
3668         * config/rs6000/t-darwin64: New.
3669         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
3670         build crt2.
3671
3672 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
3673
3674         PR 44203
3675         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
3676         match the original (and intended) behaviour before r159557.  This
3677         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
3678         in two ways.
3679
3680 2010-05-25  Richard Guenther  <rguenther@suse.de>
3681
3682         * doc/invoke.texi: Document -Ofast.
3683         * target.h (struct gcc_target): Add handle_ofast.
3684         * target-def.h (TARGET_HANDLE_OFAST): Add.
3685         (TARGET_INITIALIZER): Adjust.
3686         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
3687         * common.opt (Ofast): Add.
3688
3689 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
3690
3691         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
3692         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
3693
3694 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
3695
3696         PR target/43610
3697         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
3698         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
3699         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
3700         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
3701
3702 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
3703
3704         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
3705         DW_OP_minus with negated offset instead of DW_OP_plus.
3706         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
3707
3708 2010-05-25  Wei Guozhi  <carrot@google.com>
3709
3710         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
3711         tst instruction and a new alternative.
3712         * config/arm/constraints.md (Pu): New constraint.
3713
3714 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
3715
3716         * function.c (assign_stack_local_1): Initialize variable
3717         to avoid warning when bootstrapping at -O3.
3718
3719 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
3720
3721         * configure.ac (all_lang_makefiles): Remove everything related to it.
3722         * configure: Regenerate.
3723         * Makefile.in: Fix reference to ada Make-lang.in.
3724         Remove support for LANG_MAKEFILES.
3725
3726 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
3727             Sandra Loosemore  <sandra@codesourcery.com>
3728
3729         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
3730         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
3731         description.  Add arm_neon_fp16_ok.
3732         (Add Options): Add arm_neon and arm_neon_fp16.
3733
3734 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
3735
3736         * diagnostic.c: Don't include flags.h.
3737         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
3738         context parameters.  Check flags in the context passed as a parameter.
3739         (diagnostic_build_prefix): Add context parameter.  Check
3740         show_column flag in context.
3741         (diagnostic_action_after_output): Check fatal_errors flag in context.
3742         (diagnostic_report_current_module): Check show_column flag in context.
3743         (default_diagnostic_starter): Update call to
3744         diagnostic_build_prefix.
3745         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
3746         (emit_diagnostic): Pass context to permissive_error_kind.
3747         (permerror): Pass context to permissive_error_kind.
3748         * diagnostic.h (struct diagnostic_context): Add show_column,
3749         pedantic_errors, permissive and fatal_errors fields.
3750         (diagnostic_build_prefix): Update prototype.
3751         * langhooks.c
3752         * toplev.c (process_options): Set flags in global_dc from
3753         flag_show_column, flag_pedantic_errors, flag_permissive,
3754         flag_fatal_errors.
3755         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
3756         to diagnostic_build_prefix.
3757         * Makefile.in (diagnostic.o): Update dependencies.
3758
3759 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3760
3761         * config/i386/ia32intrin.h (__crc32q): Define only if
3762         __SSE4_2__ is defined.
3763
3764 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
3765
3766         PR target/44132
3767         PR middle-end/43602
3768         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
3769         DECL_VISIBILITY_SPECIFIED.
3770         (emutls_decl): Set DECL_PRESERVE_P and copy
3771         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
3772         (emutls_finalize_control_var): New callback.
3773         (emutls_finish): Finalize emutls control variables.
3774         * toplev.c (compile_file): Move the call to emutls_finish ()
3775         before varpool_assemble_pending_decls ().
3776
3777 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
3778
3779         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
3780         added to the preprocessor condition.
3781
3782 2010-05-24  Paul Brook  <paul@codesourcery.com>
3783
3784         * gengtype-lex.l: Add HARD_REG_SET.
3785         * expr.c (expand_expr_real_1): Record writes to hard registers.
3786         * function.c (rtl_data): Add asm_clobbers.
3787         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
3788         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
3789         Use crtl->asm_clobbers.
3790
3791 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3792
3793         * doc/makefile.texi (Makefile): Mention stages 'profile'
3794         and 'feedback' for profiledbootstrap.
3795
3796 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
3797
3798         PR target/44245
3799         * config/i386/i386.c (def_builtin): Properly check
3800         OPTION_MASK_ISA_64BIT.
3801
3802 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
3803
3804         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
3805         typedefs with different but compatible types.  Allow duplicate
3806         typedefs with the same type except for pedantic non-C1X, but give
3807         warning for variably modified types.
3808         * c-typeck.c (tagged_types_tu_compatible_p,
3809         function_types_compatible_p, type_lists_compatible_p,
3810         comptypes_internal): Add parameter different_types_p; set
3811         *different_types_p for different but compatible types.  All
3812         callers changed.
3813         (comptypes_check_different_types): New.
3814         * c-tree.h (comptypes_check_different_types): Declare.
3815
3816 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
3817
3818         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
3819         * jump.c: Include basic-block.h.
3820         * profile.c: Likewise.
3821         * tree-profile.c: Likewise.
3822         * coverage.c: Likewise.
3823         * basic-block.h (optimize_function_for_size_p): Move to function.h.
3824         (optimize_function_for_speed_p): Likewise.
3825         * function.h (optimize_function_for_size_p,
3826         optimize_function_for_speed_p): Moved here from basic-block.h.
3827         * Makefile.in: Update dependencies.
3828
3829 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3830
3831         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
3832         before calling make; allow override through $MAKE.
3833         * doc/invoke.texi (Optimize Options): Document override.
3834
3835 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
3836
3837         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
3838         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3839         (rs6000_mode_dependent_address_ptr): Make static.
3840         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3841         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
3842         Remove.
3843
3844 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
3845
3846         PR target/43869
3847         * config/i386/i386.c: Make sure that the correct regparm is passed.
3848
3849 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
3850
3851         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
3852         * sbitmap.c: ...to here to internalize sbitmap element access.
3853         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
3854         Explain why basic-block.h is included.
3855         * function.h: Include tm.h for CUMULATIVE_ARGS.
3856         * Makefile.in: Update dependencies.
3857
3858 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
3859
3860         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
3861         New core types.
3862         * sbitmap.h (struct sbitmap_def): Do not typedef here.
3863         * sbitmap.c: Include sbitmap.h.
3864         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
3865         hard-reg-set.h.  Split everything related to regsets out from here...
3866         * regset.h: ...to here.  New file.
3867         * df.h: Include regset.h and sbitmap.h.
3868         * tree-flow.h: Likewise.
3869         * cfgloop.h: Likewise.
3870         * except.h: Do not include sbitmap.h.  Include hashtab.h.
3871         * cgraph.h: Include vec.h and function.h.
3872         * reload.h (struct insn_chain): Change types of live_throughout
3873         and dead_or_set from regset_head to bitmap_head.
3874         (compute_use_by_pseudos): Be defined also if regset.h is not included.
3875         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
3876         spilled_regs from regset_head to bitmap_head to avoid dependency
3877         in regset.h.
3878         * sel-sched-ir.h: Include regset.h.
3879         * reload.c: Include df.h before reload.h.
3880         * caller-save.c: Likewise.
3881         * reload1.c: Likewise.
3882         * ira.c: Likewise.
3883         (mark_elimination): Update type of r to bitmap, consistent with
3884         DF_LR_IN.
3885         * dominance.c: Include bitmap.h.
3886         * modulo-sched.c: Include df.h.
3887         * cfganal.c: Include bitmap.h and sbitmap.h.
3888         * cfgbuild.c: Include sbitmap.h.
3889         * lcm.c: Include sbitmap.h.
3890         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
3891         * domwalk.c: Include sbitmap.h, exclude ggc.h.
3892         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
3893         * cselib.c: Include bitmap.h.
3894         * tree-optimize.c: Include regset.h.
3895         * stmt.c: Include bitmap.h.
3896         * Makefile.in: Update dependencies.
3897
3898 2010-05-22  Jan Hubicka  <jh@suse.cz>
3899
3900         * cgraph.h (struct varpool_node): Add same_comdat_group.
3901         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
3902         pointer.
3903         (output_varpool): Update call of lto_output_varpool_node.
3904         (input_varpool): Read same_comdat_group pointer.
3905         (input_varpool_1): Fixup same_comdat_group pointer.
3906         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
3907         group is needed, all are.
3908         * varpool.c (varpool_remove_node): Remove node from same comdat group
3909         linklist too.
3910         (varpool_analyze_pending_decls): Walk same comdat groups.
3911
3912 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
3913
3914         * rtl.h (union rtunion_def): Remove rt_bit member.
3915         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
3916         * print-rtl (print_rtx): Do not print the member.
3917         * gengtype.c (adjust_field_rtx_def): Do not handle it.
3918         * gengenrtl.c (type_from_format): Likewise.
3919         (accessor_from_format): Likewise.
3920
3921 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
3922
3923         * dbgcnt.c: Include toplev.h instead of errors.h.
3924         * ira-emit.c: Don't include errors.h.
3925         * ira.c: Include toplev.h instead of errors.h.
3926         * lto-compress.c: Include toplev.h instead of errors.h.
3927         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
3928         ira.o, dbgcnt.o): Update dependencies.
3929
3930 2010-05-22  Richard Guenther  <rguenther@suse.de>
3931
3932         * gimple.c (gimple_types_compatible_p): Check type qualifications
3933         before merging pointer to complete and pointer to incomplete type.
3934         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
3935         we use our own resolution algorithm.  The gold linker plugin
3936         doesn't do the job we want it to do here.
3937
3938 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
3939
3940         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3941         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3942         (sparc_mode_dependent_address_p): New function.
3943
3944 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3945
3946         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
3947
3948         * timevar.c: Do not include any core headers.
3949         (timevar_print): De-i18n-ize.
3950         (print_time): Likewise.
3951         * timevar.h (timevar_push, timevar_pop): Make inline functions.
3952
3953 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
3954
3955         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
3956         langhooks-def.h.
3957         (diagnostic_initialize): Initialize x_data not last_function.
3958         (diagnostic_report_current_function): Move to tree-diagnostic.c.
3959         (default_diagnostic_starter): Call
3960         diagnostic_report_current_module not
3961         diagnostic_report_current_function.
3962         (diagnostic_report_diagnostic): Initialize x_data not
3963         abstract_origin.
3964         (verbatim): Likewise.
3965         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
3966         x_data.
3967         (struct diagnostic_context): Change last_function to x_data.
3968         (diagnostic_auxiliary_data): Replace with
3969         diagnostic_context_auxiliary_data and
3970         diagnostic_info_auxiliary_data.
3971         (diagnostic_last_function_changed, diagnostic_set_last_function,
3972         diagnostic_report_current_function): Move to tree-diagnostic.h.
3973         (print_declaration, dump_generic_node, print_generic_stmt,
3974         print_generic_stmt_indented, print_generic_expr,
3975         print_generic_decl, debug_c_tree, dump_omp_clauses,
3976         print_call_name, debug_generic_expr, debug_generic_stmt,
3977         debug_tree_chain, default_tree_printer): Move to
3978         tree-pretty-print.h.
3979         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
3980         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
3981         gimple-pretty-print.h.
3982         * pretty-print.c: Don't include tree.h
3983         (pp_base_format): Don't handle %K here.
3984         (pp_base_tree_identifier): Move to tree-pretty-print.c.
3985         * pretty-print.h (text_info): Change abstract_origin to x_data.
3986         (pp_tree_identifier, pp_unsupported_tree,
3987         pp_base_tree_identifier): Move to tree-pretty-print.h.
3988         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
3989         tree-pretty-print.h: New files.
3990         * tree-pretty-print.c: Include tree-pretty-print.h.
3991         (percent_K_format): New.  Moved from pretty-print.c.
3992         (pp_base_tree_identifier): Move from pretty-print.c.
3993         * c-objc-common.c: Include tree-pretty-print.h.
3994         (c_tree_printer): Handle %K here.
3995         * langhooks.c: Include tree-diagnostic.h.
3996         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
3997         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
3998         (default_tree_printer): Handle %K using percent_K_format.
3999         (general_init): Use default_tree_diagnostic_starter.
4000         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
4001         (free_lang_data): Use default_tree_diagnostic_starter.
4002         * c-pretty-print.c: Include tree-pretty-print.h.
4003         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
4004         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
4005         * dwarf2out.c: Include tree-pretty-print.h.
4006         * except.c: Include tree-pretty-print.h.
4007         * gimple-pretty-print.c: Include tree-pretty-print.h and
4008         gimple-pretty-print.h.
4009         * gimplify.c: Include tree-pretty-print.h.
4010         * graphite-poly.c: Include tree-pretty-print.h and
4011         gimple-pretty-print.h.
4012         * ipa-cp.c: Include tree-pretty-print.h.
4013         * ipa-inline.c: Include gimple-pretty-print.h.
4014         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
4015         * ipa-pure-const.c: Include gimple-pretty-print.h.
4016         * ipa-struct-reorg.c: Include tree-pretty-print.h and
4017         gimple-pretty-print.h.
4018         * ipa-type-escape.c: Include tree-pretty-print.h.
4019         * print-rtl.c: Include tree-pretty-print.h.
4020         * print-tree.c: Include gimple-pretty-print.h.
4021         * sese.c: Include tree-pretty-print.h.
4022         * tree-affine.c: Include tree-pretty-print.h.
4023         * tree-browser.c: Include tree-pretty-print.h.
4024         * tree-call-cdce.c: Include gimple-pretty-print.h.
4025         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
4026         * tree-chrec.c: Include tree-pretty-print.h.
4027         * tree-data-ref.c: Include tree-pretty-print.h and
4028         gimple-pretty-print.h.
4029         * tree-dfa.c: Include tree-pretty-print.h.
4030         * tree-if-conv.c: Include tree-pretty-print.h and
4031         gimple-pretty-print.h.
4032         * tree-inline.c: Include tree-pretty-print.h.
4033         * tree-into-ssa.c: Include tree-pretty-print.h and
4034         gimple-pretty-print.h.
4035         * tree-nrv.c: Include tree-pretty-print.h.
4036         * tree-object-size.c: Include tree-pretty-print.h and
4037         gimple-pretty-print.h.
4038         * tree-outof-ssa.c: Include tree-pretty-print.h and
4039         gimple-pretty-print.h.
4040         * tree-parloops.c: Include tree-pretty-print.h and
4041         gimple-pretty-print.h.
4042         * tree-predcom.c: Include tree-pretty-print.h and
4043         gimple-pretty-print.h.
4044         * tree-scalar-evolution.c: Include tree-pretty-print.h and
4045         gimple-pretty-print.h.
4046         * tree-sra.c: Include tree-pretty-print.h.
4047         * tree-ssa-address.c: Include tree-pretty-print.h.
4048         * tree-ssa-alias.c: Include tree-pretty-print.h.
4049         * tree-ssa-ccp.c: Include tree-pretty-print.h and
4050         gimple-pretty-print.h.
4051         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
4052         * tree-ssa-copy.c: Include tree-pretty-print.h and
4053         gimple-pretty-print.h.
4054         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
4055         * tree-ssa-dce.c: Include tree-pretty-print.h and
4056         gimple-pretty-print.h.
4057         * tree-ssa-dom.c: Include tree-pretty-print.h and
4058         gimple-pretty-print.h.
4059         * tree-ssa-dse.c: Include gimple-pretty-print.h.
4060         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
4061         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
4062         * tree-ssa-live.c: Include tree-pretty-print.h and
4063         gimple-pretty-print.h.
4064         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
4065         gimple-pretty-print.h.
4066         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
4067         gimple-pretty-print.h.
4068         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
4069         gimple-pretty-print.h.
4070         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
4071         gimple-pretty-print.h.
4072         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
4073         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
4074         * tree-ssa-operands.c: Include tree-pretty-print.h and
4075         gimple-pretty-print.h.
4076         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
4077         gimple-pretty-print.h.
4078         * tree-ssa-pre.c: Include tree-pretty-print.h and
4079         gimple-pretty-print.h.
4080         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
4081         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
4082         gimple-pretty-print.h.
4083         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
4084         gimple-pretty-print.h.
4085         * tree-ssa-sink.c: Include gimple-pretty-print.h.
4086         * tree-ssa-ter.c: Include tree-pretty-print.h and
4087         gimple-pretty-print.h.
4088         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
4089         * tree-ssa.c: Include tree-pretty-print.h and
4090         gimple-pretty-print.h.
4091         * tree-stdarg.c: Include gimple-pretty-print.h.
4092         * tree-switch-conversion.c: Include gimple-pretty-print.h.
4093         * tree-tailcall.c: Include tree-pretty-print.h and
4094         gimple-pretty-print.h.
4095         * tree-vect-data-refs.c: Include tree-pretty-print.h and
4096         gimple-pretty-print.h.
4097         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
4098         gimple-pretty-print.h.
4099         * tree-vect-loop.c: Include tree-pretty-print.h and
4100         gimple-pretty-print.h.
4101         * tree-vect-patterns.c: Include gimple-pretty-print.h.
4102         * tree-vect-slp.c: Include tree-pretty-print.h and
4103         gimple-pretty-print.h.
4104         * tree-vect-stmts.c: Include tree-pretty-print.h and
4105         gimple-pretty-print.h.
4106         * tree-vectorizer.c: Include tree-pretty-print.h.
4107         * tree-vrp.c: Include tree-pretty-print.h and
4108         gimple-pretty-print.h.
4109         * value-prof.c: Include tree-pretty-print.h and
4110         gimple-pretty-print.h.
4111         * var-tracking.c: Include tree-pretty-print.h.
4112         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
4113         (tree-diagnostic.o): New dependencies.
4114         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
4115         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
4116         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
4117         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
4118         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
4119         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
4120         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
4121         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
4122         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
4123         tree-ssa-address.o, tree-ssa-loop-niter.o,
4124         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
4125         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
4126         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
4127         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
4128         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
4129         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
4130         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
4131         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
4132         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
4133         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
4134         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
4135         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
4136         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
4137         tree-switch-conversion.o, var-tracking.o, value-prof.o,
4138         cfgexpand.o, pretty-print.o): Update dependencies.
4139
4140 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
4141
4142         * tree-ssa-structalias.c: Remove tm_p.h from include.
4143
4144 2010-05-21  Jeff Law  <law@redhat.com>
4145
4146         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
4147
4148 2010-05-21  Jason Merrill  <jason@redhat.com>
4149
4150         * tree-eh.c (cleanup_is_dead_in): New.
4151         (lower_try_finally): Don't generate a dead cleanup region.
4152         (lower_cleanup): Likewise.
4153
4154 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
4155
4156         PR debug/44223
4157         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
4158         unchain each use from the cyclic next_regno_use chain first.
4159
4160 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
4161
4162         * real: Do not include gmp.h, mpfr.h, and mpc.h.
4163         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
4164         (real_value_negate, real_value_abs): New prototypes.
4165         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
4166         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
4167         new include file for interface between MPFR and REAL_VALUE_TYPE.
4168         * real.c: Include realmpfr.h.
4169         (real_arithmetic2): Remove legacy function.
4170         (real_value_negate): New.
4171         (real_value_abs): New.
4172         (mfpr_from_real, real_from_mpfr): Move from here...
4173         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
4174         * builtins.c: Include realmpfr.h.
4175         * fold-const.c: Include realmpfr.h.
4176         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
4177         (fold_negate_const): Likewise.
4178         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
4179         * toplev.c: Include realmpfr.h.
4180         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
4181         and real_value_negate.
4182         * fixed-value.c (check_real_for_fixed_mode): Likewise.
4183         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
4184         (vfp3_const_double_index): Likewise.
4185         (arm_print_operand): Likewise.
4186         * Makefile.in: Update dependencies.
4187
4188 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4189
4190         * config/s390/s390.c (override_options): Increase the default
4191         of max-completely-peel-times.
4192
4193 2010-05-21  Julian Brown  <julian@codesourcery.com>
4194             Mark Mitchell  <mark@codesourcery.com>
4195
4196         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
4197         sibling calls for Thumb-1.
4198         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
4199         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
4200         Thumb-2.
4201         (*call_insn, *call_value_insn): Don't use for Thumb-2.
4202         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
4203         for Thumb-2.
4204         (return): New expander.
4205         (*arm_return): New name for ARM return insn.
4206         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
4207
4208 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
4209
4210         * config.gcc (sparc64-*-rtems*): New target.
4211
4212 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
4213
4214         * tree.c (build_function_decl_skip_args): Fix grammar.
4215         (build_function_type_list_1): Fix typos, adjust formatting.
4216
4217 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
4218
4219         * tree.h: Include real.h and fixed-value.h as basic datatypes.
4220         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
4221         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
4222         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
4223         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
4224         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
4225         tree-pretty-print.c, tree-loop-distribution.c,
4226         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
4227         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
4228         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
4229         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
4230         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
4231         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
4232         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
4233         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
4234         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
4235         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
4236         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
4237         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
4238         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
4239         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
4240         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
4241         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
4242         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
4243         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
4244         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
4245         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
4246         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
4247         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
4248         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
4249         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
4250         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
4251         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
4252         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
4253         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
4254         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
4255         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
4256         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
4257         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
4258         config/score/score7.c, config/score/score.c, config/arm/arm.c,
4259         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
4260         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
4261         config/bfin/bfin.c: Clean up redundant includes.
4262         * Makefile.in: Update accordingly.
4263
4264 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
4265
4266         PR middle-end/44204
4267         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
4268         statement has no arguments.
4269
4270 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
4271
4272         PR/44139
4273         * varasm.c (emutls_decl): Merge attributes to new decl.
4274
4275 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
4276
4277         PR middle-end/44101
4278         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
4279         around the uniquized constructor if its type requires a conversion.
4280
4281 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
4282
4283         PR debug/44205
4284         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
4285         at -O0 goto_locus of any of the incoming edges differs from
4286         goto_locus of outgoing edge, or gimple_location of any of the
4287         labels differs.
4288
4289 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
4290
4291         * ira.c (ira_non_ordered_class_hard_regs): Define.
4292         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
4293         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
4294         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
4295         cost of unaligned hard regs when allocating multi-reg pseudos.
4296
4297 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
4298
4299         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
4300         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
4301         for TARGET_NO_FLOAT.
4302         * config/mips/mips.c (mips_file_start): Expand conditional expression
4303         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
4304         (mips_override_options): Move -mno-float override -msoft-float and
4305         -mhard-float.
4306         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
4307         Condition(TARGET_SUPPORTS_NO_FLOAT).
4308         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
4309         __mips_no_float here.
4310         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
4311         (TARGET_SUPPORTS_NO_FLOAT): Define.
4312         * config/mips/sdemtk.opt: Delete.
4313
4314 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
4315
4316         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
4317
4318 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
4319
4320         PR target/43733
4321         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
4322         * configure: Regenerate.
4323         * config.in: Regenerate.
4324         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
4325         instead of sahf only for 64bit targets.
4326
4327 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
4328
4329         PR debug/44178
4330         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
4331         setup_ref_regs for DEBUG_INSNs.
4332
4333 2010-05-20  Jan Hubicka  <jh@suse.cz>
4334
4335         PR middle-end/44197
4336         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
4337
4338 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
4339
4340         PR bootstrap/43870
4341         * df-scan.c (df_ref_compare): Stabilize sort.
4342
4343 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
4344
4345         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
4346         argument.  Don't use DW_OP_piece if offset is non-zero,
4347         put offset into second DW_OP_bit_piece argument.
4348         (dw_sra_loc_expr): Adjust callers.  For memory expressions
4349         compute offset.
4350
4351 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
4352
4353         PR target/44202
4354         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
4355         settings for 16-bit-constant "addo" alternative.
4356
4357 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
4358
4359         * config/mips/mips-dsp.md (add<DSPV:mode>3,
4360         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
4361
4362         PR target/43764
4363         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
4364         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
4365         Use it.
4366
4367 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
4368
4369         * diagnostic.c (FLOAT, FFS): Don't undefine.
4370         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
4371         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
4372         include ordering.
4373
4374 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
4375
4376         * combine.c (propagate_for_debug): Call make_compound_operation
4377         on the source value.
4378         (try_combine): When implementing a split chosen by find_split_point,
4379         either copy i2src or set it to null.  Assert that i2src is not null
4380         before substituting into CALL_INSN_FUNCTION_USAGE.
4381
4382 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
4383
4384         * double-int.h (double_int_ior): New function.
4385         * tree.h (build_int_cst_wide_type): Remove.
4386         * tree.c (build_int_cst_wide_type): Remove.
4387         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
4388         of build_int_cst_wide_type.
4389         * stor-layout.c (set_sizetype): (Ditto.).
4390         * dojump.c (do_jump): Use build_int_cstu instead of
4391         build_int_cst_wide_type.
4392
4393 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4394
4395         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
4396         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
4397         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
4398         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
4399         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
4400         propagate the 'data' argument to copy_tree_r.
4401         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
4402         Propagate 'data' argument to walk_tree.
4403         (copy_if_shared): New function.
4404         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
4405         (unmark_visited): New function.
4406         (unshare_body): Call copy_if_shared instead of doing it manually.
4407         (unvisit_body): Call unmark_visited instead of doing it manually.
4408
4409 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
4410
4411         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
4412         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
4413         * hooks.c: Likewise.
4414         * target-def.h (TARGET_FOLD_BUILTIN): Define to
4415         hook_tree_tree_int_treep_bool_null.
4416         * target.h (struct gcc_target): Update signature of fold_builtin
4417         field.
4418         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
4419         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
4420         instead of the call expression.
4421         (fold_builtin_call_array): Pass n and argarray directly.
4422         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
4423         consing a list.
4424         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
4425         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
4426         `i' and use it in place of `arity'.
4427         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
4428         Dereference `args' directly.
4429         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
4430
4431 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4432
4433         * doc/sourcebuild.texi (Effective-Target Keywords): Document
4434         3dnow, sse3, sse2.
4435         (Directives): Document optional dg-require-effective-target
4436         selector.
4437
4438 2010-05-19  Richard Guenther  <rguenther@suse.de>
4439
4440         PR lto/44196
4441         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
4442
4443 2010-05-19  Richard Guenther  <rguenther@suse.de>
4444
4445         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
4446         * common.opt (fwhopr=): New.
4447         * opts.c (common_handle_option): Handle OPT_fwhopr.
4448         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
4449         * collect2.c (main): Match -fwhopr*.
4450         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
4451         Execute ltrans stage in parallel when jobs is bigger than 1.
4452
4453 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4454
4455         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
4456         pentiumpro on Solaris 8/x86 with Sun as.
4457         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
4458         hidden alias bug.
4459         (gcc_cv_as_ix86_quad): Check for .quad directive.
4460         * configure: Regenerate.
4461         * config.in: Regenerate.
4462         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
4463
4464 2010-05-19  Martin Jambor  <mjambor@suse.cz>
4465
4466         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
4467         also for indirect edges.  Actual printing moved...
4468         (ipa_print_node_jump_functions_for_edge): ...here.
4469         (ipa_compute_jump_functions): Renamed to
4470         ipa_compute_jump_functions_for_edge and made static.
4471         (ipa_compute_jump_functions): New function.
4472         (make_edge_direct_to_target): Check if the number of arguments on
4473         the newly direct edge is the same as the number of parametrs of
4474         the callee.
4475         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
4476         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
4477         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
4478         analysis functions unconditionally, call the new
4479         ipa_analyze_params_uses on the node instead of every edge.
4480
4481 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
4482
4483         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
4484         to tree.
4485         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
4486         also checks for a constant int vs.  non-constant but
4487         loop-invariant steps.
4488         (find_or_create_group): Change the sort algorithm to only consider
4489         steps that are constant ints.
4490         (idx_analyze_ref): Adopt code to handle a tree instead of a
4491         HOST_WIDE_INT for step.
4492         (gather_memory_references_ref): Handle tree instead of int and be
4493         prepared to see a NULL_TREE.
4494         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
4495         prefetches if the step cannot be calculated at compile time.
4496         (issue_prefetch_ref): Issue prefetches for non-constant but
4497         loop-invariant steps.
4498
4499 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
4500
4501         Revert:
4502         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
4503
4504         * tree.h (build_call_list): Remove.
4505         * tree.c (build_call_list): Remove.
4506
4507 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
4508
4509         * tree.h (build_call_list): Remove.
4510         * tree.c (build_call_list): Remove.
4511
4512 2010-05-18  Jan Hubicka  <jh@suse.cz>
4513
4514         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
4515
4516 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
4517
4518         PR rtl-optimization/43332
4519         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
4520
4521 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
4522
4523         * tree.h (build_int_cstu): Implement as static inline.
4524         * tree.c (build_int_cstu): Remove function.
4525         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
4526         sign extended.
4527
4528 2010-05-18  Richard Guenther  <rguenther@suse.de>
4529
4530         PR lto/44143
4531         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
4532         (debug): Initialize from -save-temps.
4533         (collect_execute): Print command-line when verbose.
4534         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
4535         for ltrans invocation.  Produce -dumpbase flag again.
4536         (process_args): Remove.
4537         (main): Simplify.
4538         * collect2.c (maybe_run_lto_and_relink): Only pass object
4539         files to lto-wrapper.
4540         * gcc.c (LINK_COMMAND_SPEC): Likewise.
4541
4542 2010-05-18  Jan Hubicka  <jh@suse.cz>
4543
4544         * opts.c (decode_options): Do not disable whopr at ipa_cp.
4545         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
4546
4547 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
4548
4549         PR lto/44184
4550         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
4551         in a GIMPLE_ASM.
4552         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
4553         in a GIMPLE_ASM.
4554
4555 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
4556
4557         PR debug/41371
4558         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
4559         rtx_equal_p inline.
4560
4561 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
4562
4563         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
4564         lto-macho as lto_binary_reader.
4565
4566         * darwin.c (darwin_asm_named_section): Do not add assembler comment
4567         after .section directive; just print it before the directive instead.
4568
4569 2010-05-17  Jan Hubicka  <jh@suse.cz>
4570
4571         * cgraph.c (cgraph_create_virtual_clone): Only check
4572         versionable_function_p when not in wpa and checking is enabled.
4573         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
4574         there are no more functions to materialize.
4575
4576 2010-05-17  Jan Hubicka  <jh@suse.cz>
4577
4578         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
4579         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
4580         New functions.
4581         (output_cgraph): Call output_cgraph_opt_summary.
4582         (input_cgrpah): Call input_cgraph_opt_summary.
4583         (output_cgraph_opt_summary_p, output_node_opt_summary,
4584         input_node_opt_summary, input_cgraph_opt_section): New functions.
4585         * lto-section-in.c (lto_section_name): Add cgraphopt.
4586         * tree-inline.c (tree_function_versioning): Handle parm_num.
4587         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
4588         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
4589
4590 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
4591
4592         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
4593         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
4594         the insn to prefetch ratio heuristic to loops with known trip count.
4595
4596 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
4597
4598         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
4599         (schedule_prefetches): Do not generate a prefetch if the unroll factor
4600         is far from what is required by the prefetch.
4601
4602 2010-05-17  Jan Hubicka  <jh@suse.cz>
4603
4604         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
4605         (ipcp_estimate_growth): Likewise.
4606         (ipcp_const_param_count): Likewise.
4607         (ipcp_insert_stage): Likewise.
4608         * ipa-prop.c (visit_load_for_mod_analysis): New function.
4609         (visit_store_addr_for_mod_analysis): Set used flag.
4610         (ipa_detect_param_modifications): Set used flag for SSE params;
4611         update use of walk_stmt_load_store_addr_ops.
4612         (ipa_print_node_params): Print used flag.
4613         (ipa_write_node_info): Stream used flag.
4614         (ipa_read_node_info): Likewise.
4615         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
4616         (ipa_is_param_used): New function.
4617         (lto_ipa_fixup_call_notes): Remove unused declaration.
4618
4619 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4620
4621         PR target/44074
4622         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
4623         * configure: Regenerate.
4624         * config.in: Regenerate.
4625         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
4626         !HAVE_AS_IX86_REP_LOCK_PREFIX.
4627         Don't emit whitespace.
4628         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
4629         (*rep_movsi): Likewise.
4630         (*rep_movsi_rex64): Likewise.
4631         (*rep_movqi): Likewise.
4632         (*rep_movqi_rex64): Likewise.
4633         (*rep_stosdi_rex64): Likewise.
4634         (*rep_stossi): Likewise.
4635         (*rep_stossi_rex64): Likewise.
4636         (*rep_stosqi): Likewise.
4637         (*rep_stosqi_rex64): Likewise.
4638         (*cmpstrnqi_nz_1): Use {%;} after repz.
4639         (*cmpstrnqi_nz_rex_1): Likewise.
4640         (*cmpstrnqi_1): Likewise.
4641         (*cmpstrnqi_rex_1): Likewise.
4642         (*strlenqi_1): Use {%;} after repnz.
4643         (*strlenqi_rex_1): Likewise.
4644         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
4645         (*sync_compare_and_swap<mode>): Likewise.
4646         (sync_double_compare_and_swap<mode>): Likewise.
4647         (*sync_double_compare_and_swapdi_pic): Likewise.
4648         (sync_old_add<mode>): Likewise.
4649         (sync_add<mode>): Likewise.
4650         (sync_sub<mode>): Likewise.
4651         (sync_<code><mode>): Likewise.
4652
4653 2010-05-17  Martin Jambor  <mjambor@suse.cz>
4654
4655         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
4656         otr_token and polymorphic.
4657         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
4658         (cgraph_clone_edge): Copy the above fields.
4659         * tree.c (get_binfo_at_offset): New function.
4660         * tree.h (get_binfo_at_offset): Declare.
4661         * ipa-prop.h (enum jump_func_type): Added known_type jump function
4662         type, reordered items, updated comments.
4663         (union jump_func_value): Added base_type field, reordered fields.
4664         (enum ipa_lattice_type): Moved down in the file.
4665         (struct ipa_param_descriptor): New field polymorphic.
4666         (ipa_is_param_polymorphic): New function.
4667         * ipa-prop.c: Include gimple.h and gimple-fold.h.
4668         (ipa_print_node_jump_functions): Print known type jump functions.
4669         (compute_complex_pass_through): Renamed to...
4670         (compute_complex_assign_jump_func): this.
4671         (compute_complex_ancestor_jump_func): New function.
4672         (compute_known_type_jump_func): Likewise.
4673         (compute_scalar_jump_functions): Create known type and complex ancestor
4674         jump functions.
4675         (ipa_note_param_call): New parameter polymorphic, set the corresponding
4676         flag in the call note accordingly.
4677         (ipa_analyze_call_uses): Renamed to...
4678         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
4679         variable var only in the block where it is used.
4680         (ipa_analyze_virtual_call_uses): New function.
4681         (ipa_analyze_call_uses): Likewise.
4682         (combine_known_type_and_ancestor_jfs): Likewise.
4683         (update_jump_functions_after_inlining): Implemented handling of a
4684         number of new jump function types combination.
4685         (print_edge_addition_message): Removed.
4686         (make_edge_direct_to_target): New function.
4687         (try_make_edge_direct_simple_call): Likewise.
4688         (try_make_edge_direct_virtual_call): Likewise.
4689         (update_call_notes_after_inlining): Renamed to...
4690         (update_indirect_edges_after_inlining): this.  Moved edge creation for
4691         indirect calls to try_make_edge_direct_simple_call, also calls
4692         try_make_edge_direct_virtual_call for virtual calls.
4693         (ipa_print_node_params): Changed the header message.
4694         (ipa_write_jump_function): Stream also known type jump functions.
4695         (ipa_read_jump_function): Likewise.
4696         (ipa_write_indirect_edge_info): Stream new fields in
4697         cgraph_indirect_call_info.
4698         (ipa_read_indirect_edge_info): Likewise.
4699         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
4700         GIMPLE_FOLD_H.
4701
4702 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4703
4704         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
4705
4706 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
4707
4708         * tree.h (CALL_EXPR_ARGS): Delete.
4709         (call_expr_arglist): Delete.
4710         * tree.c (call_expr_arglist): Delete.
4711         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
4712         targetm.fold_builtin.
4713         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
4714         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
4715         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
4716         arglist parameter.  Use CALL_EXPR_ARG.
4717         (picochip_expand_builtin_3op): Likewise.
4718         (picochip_expand_builtin_2opvoid): Likewise.
4719         (picochip_expand_array_get): Likewise.
4720         (picochip_expand_array_put): Likewise.
4721         (picochip_expand_array_testport): Likewise.
4722         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
4723         rather than arglist.
4724         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
4725         CALL_EXPR_ARGS.
4726         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
4727         than TREE_VALUE and TREE_CHAIN.
4728         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
4729         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
4730         the arglist.
4731
4732 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
4733
4734         PR bootstrap/42347
4735         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
4736         to have no fallthru edge.
4737
4738         PR middle-end/44102
4739         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
4740         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
4741         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
4742         add BARRIER after previous bb if needed.
4743
4744 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
4745
4746         * tree.c (build_function_type_list_1): Remove bogus assert condition.
4747
4748 2010-05-17  Alan Modra  <amodra@gmail.com>
4749
4750         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
4751         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
4752         with copy_reg rtx param.
4753         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
4754         Correct cases where code for ABI_V4 did not initialise the reg
4755         used to access frame.  Also leave frame_reg_rtx as sp for large
4756         frames that save no regs.
4757
4758 2010-05-17  Martin Jambor  <mjambor@suse.cz>
4759
4760         PR middle-end/44133
4761         * tree-sra.c (create_access_replacement): New parameter rename, mark
4762         the replaement for renaming only when it is true.
4763         (get_access_replacement): Pass true in the rename parameter of
4764         create_access_replacement.
4765         (get_unrenamed_access_replacement): New function.
4766         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
4767         replacement declaration from it.
4768
4769 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
4770
4771         * function.c (try_fit_stack_local, add_frame_space): New static
4772         functions.
4773         (assign_stack_local_1): Use them.  Look for opportunities to use
4774         space previously wasted on alignment.
4775         * function.h (struct frame_space): New.
4776         (struct rtl_data): Add FRAME_SPACE_LIST member.
4777         * reload1.c (something_was_spilled): New static variable.
4778         (alter_reg): Set it.
4779         (reload): Test it in addition to testing if the frame size changed.
4780
4781 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
4782
4783         * config/s390/s390.c: Define sane prefetch settings and activate
4784         flag_prefetch_loop_arrays on -O3.
4785         * config/s390/s390.h: Declare that read can use write prefetch.
4786
4787 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
4788
4789         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
4790         build.
4791
4792 2010-05-16  Jan Hubicka  <jh@suse.cz>
4793
4794         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
4795         function body; do not check stdarg field of struct function.
4796
4797 2010-05-16  Jan Hubicka  <jh@suse.cz>
4798
4799         * cgraph.c (dump_cgraph_node): Dump versionable flag.
4800         * cgraph.h (cgraph_local_info): Add versionable flag.
4801         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
4802         (ipcp_versionable_function_p): Use it.
4803         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
4804         versionable flag.
4805
4806 2010-05-16  Jan Hubicka  <jh@suse.cz>
4807
4808         * cgraph.c (cgraph_clone_node): Take decl argument and insert
4809         clone into hash when it is different from orig.
4810         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
4811         * cgraph.h (cgraph_clone_node): Update prototype.
4812         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
4813         (lto_cgraph_encoder_delete): Delete body map.
4814         (lto_cgraph_encoder_size): Move to header.
4815         (lto_cgraph_encoder_encode_body_p,
4816         lto_set_cgraph_encoder_encode_body): New.
4817         (lto_output_node): Do not take written_decls argument; output clone_of
4818         pointer.
4819         (add_node_to): Add include_body_argument; call
4820         lto_set_cgraph_encoder_encode_body on master of the clone.
4821         (add_references): Update use of add_node_to.
4822         (compute_ltrans_boundary): Likewise.
4823         (output_cgraph): Do not create written_decls bitmap.
4824         (input_node): Take nodes argument; stream in clone_of correctly.
4825         (input_cgraph_1): Update use of input_node.
4826         * lto-streamer-out.c (lto_output): Use encoder info to decide
4827         what bodies to output.
4828         * ipa-inline.c (cgraph_clone_inlined_nodes,
4829         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
4830         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
4831         (lto_cgraph_encoder_size): Define here.
4832         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
4833         Declare.
4834
4835 2010-05-16  Richard Guenther  <rguenther@suse.de>
4836
4837         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
4838         -fipa-type-escape.
4839         * ipa-type-escape.c (gate_type_escape_vars): Run when
4840         -fipa-struct-reorg runs.
4841         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
4842         * common.opt (fipa-type-escape): Remove.
4843
4844 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
4845
4846         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
4847         (decode_options): Likewise.
4848         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
4849
4850 2010-05-16  Jan Hubicka  <jh@suse.cz>
4851
4852         * ipa.c (function_and_variable_visibility): Also bring local all
4853         aliases.
4854
4855 2010-05-16  Richard Guenther  <rguenther@suse.de>
4856
4857         * alias.c (nonoverlapping_memrefs_p): Remove use of
4858         IPA type-escape information.
4859
4860 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
4861
4862         * c-common.c (c_common_reswords): Add _Static_assert for C.
4863         * c-parser.c (c_token_starts_declaration,
4864         c_parser_next_token_starts_declaration,
4865         c_parser_static_assert_declaration_no_semi,
4866         c_parser_static_assert_declaration): New.
4867         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
4868         Handle static assertions if static_assert_ok.
4869         (c_parser_external_declaration, c_parser_declaration_or_fndef,
4870         c_parser_compound_statement_nostart, c_parser_label,
4871         c_parser_for_statement, c_parser_objc_methodprotolist,
4872         c_parser_omp_for_loop): All callers of
4873         c_parser_declaration_or_fndef changed.
4874         (c_parser_struct_declaration): Handle static assertions.
4875         (c_parser_compound_statement_nostart): Use
4876         c_parser_next_token_starts_declaration and
4877         c_token_starts_declaration to detect start of declarations.
4878         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
4879         Likewise.
4880
4881 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
4882
4883         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
4884         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
4885         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4886         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4887         (mmix_function_outgoing_value): Rename to...
4888         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
4889         (mmix_function_value_regno_p): Make static.
4890         (mmix_libcall_value): New function.
4891         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
4892         mmix_function_value_regno_p): Remove declaration.
4893
4894 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
4895
4896         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
4897         BUILT_IN_ALLOCA if stack checking is enabled.
4898
4899 2010-05-16  Richard Guenther  <rguenther@suse.de>
4900
4901         * var-tracking.c (vars_copy_1): Inline ...
4902         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
4903         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
4904         (variable_merge_over_cur): Adjust.  Merge asserts.
4905         (variable_merge_over_src): Likewise.
4906         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
4907         (variable_post_merge_new_vals): Merge asserts.
4908         (variable_post_merge_perm_vals): Likewise.
4909         (find_mem_expr_in_1pdv): Likewise.
4910         (dataflow_set_different_value): Remove.
4911         (onepart_variable_different_p): Merge asserts.
4912         (variable_different_p): Likewise.
4913         (dataflow_set_different_1): Inline ...
4914         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
4915         (emit_notes_for_differences_1): Merge asserts.
4916
4917 2010-05-16  Richard Guenther  <rguenther@suse.de>
4918
4919         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
4920         * optabs.c (libfunc_decl_hash): Likewise.
4921         * varasm.c (emutls_decl): Likewise.
4922
4923 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
4924
4925         * c-decl.c: Don't include gimple.h.
4926         (merge_decls): Do not copy gimple_body.
4927
4928 2010-05-15  Jason Merrill  <jason@redhat.com>
4929
4930         * c.opt: Add -fnothrow-opt.
4931
4932 2010-05-15  Jan Hubicka  <jh@suse.cz>
4933
4934         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
4935         analyzed.
4936         * passes.c (ipa_write_summaries): Write all analyzed nodes.
4937
4938 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
4939
4940         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
4941         * Makefile.in: Add it.
4942         Fix all other Makefile dependencies for changes below.
4943         * tree.h: Include it instead of defining VEC primitives here.
4944         * gimple.h: Likewise.
4945         * rtl.h: Likewise.
4946         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
4947         * except.h: Include vecir.h, break dependence on tree.h.
4948
4949         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
4950         Move from here...
4951         * tree-iterator.c: ...to here.
4952         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
4953
4954         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
4955         tm_p.h.
4956         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
4957         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
4958         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
4959         tree-mudflap.h, and target.h.
4960         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
4961         predict.h, tree-inline.h, gimple.h, and langhooks.h.
4962         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
4963         Add FIXME for why gimple.h is still included (should be unnecessary
4964         since GCC 4.5 gimplification unit-at-a-time).
4965         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
4966         * c-pragma.c: Add FIXME for why function.h needs to be included just
4967         for cfun, at front-end level.
4968         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
4969         Do not include ggc.h, but include vecprim.h for VEC(char).
4970         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
4971         Explain why target.h is included.
4972         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
4973         Explain why gimple.h is included.
4974         * c-ppoutput.c: Do not include tm.h.
4975         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
4976         * c-parses.c: Explain why rtl.h is included, and that this (and only
4977         this) is also why tm.h must be included.
4978         Do not include except.h.
4979         * c-lang.c: Do not include ggc.h.
4980
4981 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
4982
4983         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
4984
4985 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
4986
4987         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
4988         unions by default if those structs and unions have no tags.  Do
4989         not condition anonymous struct and unions handling on flag_iso.
4990         Allow anonymous structs and unions for C1X.
4991         (finish_struct): Do not diagnose lack of named fields when
4992         anonymous structs and unions present for C1X.  Accept flexible
4993         array members in structure with anonymous structs or unions but no
4994         directly named fields.
4995         * doc/extend.texi (Unnamed Fields): Update.
4996
4997 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
4998
4999         * gimple.h (compare_field_offset): Rename into...
5000         (gimple_compare_field_offset): ...this.
5001         * gimple.c (compare_field_offset): Rename into...
5002         (gimple_compare_field_offset): ...this.  Compare the full access if
5003         the offset is self-referential.
5004         (gimple_types_compatible_p): Adjust for above renaming.
5005         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
5006         DECL_NONADDRESSABLE_P flag of fields before merging them.
5007
5008 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
5009
5010         * tree.h (ctor_to_list): Delete.
5011         * tree.c (ctor_to_list): Delete.
5012
5013 2010-05-15  Jan Hubicka  <jh@suse.cz>
5014
5015         * ipa-reference.c: Include toplev.h
5016         (is_proper_for_analysis): Only add to all_module_statics
5017         if it is allocated.
5018         (write_node_summary_p, stream_out_bitmap,
5019         ipa_reference_write_optimization_summary,
5020         ipa_reference_read_optimization_summary): New.
5021         (struct ipa_opt_pass_d pass_ipa_reference): Add
5022         optimization summary streaming.
5023         * lto-cgraph.c (referenced_from_this_partition_p,
5024         reachable_from_this_partition_p): New functions.
5025         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
5026         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
5027         * opts.c (decode_options): Enable ipa_reference.
5028         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
5029         * lto-streamer.h (referenced_from_this_partition_p,
5030         reachable_from_this_partition_p): Declare.
5031
5032 2010-05-15  Richard Guenther  <rguenther@suse.de>
5033
5034         PR tree-optimization/44038
5035         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
5036         taking the address of a V_C_E of a constant.
5037
5038 2010-05-14  Jan Hubicka  <jh@suse.cz>
5039
5040         * tree.h (memory_identifier_string): Remove.
5041         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
5042         (ipa_reference_global_vars_info_d): Remove statics_not_read and
5043         statics_not_written.
5044         (ipa_reference_optimization_summary_d): New structure.
5045         (ipa_reference_optimization_summary_t): New type and vector.
5046         (ipa_reference_vars_info_d): Embedd structures instead of using
5047         pointers.
5048         (reference_vars_to_consider): Remove out of GGC space.
5049         (module_statics_escape): Remove.
5050         (global_info_obstack): Rename to ...
5051         (optimization_summary_obstack): ... this one.
5052         (initialization_status_t): Remove.
5053         (memory_identifier_string): Remove.
5054         (get_reference_vars_info): Fix indenting.
5055         (set_reference_vars_info): Likewise.
5056         (get_reference_optimization_summary): New.
5057         (set_reference_optimization_summary): New.
5058         (get_global_reference_vars_info): Remove.
5059         (ipa_reference_get_read_global): Remove.
5060         (ipa_reference_get_written_global): Remove.
5061         (ipa_reference_get_not_read_global): Update.
5062         (ipa_reference_get_not_written_global): Update.
5063         (is_proper_for_analysis): Outlaw addressable.
5064         (propagate_bits): Update for new datastructures.
5065         (analyze_variable): Remove.
5066         (init_function_info): Update for new datastructures.
5067         (clean_function_local_data): Remove.
5068         (clean_function): Remove.
5069         (copy_global_bitmap): Use optimizations_summary_obstack.
5070         (duplicate_node_data): Duplicate optimization summary only.
5071         (remove_node_data): Remove optimization summary only.
5072         (generate_summary): Do not analyze variables; do not compute
5073         module_statics_escape; do not prune solutions by it.
5074         (read_write_all_from_decl): Fix typos in comments.
5075         (propagate): Doscover readonly and nonaddressable first;
5076         update for new datastructures; share global bitmaps.
5077         * ipa-reference.h (ipa_reference_get_read_global,
5078         ipa_reference_get_written_global): Remove.
5079         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
5080         * Makefile.in: Remove ipa-refereference from GT files.
5081
5082 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
5083
5084         PR debug/44112
5085         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
5086         for all SYMBOL_REF_DECLs.
5087
5088 2010-05-14  Jan Hubicka  <jh@suse.cz>
5089
5090         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
5091         (varpool_all_refs_explicit_p): New inline function.
5092         * ipa-reference.c: Update comment.
5093         (module_statics_written): Remove.
5094         (get_static_decl): Remove.
5095         (ipa_init): Do not initialize module_statics_written.
5096         (analyze_function): Likewise.
5097         (generate_summary): Likewise; do not compute module_statics_readonly
5098         and do not update variable flags.
5099         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
5100         * ipa.c: Inlucde flags.h
5101         (cgraph_local_node_p): New.
5102         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
5103         promote functions to local.
5104         (ipa_discover_readonly_nonaddressable_vars): New function.
5105         (function_and_variable_visibility): Use cgraph_local_node_p.
5106         * varpool.c (varpool_finalize_decl): Set force_output for
5107         DECL_PRESERVE_P vars.
5108
5109 2010-05-14  Jan Hubicka  <jh@suse.cz>
5110
5111         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
5112
5113 2010-05-14  Richard Guenther  <rguenther@suse.de>
5114
5115         PR tree-optimization/44119
5116         * tree-ssa-pre.c (eliminate): Properly mark replacement of
5117         a PHI node necessary.
5118
5119 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
5120
5121         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
5122
5123 2010-05-14  Jason Merrill  <jason@redhat.com>
5124
5125         PR c++/44127
5126         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
5127         (gimple_call_set_nothrow): New.
5128         * gimple.c (gimple_build_call_from_tree): Call it.
5129         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
5130
5131         PR c++/44127
5132         * gimplify.c (gimplify_seq_add_stmt): No longer static.
5133         * gimple.h: Declare it.
5134         * gimple.c (gimple_build_eh_filter): No ops.
5135
5136 2010-05-14  Jan Hubicka  <jh@suse.cz>
5137
5138         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
5139         nodes already in queue.
5140         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
5141         re-enqueueing node.
5142
5143 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
5144
5145         PR debug/44136
5146         * cfgexpand.c (expand_debug_expr): If non-memory op0
5147         has BLKmode, return NULL.
5148
5149 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
5150
5151         * config.gcc: Add support for --with-cpu option for bdver1.
5152         * config/i386/i386.h (TARGET_BDVER1): New macro.
5153         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
5154         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
5155         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
5156         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
5157         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
5158         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
5159         (processor_type): Add PROCESSOR_BDVER1.
5160         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
5161         processor_type in config/i386/i386.h.
5162         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
5163         movaps <reg, reg> instead of movapd <reg, reg> when replacing
5164         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
5165         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
5166         to emit packed xor instead of packed double/packed integer
5167         xor for SSE and AVX when moving a zero value.
5168         * config/i386/sse.md: Add check for
5169         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
5170         movapd/movdqa for SSE and AVX.
5171         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
5172         single logical operations i.e and, or and xor instead of packed double
5173         logical operations for SSE and AVX.
5174         * config/i386/i386-c.c (ix86_target_macros_internal):
5175         Add PROCESSOR_BDVER1.
5176         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
5177         (has_fma4, has_xop): New.
5178         * config/i386/i386.c (bdver1_cost): New variable.
5179         (m_BDVER1): New macro.
5180         (m_AMD_MULTIPLE): Add m_BDVER1.
5181         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
5182         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
5183         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
5184         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
5185         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
5186         x86_tune_sse_partial_reg_dependency,
5187         x86_tune_sse_unaligned_load_optimal,
5188         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
5189         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
5190         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
5191         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
5192         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
5193         Enable/disable for bdver1.
5194         (processor_target_table): Add bdver1_cost.
5195         (cpu_names): Add bdver1.
5196         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
5197          processor_alias_table.
5198         (ix86_expand_vector_move_misalign): Change.
5199         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
5200         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
5201         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
5202         of movupd/movdqu for SSE and AVX.
5203         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
5204         (ix86_tune_adjust_cost): Add code for bdver1.
5205         (standard_sse_constant_opcode): Add check for
5206         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
5207         of packed double xor for SSE and AVX.
5208
5209 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
5210
5211         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
5212         result to unsigned.
5213
5214 2010-05-14  Tristan Gingold  <gingold@adacore.com>
5215
5216         * toplev.c (default_debug_hooks): Remove this variable.
5217         (process_options): Remove assignments to default_debug_hooks.
5218
5219 2010-05-14  Martin Jambor  <mjambor@suse.cz>
5220
5221         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
5222         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
5223         * langhooks.h (struct lang_hooks_for_decls): Removed field
5224         fold_obj_type_ref.
5225         * tree.c (free_lang_data): Remove assignment to
5226         lang_hooks.fold_obj_type_ref.
5227         * tree.def (OBJ_TYPE_REF): Update comment.
5228
5229 2010-05-14  Richard Guenther  <rguenther@suse.de>
5230
5231         PR tree-optimization/44124
5232         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
5233
5234 2010-05-14  Alan Modra  <amodra@gmail.com>
5235
5236         PR target/44075
5237         * config/rs6000/rs6000.c (struct machine_function): Reorder
5238         fields for better packing.  Add lr_save_state.
5239         (rs6000_ra_ever_killed): Return lr_save_state if set.
5240         (rs6000_emit_eh_reg_restore): Set lr_save_state.
5241
5242 2010-05-13  Jan Hubicka  <jh@suse.cz>
5243
5244         * varpool.c (decide_is_variable_needed): Drop code checking
5245         TREE_SYMBOL_REFERENCED.
5246
5247 2010-05-13  Jan Hubicka  <jh@suse.cz>
5248
5249         * final.c (output_addr_const): Do not call mark_decl_referenced.
5250         * cgraphunit.c (process_function_and_variable_attributes): Use
5251         mark_needed_node dirrectly.
5252         (assemble_thunk): Do not call mark_decl_referenced.
5253
5254 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
5255
5256         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
5257
5258 2010-05-13  Jeff Law  <law@redhat.com>
5259
5260         * ira-conflicts.c (print_allocno_conflicts): New function broken out
5261         from...
5262         (print_conflicts): Call print_allocno_conflicts.
5263
5264 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
5265
5266         PR debug/44104
5267         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
5268         if it is NULL.
5269
5270 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
5271
5272         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
5273         t-mingw-w64 or t-mingw-w32 for multilib configuration.
5274         * config/i386/t-mingw-w32: New.
5275         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
5276
5277 2010-05-13  Martin Jambor  <mjambor@suse.cz>
5278
5279         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
5280         gimple-fold.c).
5281         * gimple-fold.c (get_base_binfo_for_type): New function.
5282         (gimple_get_relevant_ref_binfo): Likewise.
5283         (gimple_fold_obj_type_ref_known_binfo): Likewise.
5284         (gimple_fold_obj_type_ref): Likewise.
5285         (fold_gimple_call): Simplify condition for folding virtual calls
5286         and call gimple_fold_obj_type_ref.
5287         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
5288         (gimple_fold_obj_type_ref_known_binfo): Likewise.
5289
5290 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
5291
5292         * config/rs6000/rs6000-protos.h
5293         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
5294         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
5295         (rs6000_debug_mode_dependent_address)
5296         (rs6000_mode_dependent_address_ptr): Likewise.
5297
5298 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
5299
5300         PR debug/43983
5301         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
5302         by SRA.
5303         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
5304         * tree-sra.c (create_access_replacement): Call unshare_expr before
5305         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
5306         * dwarf2out.c: Include tree-flow.h.
5307         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
5308         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
5309         Handle DW_OP_bit_piece.
5310         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
5311         construct_piece_list, adjust_piece_list): New functions.
5312         (add_var_loc_to_decl): Handle SRA optimized variables.
5313         Adjust for var_loc_note to loc field renaming.
5314         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
5315         in VAR_LOCATION note.
5316         (new_loc_descr_op_bit_piece): New function.
5317         (dw_sra_loc_expr): New function.
5318         (dw_loc_list): Use it.  Don't handle the last range after the
5319         loop, handle it inside of the loop.  Adjust for var_loc_note
5320         to loc field renaming.
5321         (add_location_or_const_value_attribute): Only special case
5322         single entry loc lists if loc is NOTE_P.  Adjust for
5323         var_loc_note to loc field renaming.
5324         (dwarf2out_var_location): Don't set newloc->var_loc_note
5325         and newloc->next here.
5326
5327 2010-05-12  Jan Hubicka  <jh@suse.cz>
5328
5329         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
5330         flag.
5331         * cgraph.h (cgraph_only_called_directly_p,
5332         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
5333         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
5334         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
5335         (assemble
5336         * ipa.c (cgraph_remove_unreachable_nodes): Use
5337         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
5338         flags.
5339         * tree-inline.c (copy_bb): Check address_taken flag.
5340         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
5341         externally_visible flag.
5342
5343 2010-05-12  Jason Merrill  <jason@redhat.com>
5344
5345         PR bootstrap/44048
5346         PR target/44099
5347         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
5348         * sdbout.c (plain_type_1): Likewise.
5349         * dwarf2out.c (is_base_type): Likewise.
5350         (gen_type_die_with_usage): Likewise.  Generate
5351         DW_TAG_unspecified_type for any LANG_TYPE.
5352
5353 2010-05-12  Jan Hubicka  <jh@suse.cz>
5354
5355         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
5356         indrect edges too.
5357         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
5358         (cgraph_clone_edge): Update.
5359         (cgraph_node_remove_callees): Remove indirect calls too.
5360         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
5361         (cgraph_create_indirect_edge): Update prototype.
5362         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
5363         is_proper_for_analysis.
5364         (add_new_function, visited_nodes, function_insertion_hook_holder,
5365         get_local_reference_vars_info, mark_address_taken, mark_address,
5366         mark_load, mark_store, check_asm_memory_clobber, check_call,
5367         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
5368         (ipa_init): Do not initialize visited_nodes;
5369         function_insertion_hook_holder.
5370         (analyze_variable): Rewrite.
5371         (analyze_function): Rewrite.
5372         (copy_local_bitmap): Remove.
5373         (duplicate_node_dat): Do not duplicate local info.
5374         (generate_summary): Simplify to only walk cgraph.
5375         (write_node_summary_p, ipa_reference_write_summary,
5376         ipa_reference_read_summary): Remove.
5377         (propagate): Do not remove function insertion;
5378         generate summary.
5379         (pass_ipa_reference): NULLify summary handling fields.
5380         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
5381         (input_edge): Input ecf_flags.
5382         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
5383         (update_indirect_edges_after_inlining): Ignore edges with unknown
5384         param.
5385
5386 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
5387
5388         * implicit-zee.c: New file.
5389         * tree-pass.h (pass_implicit_zee): Declare.
5390         * passes.c (init_optimization_passes): Add zee pass.
5391         * common.opt (fzee): New flag.
5392         * timevar.def (TV_ZEE): Define.
5393         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
5394         and beyond.
5395         * Makefile.in (implicit-zee.o): Add new build file.
5396
5397 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
5398             Nathan Froyd  <froydnj@codesourcery.com>
5399
5400         * c-common.c (sync_resolve_params): Remove write-only variable.
5401
5402 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
5403
5404         * target.h (struct gcc_target): Add mode_dependent_address_p field.
5405         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
5406         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
5407         * targhooks.c (default_mode_dependent_address_p): New function.
5408         * targhooks.h (default_mode_dependent_address_p): Declare function.
5409         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
5410         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
5411         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
5412         target hook. Change return type to bool.
5413         * recog.h (mode_dependent_address_p): Change return type to bool.
5414
5415 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
5416             Nathan Froyd  <froydnj@codesourcery.com>
5417
5418         * tree-mudflap.c (build_function_type_0, build_function_type_1,
5419         build_function_type_2, build_function_type_3): Remove.
5420         (mudflap_init): Use build_function_type_list.
5421
5422 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
5423             Nathan Froyd  <froydnj@codesourcery.com>
5424
5425         * coverage.c (build_fn_info_value): Call build_constructor instead of
5426         build_constructor_from_list.
5427         (build_ctr_info_value): Likewise.
5428         (build_gcov_info): Likewise.
5429
5430 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
5431
5432         * tree.c (build_constructor): Compute TREE_CONSTANT for the
5433         resultant constructor.
5434         (build_constructor_single): Don't set TREE_CONSTANT.
5435         (build_constructor_from_list): Don't compute TREE_CONSTANT.
5436
5437 2010-05-12  Jan Hubicka  <jh@suse.cz>
5438
5439         * cgraph.h (struct varpool_node): Add aux.
5440         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
5441         * varpool.c (varpool_remove_node): Do not remove initializer.
5442         (varpool_reset_queue): Export.
5443         (varpool_finalize_decl): Volatile vars are forced to be output.
5444         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
5445         replaced decl.
5446         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
5447         process_references, varpool_can_remove_if_no_refs): New functions.
5448         (cgraph_remove_unreachable_nodes): Handle variables too.
5449
5450 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
5451
5452         PR target/44088
5453         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
5454
5455 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
5456
5457         PR middle-end/44085
5458         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
5459         change value of ORT_TASK.
5460         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
5461         (omp_notice_threadprivate_variable): New function.
5462         (omp_notice_variable): Call it for threadprivate variables.
5463         If enclosing ctx is a task, print enclosing task rather than
5464         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
5465         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
5466         if task has untied clause.
5467
5468         PR debug/42278
5469         * dwarf2out.c (base_type_die): Don't add name attribute here.
5470         (modified_type_die): Instead of sizetype use
5471         its underlying original type.  If a DW_TAG_base_type doesn't
5472         have name added, add __unknown__.
5473         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
5474         always call force_type_die instead.
5475
5476 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
5477
5478         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
5479         for __stack_chk_guard.
5480
5481 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
5482
5483         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
5484         don't call start_source_file debug hook here...
5485         (finish_options): ... but here, after outputting predefined and
5486         command line defines and undefs.
5487
5488         PR middle-end/44071
5489         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
5490         no fallthru edge.
5491         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
5492         optimizing away empty bb with no successors, move over its
5493         footer chain to fallthru predecessor.
5494         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
5495         (rtl_split_edge): For asm goto call patch_jump_insn even if
5496         splitting fallthru edge.
5497
5498         PR c++/44059
5499         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
5500         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
5501         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
5502         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
5503         on DW.ref.* decls.
5504
5505         PR c++/44062
5506         * c-parser.c (c_parser_expression): Mark LHS of a comma
5507         expression as read if it is a decl, handled component or
5508         COMPOUND_EXPR with that on the RHS.
5509         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
5510         if it is a decl or handled component.
5511
5512 2010-05-11  Jan Hubicka  <jh@suse.cz>
5513
5514         * lto-symtab.c (lto_symtab_free): New function.
5515         * lto-streamer.h (lto_symtab_free): Declare.
5516
5517 2010-05-11  Jan Hubicka  <jh@suse.cz>
5518
5519         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
5520         that if function is needed it is reachable.
5521         (lto_output_node): See if it the function is reachable or referenced.
5522         (output_cgraph): Update call of lto_output_node.
5523         * lto-streamer.h (reachable_from_other_partition_p): Declare.
5524
5525 2010-05-11  Jan Hubicka  <jh@suse.cz>
5526
5527         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
5528         Mark as used.
5529
5530 2010-05-11  Jan Hubicka  <jh@suse.cz>
5531
5532         PR tree-optimize/44063
5533         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
5534         queue.
5535         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
5536         limits.
5537         (estimate_function_body_sizes): Compute sizes even when disregarding.
5538
5539 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
5540
5541         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
5542
5543 2010-05-11  Jan Hubicka  <jh@suse.cz>
5544
5545         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
5546         into every boundary.
5547
5548 2010-05-11  Jan Hubicka  <jh@suse.cz>
5549
5550         * matrix-reorg.c (matrix_reorg): Rebuild edges.
5551
5552 2010-05-11  Jan Hubicka  <jh@suse.cz>
5553
5554         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
5555         lto_streamer_cache_delete): Put nodes into heap.
5556         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
5557         heap.
5558
5559 2010-05-11  Jan Hubicka  <jh@suse.cz>
5560
5561         * cgraphbuild.c (cgraph_rebuild_references): New.
5562         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
5563         out extern inlines.
5564         * cgraph.h (cgraph_rebuild_references): Declare.
5565         * tree-inline.c (tree_function_versioning): Use it.
5566         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
5567
5568 2010-05-11  Jan Hubicka  <jh@suse.cz>
5569
5570         * cgraph.c: Include ipa-utils.h
5571         (cgraph_create_virtual_clone): Update references.
5572         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
5573
5574 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
5575
5576         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
5577         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
5578         cache size.
5579
5580 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
5581
5582         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
5583
5584 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
5585
5586         * gcc.c (execute): For -### don't quote arguments that
5587         contain just alphanumerics and _/-. characters.
5588         * doc/invoke.texi: Document that change for -###.
5589
5590         PR debug/44023
5591         * df-problems.c (struct dead_debug): Add to_rescan field.
5592         (dead_debug_init): Clear to_rescan field.
5593         (dead_debug_finish): Rescan all debug insns in to_rescan
5594         bitmap and free the bitmap.
5595         (dead_debug_insert_before): Instead of rescanning debug insns
5596         immediately queue their rescanning until dead_debug_finish.
5597         (df_note_bb_compute): After dead_debug_add do continue instead
5598         of break.
5599
5600 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
5601
5602         PR debug/44028
5603         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
5604         clear also INSN_REG_USE_LIST.
5605
5606 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5607
5608         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
5609
5610 2010-05-10  Jan Hubicka  <jh@suse.cz>
5611
5612         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
5613         commited change.
5614
5615 2010-05-10  Jan Hubicka  <jh@suse.cz>
5616
5617         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
5618         Allocate encoders.
5619         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
5620         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
5621         (lto_streamer_cache_create): Init alloc pool.
5622         (lto_streamer_cache_delete): Free alloc pool.
5623         * lto-streamer.h: Include alloc pool.
5624         (lto_streamer_cache_d): Use alloc pool.
5625         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
5626
5627 2010-05-10  Jan Hubicka  <jh@suse.cz>
5628
5629         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
5630         * cgraphbuild.c: Include except.h
5631         (record_type_list, record_eh_tables): New function.
5632         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
5633
5634 2010-05-10  Jan Hubicka  <jh@suse.cz>
5635
5636         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
5637         __frame_dummy_init_array_entry, force_to_data): Attribute as used
5638         rather than unused.
5639
5640 2010-05-10  Michael Matz  <matz@suse.de>
5641
5642         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
5643         (can_reassociate_p): Use FLOAT_TYPE_P.
5644         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
5645         (vect_force_simple_reduction): ... this.
5646         * tree-parloops.c (gather_scalar_reductions): Use
5647         vect_force_simple_reduction.
5648         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
5649         vect_is_simple_reduction, add modify argument, if true rewrite
5650         "a-b" into "a+(-b)".
5651         (vect_is_simple_reduction, vect_force_simple_reduction): New
5652         functions.
5653         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
5654
5655 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
5656             Vladimir Makarov  <vmakarov@redhat.com>
5657
5658         PR rtl-optimization/44012
5659         * ira-build.c (remove_unnecessary_allocnos): Nullify
5660         regno_allocno_map of the removed allocno.
5661
5662 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5663
5664         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
5665         to /dev/null.
5666         * configure: Regenerate.
5667
5668 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5669
5670         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
5671         unused.
5672         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
5673         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
5674         support in Sun ld.
5675         * configure: Regenerate.
5676
5677 2010-05-10  Richard Guenther  <rguenther@suse.de>
5678
5679         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
5680         marked if the entry identifier is marked.
5681
5682 2010-05-10  Richard Guenther  <rguenther@suse.de>
5683
5684         * c-common.c (struct c_common_attributes): Add fnspec attribute.
5685         (handle_fnspec_attribute): New function.
5686         * gimple.h (gimple_call_return_flags): Declare.
5687         (gimple_call_arg_flags): Likewise.
5688         * gimple.c (gimple_call_arg_flags): New function.
5689         (gimple_call_return_flags): Likewise.
5690         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
5691         New argument flags.
5692         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
5693         return value flags.
5694         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
5695         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
5696         main work to ...
5697         (make_heapvar_for): ... this new function.
5698         (handle_rhs_call): Handle fnspec attribute argument specifiers.
5699         (handle_lhs_call): Likewise.
5700         (find_func_aliases): Adjust.
5701
5702 2010-05-10  Richard Guenther  <rguenther@suse.de>
5703
5704         PR tree-optimization/44050
5705         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
5706
5707 2010-05-10  Wei Guozhi  <carrot@google.com>
5708
5709         PR target/42879
5710         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
5711
5712 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
5713
5714         PR c/10676
5715         * c-typeck.c (lookup_field): Take a type directly.  Update
5716         recursive calls.
5717         (build_component_ref): Update call to lookup_field.
5718         (set_init_label): Use lookup_field to find initialized field.
5719         Handle returned list of fields like a sequence of designators.
5720
5721 2010-05-09  Richard Guenther  <rguenther@suse.de>
5722
5723         PR middle-end/44024
5724         * fold-const.c (tree_single_nonzero_warnv_p): Properly
5725         handle &FUNCTION_DECL.
5726
5727 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
5728
5729         PR c/4784
5730         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
5731         structures and unions recursively.
5732         (detect_field_duplicates): Move duplicate detection with a hash to
5733         detect_field_duplicates_hash.  Always use a hash if anonymous
5734         structures or unions are present.
5735         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
5736         give errors.
5737
5738 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
5739
5740         PR target/44046
5741         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
5742         detect Atom, Core 2 and Core i7.
5743
5744 2010-05-09  Richard Guenther  <rguenther@suse.de>
5745
5746         * gcc.c (store_arg): Handle temporary file deletion for
5747         joined arguments.
5748
5749 2010-05-09  Richard Guenther  <rguenther@suse.de>
5750
5751         PR middle-end/44043
5752         * ipa-inline.c (estimate_function_body_sizes): Return after
5753         disregarding inline limits.
5754
5755 2010-05-09  Richard Guenther  <rguenther@suse.de>
5756
5757         * gcc.c (store_arg): Revert last change.
5758
5759 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
5760
5761         PR middle-end/28685
5762         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
5763         (optimize_ops_list): Call it.
5764
5765 2010-05-08  Richard Guenther  <rguenther@suse.de>
5766
5767         PR tree-optimization/44030
5768         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
5769         NECESSARY flag if we propagate from a inserted expression.
5770
5771 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
5772
5773         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
5774         domain types as equal if they are both PLACEHOLDER_EXPRs.
5775
5776 2010-05-08  Richard Guenther  <rguenther@suse.de>
5777
5778         * lto-wrapper.c (run_gcc): Remove linker output from
5779         command line for LTRANS invocation.
5780
5781 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
5782
5783         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
5784         lto-macho as lto_binary_reader.
5785         * target.h (struct gcc_target): New hooks lto_start and lto_end.
5786         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
5787         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
5788         in lto_start and lto_end calls.
5789         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
5790         magic numbers.
5791         (scan_prog_file): Update is_elf_or_coff call.
5792         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
5793
5794         * collect2.c (main): Fix enum comparison.
5795
5796         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
5797         Add prototypes.
5798         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
5799         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
5800         and TARGET_ASM_LTO_END.
5801         * darwin.c: Include obstack.h and lto-streamer.h.
5802         (lto_section_names_offset, lto_section_names_obstack,
5803         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
5804         global variables.
5805         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
5806         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
5807         to a temporary file.
5808         (darwin_asm_lto_end): New function.  Restore asm_out_file.
5809         (darwin_asm_named_section): For LTO sections, replace the name with
5810         the offset of the section name in a string table, and build this
5811         table.
5812         (darwin_file_start): Initialize global vars for LTO support.
5813         (darwin_file_end): If output to asm_out_file was redirected, append it
5814         to the proper asm_out_file here.  Add the section names section.
5815
5816 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
5817
5818         * c-pragma.c (pending_weak_d, pending_weak): New.
5819         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
5820         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
5821         handle_pragma_weak): Update the uses of pending_weaks.
5822
5823 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5824
5825         PR documentation/44016
5826         * doc/standards.texi (Standards): Link to unversioned
5827         cxx0x_status.html page.
5828
5829 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
5830
5831         PR target/43708
5832         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
5833         in addition to TREE_USED, to avoid "set but unused" warnings.
5834
5835 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
5836
5837         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
5838         (is_loop_prefetching_profitable): Do not insert prefetches
5839         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
5840         times the prefetch ahead distance.
5841
5842 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
5843
5844         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
5845         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
5846         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
5847         the unroll_factor.
5848
5849 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
5850
5851         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
5852         a diagnostic info when the insn-to-mem ratio is too small.
5853
5854 2010-05-07  Richard Guenther <rguenther@suse.de>
5855
5856         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
5857         the linker plugin.
5858         (store_arg): Queue temp_filename for deletion instead of
5859         the whole argument.
5860
5861 2010-05-07  Richard Guenther  <rguenther@suse.de>
5862
5863         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
5864         (run_gcc): Handle LTRANS phase invocation.
5865         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
5866
5867 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
5868
5869         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
5870         this is also meaningful on PARM_DECLs and RESULT_DECLs.
5871
5872 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5873
5874         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
5875
5876 2010-05-07  Richard Guenther  <rguenther@suse.de>
5877
5878         PR tree-optimization/44020
5879         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
5880         code when PRE is not yet initialized.
5881
5882 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5883
5884         * config/mips/dbxmdebug.h: Remove.
5885         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
5886
5887 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
5888
5889         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
5890         with null pointer and also warn about ordered comparison of zero with
5891         pointer if -Wextra.
5892
5893 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5894
5895         * graphite-blocking.c
5896         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
5897         * graphite-clast-to-gimple.c
5898         (clast_to_gcc_expression): Same.
5899         (precision_for_value): Same.
5900         (precision_for_interval): Same.
5901         (gcc_type_for_interval): Same.
5902         (graphite_create_new_guard): Same.
5903         (compute_bounds_for_level): Same.
5904         (graphite_create_new_loop_guard): Same.
5905         * graphite-interchange.c
5906         (build_linearized_memory_access): Same.
5907         (pdr_stride_in_loop): Same.
5908         (memory_strides_in_loop_1): Same.
5909         (memory_strides_in_loop): Same.
5910         (extend_scattering): Same.
5911         (psct_scattering_dim_for_loop_depth): Same.
5912         (pbb_number_of_iterations): Same.
5913         * graphite-poly.h
5914         (debug_iteration_domains): Same.
5915         * graphite-ppl.c
5916         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
5917         (ppl_set_inhomogeneous_gmp): Same.
5918         (ppl_strip_loop): Same.
5919         (ppl_lexico_compare_linear_expressions): Same.
5920         (ppl_read_polyhedron_matrix): Same.
5921         (ppl_max_for_le_pointset): Same.
5922         * graphite-ppl.h
5923         (ppl_read_polyhedron_matrix): Same.
5924         (tree_int_to_gmp): Same.
5925         (gmp_cst_to_tree): Same.
5926         (ppl_set_inhomogeneous): Same.
5927         (ppl_set_inhomogeneous_tree): Same.
5928         (ppl_set_coef): Same.
5929         (ppl_set_coef_tree): Same.
5930         * graphite-sese-to-poly.c
5931         (build_pbb_scattering_polyhedrons): Same.
5932         (build_scop_scattering): Same.
5933         (scan_tree_for_params_right_scev): Same.
5934         (scan_tree_for_params): Same.
5935         (find_params_in_bb): Same.
5936         (find_scop_parameters): Same.
5937         (add_upper_bounds_from_estimated_nit): Same.
5938         (build_loop_iteration_domains): Same.
5939         (add_condition_to_domain): Same.
5940         (pdr_add_memory_accesses): Same.
5941
5942 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5943
5944         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
5945         CLooG's value_* macros to their respective mpz_* counterparts.
5946         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
5947         (graphite_create_new_loop_guard): Same.
5948         * graphite-interchange.c (build_linearized_memory_access): Same.
5949         (pdr_stride_in_loop): Same.
5950         (memory_strides_in_loop_1): Same.
5951         (1st_interchange_profitable_p): Same.
5952         * graphite-poly.c (extend_scattering): Same.
5953         (psct_scattering_dim_for_loop_depth): Same.
5954         (pbb_number_of_iterations): Same.
5955         (pbb_number_of_iterations_at_time): Same.
5956         * graphite-poly.h (new_1st_loop): Same.
5957         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
5958         (oppose_constraint): Same.
5959         (insert_constraint_into_matrix): Same.
5960         (ppl_set_inhomogeneous_gmp): Same.
5961         (ppl_set_coef_gmp): Same.
5962         (ppl_strip_loop): Same.
5963         (ppl_lexico_compare_linear_expressions): Same.
5964         (ppl_max_for_le_pointset): Same.
5965         (ppl_min_for_le_pointset): Same.
5966         (ppl_build_realtion): Same.
5967         * graphite-ppl.h (gmp_cst_to_tree): Same.
5968         (ppl_set_inhomogeneous): Same.
5969         (ppl_set_inhomogeneous_tree): Same.
5970         (ppl_set_coef): Same.
5971         (ppl_set_coef_tree): Same.
5972         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
5973         (build_scop_scattering): Same.
5974         (add_value_to_dim): Same.
5975         (scan_tree_for_params_right_scev): Same.
5976         (scan_tree_for_params_int): Same.
5977         (scan_tree_for_params): Same.
5978         (find_params_in_bb): Same.
5979         (find_scop_parameters): Same.
5980         (add_upper_bounds_from_estimated_nit): Same.
5981         (build_loop_iteration_domains): Same.
5982         (create_linear_expr_from_tree): Same.
5983         (add_condition_to_domain): Same.
5984         (pdr_add_memory_accesses): Same.
5985
5986 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
5987             Jason Merrill  <jason@redhat.com>
5988
5989         * c-common.c (c_common_reswords): Add nullptr.
5990         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
5991         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
5992         (gen_type_die_with_usage): Likewise.
5993         * dbxout.c (dbxout_type): Likewise.
5994         * sdbout.c (plain_type_1): Likewise.
5995
5996 2010-05-06  Jason Merrill  <jason@redhat.com>
5997
5998         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
5999         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
6000         ret appropriately.
6001         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
6002
6003         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
6004         stripping WITH_SIZE_EXPR.
6005         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
6006         change.
6007
6008 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6009
6010         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
6011         list of obsolete configurations.
6012         Disabled check for obsolete configurations.
6013         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
6014         Removed support for previous versions.
6015         * config/mips/iris.h: Removed.
6016         * config/mips/iris5.h: Removed.
6017         * config/mips/iris6.h: Merged old iris.h contents.
6018         (TARGET_IRIX): Removed.
6019         (DRIVER_SELF_SPECS): Removed mabi=32.
6020         (IDENT_ASM_OP): Removed undef.
6021         (STARTFILE_SPEC): Removed mabi=32.
6022         (ENDFILE_SPEC): Likewise.
6023         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
6024         (MACHINE_TYPE): Update for IRIX 6.5.
6025         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
6026         TARGET_IRIX by TARGET_IRIX6.
6027         (mips_file_start): Likewise.
6028         (mips_output_external): Remove IRIX 5/6 O32 support.
6029         (mips_output_function_prologue): Likewise.
6030         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
6031         TARGET_IRIX6.
6032         (TARGET_CPU_CPP_BUILTINS): Likewise.
6033         (TARGET_IRIX): Removed.
6034         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
6035         (MULTILIB_DIRNAMES): Removed 32.
6036         (MULTILIB_OSDIRNAMES): Removed ../lib.
6037         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
6038         (Specific, mips-sgi-irix5): Document removal.
6039         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
6040         Remove references to older IRIX 6 releases and the O32 ABI.
6041
6042 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
6043
6044         PR bootstrap/43994
6045         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
6046         instead of DF_REF_REAL_REG.
6047
6048 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
6049
6050         PR target/43888
6051         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
6052         handling to still return true for x64 targets.
6053
6054 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
6055
6056         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
6057
6058 2010-05-06  Jan Hubicka  <jh@suse.cz>
6059
6060         PR tree-optimization/43791
6061         * ipa-inline.c (update_caller_keys): Remove bogus
6062         disregard_inline_limits check.
6063
6064 2010-05-06  Michael Matz  <matz@suse.de>
6065
6066         PR tree-optimization/43984
6067         * tree-ssa-pre.c (inserted_phi_names): Remove.
6068         (inserted_exprs): Change to bitmap.
6069         (create_expression_by_pieces): Set bits, don't append to vector.
6070         (insert_into_preds_of_block): Don't handle inserted_phi_names.
6071         (eliminate): Don't look at inserted_phi_names, remove deleted
6072         insns from inserted_exprs.
6073         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
6074         (init_pre, fini_pre): Allocate and free bitmaps.
6075         (execute_pre): Insert insns on edges before elimination.
6076
6077 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
6078
6079         * tree.c (initializer_zerop): Handle STRING_CST.
6080
6081 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6082
6083         PR 40989
6084         * doc/invoke.texi (Wimplicit): Document as C only.
6085         * opts.c (common_handle_option): Add argument kind.
6086         (handle_option): Rename as read_cmdline_option. Factor out code to...
6087         (handle_option): ... here. New.
6088         (handle_options): Rename as read_cmdline_options.
6089         (decode_options): Update call.
6090         (set_option): Use option index instead of option pointer. Classify
6091         diagnostics correctly.
6092         (enable_warning_as_error): Call handle_option.
6093         * opts.h (set_option): Update declaration.
6094         (handle_option): Declare.
6095         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
6096         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
6097         * c-opts.c (set_Wimplicit): Delete.
6098         (c_family_lang_mask): New static constant.
6099         (c_common_handle_option): Add argument kind. Use handle_option
6100         instead of set_Wimplicit.
6101         (c_common_post_options): warn_implicit and warn_implicit_int
6102         are disabled by default.
6103         * c-common.c (warn_implicit): Do not define here.
6104         * c-common.h (warn_implicit): Do not declare here.
6105         (c_common_handle_option): Update declaration.
6106         * lto-opts.c (lto_reissue_options): Update call to set_option.
6107
6108 2010-05-06  Richard Guenther  <rguenther@suse.de>
6109
6110         PR tree-optimization/43571
6111         * domwalk.c (walk_dominator_tree): Walk the dominator
6112         sons in more optimal order.
6113
6114 2010-05-06  Richard Guenther  <rguenther@suse.de>
6115
6116         PR tree-optimization/43934
6117         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
6118         (stmt_cost): Likewise.
6119         (extract_true_false_args_from_phi): New helper.
6120         (determine_max_movement): For PHI nodes verify we can hoist them
6121         and compute their cost.
6122         (determine_invariantness_stmt): Handle PHI nodes.
6123         (move_computations_stmt): Likewise.  Hoist PHI nodes in
6124         if-converted form using COND_EXPRs.
6125         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
6126         (tree_ssa_lim): Likewise.
6127         * tree-flow.h (tree_ssa_lim): Adjust prototype.
6128         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
6129
6130 2010-05-06  Richard Guenther  <rguenther@suse.de>
6131
6132         PR tree-optimization/43987
6133         * tree-ssa-structalias.c (could_have_pointers): For possibly
6134         address-taken variables force pointers to be recorded.
6135         (create_variable_info_for_1): Likewise.
6136         (push_fields_onto_fieldstack): Pass in wheter all fields
6137         must have pointers.
6138         (find_func_aliases): Query types instead of vars whether
6139         they contain pointers where appropriate.
6140
6141 2010-05-06  Jan Hubicka  <jh@suse.cz>
6142
6143         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
6144         (record_reference, mark_address, mark_load, mark_store): Record
6145         references.
6146         (record_references_in_initializer): Update call of record_references.
6147         (rebuild_cgraph_edges): Remove all references before rebuiding.
6148         * cgraph.c (cgraph_create_node): Clear ref list.
6149         (cgraph_remove_node): Remove references.
6150         (dump_cgraph_node): Dump references.
6151         (cgraph_clone_node): Clone references.
6152         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
6153         (struct cgraph_node, varpool_node): Add ref_lst.
6154         * ipa-ref.c: New file.
6155         * ipa-ref.h: New file.
6156         * ipa-ref-inline.h: New file.
6157         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
6158         (referenced_from_other_partition_p): New function.
6159         (lto_output_varpool_node): Take set arugment; call
6160         referenced_from_other_partition.
6161         (lto_output_ref): New.
6162         (add_references): New.
6163         (output_refs): New.
6164         (output_cgraph): Compute boundary based on references; output refs.
6165         (output_varpool): Accept cgraph_node_set argument.
6166         (input_ref): New.
6167         (input_refs): New.
6168         (input_cgraph): Call input_refs.
6169         * lto-section-in.c (lto_section_name): Add refs.
6170         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
6171         (ipa-ref.o): New file.
6172         * varpool.c (varpool_node): Clear ipa ref list.
6173         (varpool_remove_node): Remove references.
6174         (dump_varpool_node): Dump references.
6175         (varpool_assemble_decl): Only compile finalized ones.
6176         (varpool_extra_name_alias): Initialize ref list.
6177         * lto-streamer.c (lto-get_section_name): Add .refs section.
6178         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
6179         (referenced_from_other_partition_p): Declared.
6180
6181 2010-05-06  Ira Rosen  <irar@il.ibm.com>
6182
6183         PR tree-optimization/43901
6184         * tree-vect-stmts.c (vectorizable_call): Assert that vector
6185         type is not NULL if it's transformation phase, and return
6186         FALSE if it's analysis.
6187         (vectorizable_conversion, vectorizable_operation,
6188         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
6189
6190 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
6191
6192         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
6193         Delete.
6194         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
6195         New define.
6196         * config/mips/mips-protos.h
6197         (mips_small_register_classes_for_mode_p): Delete prototype.
6198
6199 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
6200
6201         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
6202         * config/arm/arm.c (multiple_operation_profitable_p,
6203         compute_offset_order): New static functions.
6204         (load_multiple_sequence, store_multiple_sequence): Use them.
6205         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
6206         memory offsets, not register numbers.
6207         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
6208
6209 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
6210
6211         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
6212         (get_pending_sizes, put_pending_size, put_pending_sizes):
6213         Update the uses of pending_sizes.
6214         * c-decl.c (store_parm_decls): Likewise.
6215         * c-tree.h (struct c_arg_info): Likewise.
6216         * tree.h: Update the prototype for get_pending_sizes and
6217         put_pending_sizes.
6218
6219 2010-05-05  Jason Merrill  <jason@redhat.com>
6220
6221         PR debug/43370
6222         * c-common.c (handle_aligned_attribute): Respect
6223         ATTR_FLAG_TYPE_IN_PLACE.
6224
6225         PR testsuite/43758
6226         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
6227         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
6228         (TARGET_INITIALIZER): Use it.
6229         * c-common.c (attribute_takes_identifier_p): Call it.
6230         * c-common.h: Update prototype.
6231         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
6232         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
6233
6234 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
6235
6236         PR debug/43950
6237         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
6238         DW_ID_down_case for Fortran compilation units.
6239
6240 2010-05-05  Jan Hubicka  <jh@suse.cz>
6241
6242         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
6243         handle aliases.
6244
6245 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6246
6247         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
6248         a variable-sized RESULT_DECL.
6249
6250 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
6251
6252         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
6253
6254 2010-05-05  Jason Merrill  <jason@redhat.com>
6255
6256         PR c++/43787
6257         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
6258         returns GS_OK.
6259         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
6260
6261 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
6262             Jakub Jelinek  <jakub@redhat.com>
6263
6264         PR debug/43478
6265         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
6266         (dead_debug_init, dead_debug_finish): New functions.
6267         (dead_debug_add, dead_debug_insert_before): Likewise.
6268         (df_note_bb_compute): Initialize a dead_debug object, add dead
6269         debug uses to it, insert debug bind insns before death insns,
6270         reset debug insns that refer to pending uses at the end.
6271         * rtl.h (make_debug_expr_from_rtl): New prototype.
6272         * varasm.c (make_debug_expr_from_rtl): New function.
6273
6274 2010-05-05  Jan Hubicka  <jh@suse.cz>
6275
6276         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
6277         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
6278         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
6279         lto_varpool_encoder_deref, lto_varpool_encoder_size,
6280         lto_varpool_encoder_encode_initializer_p,
6281         lto_set_varpool_encoder_encode_initializer): New functions.
6282         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
6283         call output_varpool.
6284         (input_varpool_node): Do not always set analyzed.
6285         (input_cgraph_1): Return vector of cgraph nodes.
6286         (input_varpool_1): Return vector of varpools.
6287         (input_cgraph): Free the vectors.
6288         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6289         output only initializers needed.
6290         (lto_output): Only call output_cgraph.
6291         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
6292         * lto-section-out.c (lto_new_out_decl_state): Initialize
6293         state->varpool_node_encoder.
6294         * lto-streamer.h (lto_varpool_encoder_d): New.
6295         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
6296         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
6297         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
6298         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
6299         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
6300         Declare.
6301         (output_varpool, input_varpool): Remove declarations.
6302
6303 2010-05-05  Jan Hubicka  <jh@suse.cz>
6304
6305         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
6306         with body can prevail.
6307
6308 2010-05-05  Jan Hubicka  <jh@suse.cz>
6309
6310         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
6311         size.
6312
6313 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6314
6315         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
6316
6317         * gengtype.h (erro_at_line): Constify pos argument.
6318
6319         * gengtype.c: Include hashtab.h.
6320         (enum gc_used): Document GC_MAYBE_POINTED_TO.
6321         (error_at_line): Constify pos argument.
6322         (do_typedef): Initialize p->opt field.
6323         (get_file_gtfilename): Fix comment typo.
6324         (struct walk_type_data): Constify line field.
6325         (get_output_file_for_structure): New function.
6326         (write_local_func_for_structure): Constify orig_s argument.
6327         Use get_output_file_for_structure.
6328         (write_func_for_structure): Use get_output_file_for_structure.
6329         (INDENT): New define.
6330         (dump_pair, dump_type, dump_type_list, dump_typekind)
6331         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
6332         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
6333         functions.
6334         (seen_types): New variable.
6335         (main): New variable do_dump.  Process "-d" command line option.
6336         Call dump_everything if dump requested.
6337
6338 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
6339
6340         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
6341         in a temporary instead of invoking the macro multiple times.
6342         (track_expr_p): Likewise.
6343
6344 2010-05-04  Neil Vachharajani <nvachhar@google.com>
6345
6346         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
6347         per new semantics.
6348         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
6349         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
6350         conditions for printing notes.
6351         * common.opt (-Wcoverage-mismatch): Allow negative, default to
6352         true, update documentation.
6353         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
6354
6355 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
6356
6357         PR c/43981
6358         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
6359         on dimen.
6360
6361 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
6362
6363         PR target/43799
6364         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
6365         (*sse_prologue_save_insn1): Likewise.
6366         (SSE prologue save splitter): Likewise.
6367
6368 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
6369
6370         * tree.c (free_lang_data_in_one_sizepos): New inline function.
6371         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
6372         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
6373         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
6374         all decls.  Call it on DECL_FIELD_OFFSET of fields.
6375         (find_decls_types_r): Follow DECL_VALUE_EXPR.
6376         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
6377
6378 2010-05-04  Martin Jambor  <mjambor@suse.cz>
6379
6380         * tree-sra.c (build_access_from_expr_1): The first parameter type
6381         changed to simple tree.
6382         (build_access_from_expr): Likewise, gsi parameter was eliminated.
6383         (scan_assign_result): Renamed to assignment_mod_result, enum elements
6384         renamed as well.
6385         (build_accesses_from_assign): Removed all parameters except for a
6386         simple gimple statement.  Now returns a simple bool.
6387         (scan_function): All non-analysis parts moved to separate functions
6388         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
6389         parameters and updated both callers.
6390         (sra_modify_expr): Removed parameter data.
6391         (sra_modify_function_body): New function.
6392         (perform_intra_sra): Call sra_modify_function_body to modify the
6393         function body.
6394         (replace_removed_params_ssa_names): Parameter data changed into
6395         adjustments vector.
6396         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
6397         changed the parameter dont_convert to convert with the opposite
6398         meaning.
6399         (sra_ipa_modify_assign): Parameter data changed into adjustments
6400         vector, return value changed to bool.
6401         (ipa_sra_modify_function_body): New function.
6402         (sra_ipa_reset_debug_stmts): Updated a comment.
6403         (modify_function): Use ipa_sra_modify_function_body to modify function
6404         body.
6405
6406 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
6407
6408         PR middle-end/43671
6409         * alias.c (true_dependence): Handle the same VALUE in x and mem.
6410         (canon_true_dependence): Likewise.
6411         (write_dependence_p): Likewise.
6412
6413 2010-05-04  Jan Hubicka  <jh@suse.cz>
6414
6415         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
6416         * cgraphbuild.c: Include ipa-utils.h
6417         (record_reference_ctx): New struct.
6418         (record_reference): Simplify to work on initializers; not statements.
6419         (mark_address, mark_load, mark_store): New.
6420         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
6421         walk PHI nodes too.
6422         (record_references_in_initializer): Update use of record_reference.
6423         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
6424         walk PHI nodes too.
6425
6426 2010-05-04  Jan Hubicka  <jh@suse.cz>
6427
6428         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
6429         node will be removed anyway.
6430         (lto_varpool_replace_node): Allow also unanalyzed nodes;
6431         relink aliases of node into prevailing node.
6432         * varpool.c (varpool_remove_node): Remove aliases properly;
6433         when removing node, remove all its aliases too; remove DECL_INITIAL
6434         of removed node; ggc_free the varpool node.
6435
6436 2010-05-04  Richard Guenther  <rguenther@suse.de>
6437
6438         PR tree-optimization/43879
6439         * tree-ssa-structalias.c (alias_get_name): Use
6440         DECL_ASSEMBLER_NAME if available.
6441         (create_function_info_for): Return the varinfo node.
6442         (ipa_pta_execute): Associate same-body aliases and extra names
6443         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
6444
6445 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
6446
6447         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
6448
6449 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
6450
6451         PR bootstrap/43964
6452         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
6453         only if HONOR_REG_ALLOC_ORDER is not defined.
6454
6455 2010-05-04  Richard Guenther  <rguenther@suse.de>
6456
6457         PR tree-optimization/43949
6458         * tree-vrp.c (extract_range_from_binary_expr): Only handle
6459         TRUNC_MOD_EXPR.
6460
6461 2010-04-26  Jason Merrill  <jason@redhat.com>
6462
6463         * c.opt (-fstrict-enums): New.
6464         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
6465
6466 2010-05-03  David Ung <davidu@mips.com>
6467             James E. Wilson  <wilson@codesourcery.com>
6468
6469         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
6470         emit the trap instruction before the divide for TUNE_74K.
6471
6472 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
6473
6474         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
6475         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
6476         based on the above, for new target hook.
6477
6478         * hooks.c (hook_bool_mode_true): New generic hook.
6479         * hooks.h (hook_bool_mode_true): Add prototype.
6480
6481         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
6482         target hook.
6483         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
6484         target hook, set to hook_bool_mode_false.
6485         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
6486         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
6487         with targetm.small_register_classes_for_mode_p.
6488         (find_reusable_reload): Likewise.
6489         (combine_reloads): Likewise.
6490         * reload1.c (reload_as_needed): Likewise.
6491         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
6492         * ifcvt.c (noce_process_if_block, check_cond_move_block,
6493         dead_or_predicable): Likewise.
6494         * regmove.c (optimize_reg_copy_1): Likewise.
6495         * calls.c (prepare_call_address): Likewise.
6496         (precompute_register_parameters): Likewise.
6497
6498         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
6499         hook definition.
6500         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
6501         implementation of the hook that considers all register classes
6502         small except for SH64.
6503         (sh_override_options): Use the new hook.
6504         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
6505         Add prototype.
6506
6507         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
6508         hook definition.
6509         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
6510         implementation of the hook that considers all register classes
6511         small for THUMB1.
6512         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
6513         Add prototype.
6514
6515         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
6516         hook definition.
6517         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
6518         implementation of the hook that considers all register classes
6519         small for MIPS16.
6520         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
6521         Add prototype.
6522
6523         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
6524         hook definition.
6525         * config/m32c/m32c.h: Likewise.
6526         * config/pdp11/pdp11.h: Likewise.
6527         * config/avr/avr.h: Likewise.
6528         * config/xtensa/xtensa.h: Likewise.
6529         * config/m68hc11/m68hc11.h: Likewise.
6530         * config/mn10300/mn10300.h: Likewise.
6531         * config/mcore/mcore.h: Likewise.
6532         * config/h8300/h8300.h: Likewise.
6533         * config/bfin/bfin.h: Likewise.
6534
6535         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
6536         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
6537
6538 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
6539
6540         * double-int.h (tree_to_double_int): Remove macro.
6541         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
6542         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
6543         (tree_to_double_int): New function.
6544         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
6545         Move ...
6546         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
6547
6548 2010-05-03  Richard Guenther  <rguenther@suse.de>
6549
6550         PR tree-optimization/43971
6551         * tree-ssa-structalias.c (get_constraint_for_1): Fix
6552         constraints in the !flag_delete_null_pointer_checks case.
6553
6554 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
6555
6556         PR debug/43972
6557         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
6558         result mode matches original rtl mode.
6559
6560 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
6561
6562         PR target/43888
6563         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
6564
6565 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
6566
6567         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
6568         when processing flag options.
6569
6570 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
6571
6572         * gcov-iov.c (main): Change format string placeholder
6573         from %#08x to 0x%08x.
6574         * genchecksum.c (dosum): Change format string placeholder
6575         from %#02x to 0x%02x.
6576
6577 2010-05-02  Richard Guenther  <rguenther@suse.de>
6578
6579         PR tree-optimization/43879
6580         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
6581
6582 2010-05-02  Bruno Haible  <bruno@clisp.org>
6583
6584         * doc/extend.texi (Function Attributes): Fix a typo.
6585
6586 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
6587
6588         Revert:
6589         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
6590         placeholder from 0x%x to %#x.
6591         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
6592         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
6593         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
6594         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
6595         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
6596         * config/i386/i386.c (ix86_target_string): Ditto.
6597         * config/i386/i386.c (output_pic_addr_const): Ditto.
6598         (print_operand): Ditto.
6599
6600 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
6601
6602         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
6603         placeholder from 0x%x to %#x.
6604         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
6605         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
6606         (ASM_OUTPUT_DEBUG_DATA): Ditto.
6607         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
6608         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
6609         * optc-gen.awk: Ditto.
6610         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
6611         (HOST_WIDE_INT_PRINT_HEX): Ditto.
6612         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
6613         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
6614
6615 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
6616
6617         * target.h (struct calls): Add function_value_regno_p field.
6618         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
6619         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
6620         * targhooks.c (default_function_value_regno_p): New function.
6621         * targhooks.h (default_function_value_regno_p): Declare function.
6622         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
6623         * builtins.c. (apply_result_size): (Ditto.).
6624         * combine.c. (likely_spilled_retval_p): (Ditto.).
6625         * mode-switching.c. Include 'target.h'.
6626         (create_pre_exit): Use function_value_regno_p hook.
6627         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
6628         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
6629         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
6630
6631         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
6632         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
6633         (ix86_function_value_regno_p): Declare as static, change argument
6634         type to const unsigned int.
6635         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
6636
6637 2010-05-01  Richard Guenther  <rguenther@suse.de>
6638
6639         PR tree-optimization/43949
6640         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
6641         types.
6642         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
6643
6644 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
6645
6646         * rtl.h (CONST_DOUBLE_P): Define.
6647         (rtx_to_double_int): Declare.
6648         * emit-rtl.c (rtx_to_double_int): New function.
6649         * dwarf2out.c (insert_double): New function.
6650         (loc_descriptor, add_const_value_attribute): Clean up, use
6651         rtx_to_double_int and insert_double functions.
6652
6653 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
6654
6655         * doc/extend.texi (Inline): Add missing return keyword to examples.
6656         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
6657         "command-line".
6658
6659 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
6660
6661         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
6662         the variable part of the offset as well.  Use highest_pow2_factor for
6663         all alignment checks.
6664
6665 2010-04-30  Richard Guenther  <rguenther@suse.de>
6666
6667         PR tree-optimization/43879
6668         * tree-ssa-structalias.c (type_could_have_pointers): Functions
6669         can have pointers.
6670
6671 2010-04-30  Jan Hubicka  <jh@suse.cz>
6672
6673         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
6674         varpool.
6675         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
6676
6677 2010-04-30  Jan Hubicka  <jh@suse.cz>
6678
6679         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
6680         New.
6681         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
6682         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
6683         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
6684         cgraph_node_set_needs_ltrans_p): Remove.
6685
6686 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
6687
6688         * sdbout.c: Include vec.h, do not include varray.h.
6689         (deferred_global_decls, sdbout_global_decl,
6690         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
6691         * toplev.c: Do not include varray.h.
6692         (dump_memory_report): Do not dump VARRAY statistics.
6693         * gengtype.c (open_base_file): Ignore varray.h.
6694         * Makefile.in: Update for abovementioned changes.
6695         Remove all traces of varray.c and varray.h.
6696         * varray.c: Remove file.
6697         * varray.h: Remove file.
6698
6699 2010-04-30  Jan Hubicka  <jh@suse.cz>
6700
6701         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
6702         references.
6703
6704 2010-04-30  Jan Hubicka  <jh@suse.cz>
6705
6706         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
6707         needed.
6708
6709 2010-04-30  Richard Guenther  <rguenther@suse.de>
6710
6711         * tree-ssa-structalias.c (get_constraint_for_1): Generate
6712         constraints for CONSTRUCTOR.
6713
6714 2010-04-30  Richard Guenther  <rguenther@suse.de>
6715
6716         PR lto/43946
6717         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
6718         first after all lowering passes.
6719
6720 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
6721
6722         * toplev.c: Include varray.h for statistics dumping.
6723         * tree.h: Do not declare varray_head_tag.
6724         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
6725         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
6726         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
6727         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
6728         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
6729         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
6730         c-common.c, c-common.h, reg-stack.c, basic-block.h,
6731         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
6732         include varray.h.
6733         * Makefile.in: Update for abovementioned changes.
6734
6735 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
6736
6737         PR debug/43942
6738         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
6739
6740 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
6741
6742         * config/picochip/picochip.c (picochip_legitimize_address): Define.
6743         Use this function to do machine-specific conversion.
6744         (picochip_legitimize_reload_address): Likewise.
6745         (picochip_legitimate_address_p): Check valid base register only if
6746         strict.
6747         (picochip_check_conditional_copy): Check for modw only if opnd is
6748         register.
6749         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
6750         to call the function in c.
6751         * config/picochip/picochip-protos.h
6752         (picochip_legitimize_reload_address): Define.
6753         * config/picochip/picochip.md (supported_compare1): Define.
6754
6755 2010-04-30  Jan Hubicka  <jh@suse.cz>
6756
6757         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
6758         (cgraph_global_info): Remove inlined.
6759         (LTO_cgraph_tag_names): Remove.
6760         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
6761         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
6762         simplify cgraph tags and document.
6763         (lto_output_node): Use only LTO_cgraph_unavail_node and
6764         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
6765         for_functions_valid, global info, process and output flags.
6766         (input_overwrite_node): Initialize estimated stack size and
6767         estimated growth.  Do not read flags we no longer store.
6768         (input_node): Likewise do not read info no longer stored.
6769         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
6770         flag.
6771
6772 2010-04-30  Richard Guenther  <rguenther@suse.de>
6773
6774         PR tree-optimization/43879
6775         * tree-ssa-structalias.c (get_constraint_for_1): Properly
6776         handle non-zero initializers.
6777
6778 2010-04-30  Richard Guenther  <rguenther@suse.de>
6779
6780         * builtins.c (fold_builtin_1): Delete free (0).
6781
6782 2010-04-29  Jan Hubicka  <jh@suse.cz>
6783
6784         * gengtype.c (open_base_files): Add lto-streamer.h
6785         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
6786         (pass_ipa_cp): GGC collect.
6787         * toplev. (compile_file): Do not output symbols.
6788         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
6789         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
6790         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
6791         * lto-section-in.c: Include ggc.h
6792         (lto_new_in_decl_state): Alloc in GGC.
6793         (lto_delete_in_decl_state): Likewise.
6794         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
6795         Collect.
6796
6797 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
6798
6799         PR target/42895
6800         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
6801         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
6802         (HONOR_REG_ALLOC_ORDER): Describe new macro.
6803         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
6804         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
6805         account only if HONOR_REG_ALLOC_ORDER is not defined.
6806         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
6807         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
6808
6809 2010-04-29  Jon Grant  <04@jguk.org>
6810
6811         * collect2.c (vflag): Change type from int to bool.
6812         (debug): Likewise.
6813         (helpflag): New global bool.
6814         (main): Set vflag and debug with boolean, not integer truth values.
6815         Accept new "--help" option and output usage text if found.
6816         * collect2.h (vflag): Update prototype.
6817         (debug): Likewise.
6818
6819 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
6820
6821         PR bootstrap/43936
6822         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
6823
6824 2010-04-29  Richard Guenther  <rguenther@suse.de>
6825
6826         PR bootstrap/43935
6827         * plugin.h (invoke_plugin_callbacks): Annotate arguments
6828         with ATTRIBUTE_UNUSED.
6829
6830 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
6831
6832         PR target/43921
6833         * config/i386/i386.c (get_some_local_dynamic_name): Replace
6834         INSN_P with NONDEBUG_INSN_P.
6835         (distance_non_agu_define): Likewise.
6836         (distance_agu_use): Likewise.
6837
6838 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
6839
6840         From Dominique d'Humieres <dominiq@lps.ens.fr>
6841         PR bootstrap/43858
6842         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
6843         test_set.
6844
6845 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
6846
6847         * plugin.h (invoke_plugin_callbacks): New inline function.
6848         * plugin.c (flag_plugin_added): New global flag.
6849         (add_new_plugin): Initialize above flag.
6850         (invoke_plugin_callbacks): Rename to ...
6851         (invoke_plugin_callbacks_full): ... this.
6852
6853 2010-04-28  Jan Hubicka  <jh@suse.cz>
6854
6855         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
6856         (lto_varpool_replace_node): New.
6857         (lto_symtab_resolve_symbols): Resolve varpool nodes.
6858         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
6859         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
6860         * cgraph.h (varpool_node_ptr): New type.
6861         (varpool_node_ptr): New vector.
6862         (varpool_node_set_def): New structure.
6863         (varpool_node_set): New type.
6864         (varpool_node_set): New vector.
6865         (varpool_node_set_element_def): New structure.
6866         (varpool_node_set_element, const_varpool_node_set_element): New types.
6867         (varpool_node_set_iterator): New type.
6868         (varpool_node): Add prev pointers, add used_from_other_partition,
6869         in_other_partition.
6870         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
6871         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
6872         varpool_get_node, varpool_remove_node): Declare.
6873         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
6874         varpool_node_set_size): New inlines.
6875         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
6876         * tree-pass.h (varpool_node_set_def): Forward declare.
6877         (ipa_opt_pass_d): Summary writting takes vnode sets too.
6878         (ipa_write_optimization_summaries): Update prototype.
6879         * ipa-cp.c (ipcp_write_summary): Update.
6880         * ipa-reference.c (ipa_reference_write_summary): Update.
6881         * lto-cgraph.c (lto_output_varpool_node): New static function.
6882         (output_varpool): New function.
6883         (input_varpool_node): New static function.
6884         (input_varpool_1): New function.
6885         (input_cgraph): Input varpool.
6886         * ipa-pure-const.c (pure_const_write_summary): Update.
6887         * lto-streamer-out.c (lto_output): Update, output varpool too.
6888         (write_global_stream): Kill WPA hack.
6889         (produce_asm_for_decls): Update.
6890         (output_alias_pair_p): Handle variables.
6891         (output_unreferenced_globals): Output only needed partition of varpool.
6892         * ipa-inline.c (inline_write_summary): Update.
6893         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
6894         cgraph.
6895         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
6896         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
6897         varpool_node_set_new, varpool_node_set_add,
6898         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
6899         debug_varpool_node_set): New functions.
6900         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
6901         (execute_one_pass): Process new decls too.
6902         (ipa_write_summaries_2): Pass around vsets.
6903         (ipa_write_summaries_1): Likewise.
6904         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
6905         to add.
6906         (ipa_write_optimization_summaries_1): Pass around vsets.
6907         (ipa_write_optimization_summaries): Likewise.
6908         * varpool.c (varpool_get_node): New.
6909         (varpool_node): Update doubly linked lists.
6910         (varpool_remove_node): New.
6911         (dump_varpool_node): More dumping.
6912         (varpool_enqueue_needed_node): Update doubly linked lists.
6913         (decide_is_variable_needed): Kill ltrans hack.
6914         (varpool_finalize_decl): Kill lto hack.
6915         (varpool_assemble_decl): Skip decls in other partitions.
6916         (varpool_assemble_pending_decls): Update doubly linkes lists.
6917         (varpool_empty_needed_queue): Likewise.
6918         (varpool_extra_name_alias): Likewise.
6919         * lto-streamer.c (lto_get_section_name): Add vars section.
6920         * lto-streamer.h (lto_section_type): Update.
6921         (output_varpool, input_varpool): Declare.
6922
6923 2010-04-28  Mike Stump  <mikestump@comcast.net>
6924
6925         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
6926
6927 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
6928
6929         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
6930         record or union type with RECORD_OR_UNION_TYPE_P predicate.
6931         (lto_input_ts_type_tree_pointers): Likewise.
6932         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
6933         (lto_output_ts_type_tree_pointers): Likewise.
6934
6935 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
6936
6937         Uniquization of constants at the Tree level
6938         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
6939         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
6940         bit to the end.
6941         (tree_output_constant_def): Declare.
6942         * gimplify.c (gimplify_init_constructor): When using block copy, first
6943         uniquize the constant constructor on the RHS.
6944         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
6945         DECL_IN_CONSTANT_POOL flag.
6946         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
6947         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
6948         constant pool.
6949         (assemble_variable): Deal with symbols belonging to the tree constant
6950         pool.
6951         (get_constant_section): Add ALIGN parameter and simplify.
6952         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
6953         (assemble_constant_contents): Use the expression of the VAR_DECL.
6954         (output_constant_def_contents): Use the alignment of the VAR_DECL.
6955         (tree_output_constant_def): New global function.
6956         (mark_constant): Use the expression of the VAR_DECL.
6957         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
6958         its expression.
6959         (output_object_block): Likewise and assemble the expression.
6960
6961 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
6962
6963         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
6964         hash_tree, eq_tree): New tree hash table.
6965         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
6966         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
6967         lto_orig_address_remove): Reimplement.
6968
6969 2010-04-28  Xinliang David Li  <davidxl@google.com>
6970
6971         PR c/42643
6972         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
6973         (compute_uninit_opnds_pos): New function.
6974         (is_non_loop_exit_postdominating): New function.
6975         (compute_control_dep_chain): New function.
6976         (find_pdom): New function.
6977         (convert_control_dep_chain_into_preds): New function.
6978         (find_predicates): New function.
6979         (find_control_equiv_block): New function.
6980         (collect_phi_def_edges): New function.
6981         (find_def_preds): New function.
6982         (find_dom): New function.
6983         (dump_predicates): New function.
6984         (get_cmp_code): New function.
6985         (is_value_included_in): New function.
6986         (find_matching_predicate_in_rest_chains): New function.
6987         (use_pred_not_overlap_with_undef_path_pred): New function.
6988         (is_use_properly_guarded): New function.
6989         (normalize_cond_1): New function.
6990         (is_and_or_or): New function.
6991         (normalize_cond): New function.
6992         (is_gcond_subset_of): New function.
6993         (is_subset_of_any): New function.
6994         (is_or_set_subset_of): New function.
6995         (is_and_set_subset_of): New function.
6996         (is_norm_cond_subset_of): New function.
6997         (is_pred_expr_subset_of): New function.
6998         (is_pred_chain_subset_of): New function.
6999         (is_included_in): New function.
7000         (is_superset_of): New function.
7001         (find_uninit_use): New function.
7002         (warn_uninitialized_phi): New function.
7003         (compute_possibly_undefined_names): New function.
7004         (ssa_undefined_value_p): New function.
7005         (execute_late_warn_uninitialized): New function.
7006         * tree-ssa.c (ssa_undefined_value_p): Removed.
7007         (warn_uninit): Changed to extern.
7008         (warn_uninitialized_phi): Removed.
7009         (warn_uninitialized_vars): Changed to extern.
7010         (execute_late_warn_uninitialized): Removed
7011         * tree-flow.h: Add new prototypes.
7012         * timevar.def: Add new time variable.
7013         * Makefile.in: Add new build file.
7014
7015 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
7016
7017         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
7018         type if available.
7019
7020 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7021
7022         PR target/22224
7023         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
7024
7025 2010-04-28  Martin Jambor  <mjambor@suse.cz>
7026
7027         * cgraph.h (struct cgraph_node): New field indirect_calls.
7028         (struct cgraph_indirect_call_info): New type.
7029         (struct cgraph_edge): Removed field indirect_call. New fields
7030         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
7031         (cgraph_create_indirect_edge): Declare.
7032         (cgraph_make_edge_direct): Likewise.
7033         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
7034         * ipa-prop.h (struct ipa_param_call_note): Removed.
7035         (struct ipa_node_params): Removed field param_calls.
7036         (ipa_create_all_structures_for_iinln): Declare.
7037         * cgraph.c: Described indirect edges and uids in initial comment.
7038         (cgraph_add_edge_to_call_site_hash): New function.
7039         (cgraph_edge): Search also among the indirect edges, use
7040         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
7041         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
7042         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
7043         site hash.
7044         (initialize_inline_failed): Assign a reason to indirect edges.
7045         (cgraph_create_edge_1): New function.
7046         (cgraph_create_edge): Moved some functionality to
7047         cgraph_create_edge_1.
7048         (cgraph_create_indirect_edge): New function.
7049         (cgraph_edge_remove_callee): Add an assert checking for
7050         non-indirectness.
7051         (cgraph_edge_remove_caller): Special-case indirect edges.
7052         (cgraph_remove_edge): Likewise.
7053         (cgraph_set_edge_callee): New function.
7054         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
7055         (cgraph_make_edge_direct): New function.
7056         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
7057         the declaration of the call statement matches.
7058         (cgraph_node_remove_callees): Special-case indirect edges.
7059         (cgraph_clone_edge): Likewise.
7060         (cgraph_clone_node): Clone also the indirect edges.
7061         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
7062         indirect_call, dump count of indirect_calls edges.
7063         * ipa-prop.c (iinlining_processed_edges): New variable.
7064         (ipa_note_param_call): Create indirect edges instead of
7065         creating notes.  New parameter node.
7066         (ipa_analyze_call_uses): New parameter node, pass it on to
7067         ipa_note_param_call.
7068         (ipa_analyze_stmt_uses): Likewise.
7069         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
7070         (print_edge_addition_message): Work on edges rather than on notes.
7071         (update_call_notes_after_inlining): Likewise, renamed to
7072         update_indirect_edges_after_inlining.
7073         (ipa_create_all_structures_for_iinln): New function.
7074         (ipa_free_node_params_substructures): Do not free notes.
7075         (ipa_edge_duplication_hook): Propagate bits within
7076         iinlining_processed_edges bitmap.
7077         (ipa_node_duplication_hook): Do not duplicate notes.
7078         (free_all_ipa_structures_after_ipa_cp): Renamed to
7079         ipa_free_all_structures_after_ipa_cp.
7080         (free_all_ipa_structures_after_iinln): Renamed to
7081         ipa_free_all_structures_after_iinln.
7082         (ipa_write_param_call_note): Removed.
7083         (ipa_read_param_call_note): Removed.
7084         (ipa_write_indirect_edge_info): New function.
7085         (ipa_read_indirect_edge_info): Likewise.
7086         (ipa_write_node_info): Do not stream notes, do stream information
7087         in indirect edges.
7088         (ipa_read_node_info): Likewise.
7089         (lto_ipa_fixup_call_notes): Removed.
7090         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
7091         * ipa-inline.c (pass_ipa_inline): Likewise.
7092         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
7093         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
7094         * tree-inline.c (copy_bb): Removed an unnecessary double check for
7095         is_gimple_call.
7096         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
7097         edges.
7098         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
7099         (output_cgraph): Stream also indirect edges.
7100         (lto_output_edge): Added capability to stream indirect edges.
7101         (input_edge): Likewise.
7102         (input_cgraph_1): Likewise.
7103         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
7104         of indirect edges.
7105
7106 2010-04-28  Richard Guenther  <rguenther@suse.de>
7107
7108         PR tree-optimization/43879
7109         PR tree-optimization/43909
7110         * tree-ssa-structalias.c (struct variable_info): Add
7111         only_restrict_pointers flag.
7112         (new_var_info): Initialize it.  Increment stats.total_vars here.
7113         (create_function_info_for): Do not increment stats.total_vars here.
7114         (get_function_part_constraint): Fix build with C++.
7115         (insert_into_field_list): Remove.
7116         (push_fields_onto_fieldstack): Properly merge fields.
7117         (create_variable_info_for): Split and simplify.
7118         (create_variable_info_for_1): New piece.
7119         (intra_create_variable_infos): Properly make restrict constraints
7120         from parameters.
7121
7122 2010-04-28  Richard Guenther  <rguenther@suse.de>
7123
7124         PR c++/43880
7125         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
7126
7127 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7128             Jan Hubicka <hubicka@ucw.cz>
7129
7130         * doc/invoke.texi (-Wsuggest-attribute=const,
7131         -Wsuggest-attribute=pure): Document.
7132         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
7133         (function_always_visible_to_compiler_p,
7134         suggest_attribute, warn_function_pure, warn_function_const):
7135         New functions.
7136         (check_call): Improve debug info.
7137         (analyze_function): Do not check availability.
7138         (add_new_function): Check availability.
7139         (propagate): Output warnings.
7140         (skip_function_for_local_pure_const): New function.
7141         (local_pure_const): Use it; output warnings.
7142         * common.opt (Wsuggest-attribute=const,
7143         Wsuggest-attribute=pure): New.
7144
7145 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
7146
7147         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
7148         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
7149         or DW_CFA_def_cfa_offset{,_sf}.
7150
7151 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
7152
7153         * tree.h: Fix truncated long macros.
7154
7155 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
7156
7157         * collect2.c (TARGET_64BIT): Redefine to target's default.
7158         * tlink.c: Likewise.
7159         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
7160         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
7161         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
7162         for underscoring __USER_LABEL_PREFIX__.
7163         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
7164         (SUB_LINK_ENTRY32): New.
7165         (SUB_LINK_ENTRY64): New.
7166         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
7167         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
7168         (SUB_LINK_ENTRY64): New.
7169         (SUB_LINK_ENTRY): New.
7170         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
7171         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
7172         x64 target is choosen.
7173         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
7174         * configure: Regenerated.
7175         * configure.ac (leading-mingw64-underscores): Option added.
7176
7177 2010-04-27  Jan Hubicka  <jh@suse.cz>
7178
7179         * doc/invoke.texi (-fipa-profile): Document.
7180         * opts.c (decode_options): Enable ipa-profile at -O1.
7181         * timevar.def (TV_IPA_PROFILE): Define.
7182         * common.opt (fipa-profile): Add.
7183         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
7184         flag for clones.
7185         (cgraph_propagate_frequency): Handle only local ones.
7186         * tree-pass.h (pass_ipa_profile): Declare.
7187         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
7188         (pass_ipa_profile): Use TV_IPA_PROFILE.
7189         * ipa.c (ipa_profile): New function.
7190         (gate_ipa_profile): Likewise.
7191         (pass_ipa_profile): New global variable.
7192         * passes.c (pass_ipa_profile): New.
7193
7194 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
7195
7196         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
7197
7198 2010-04-27  Martin Jambor  <mjambor@suse.cz>
7199
7200         PR middle-end/43812
7201         * ipa.c (dissolve_same_comdat_group_list): New function.
7202         (function_and_variable_visibility): Call
7203         dissolve_same_comdat_group_list when comdat group contains external or
7204         newly local nodes.
7205         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
7206         lists are circular and that they contain only DECL_ONE_ONLY nodes.
7207
7208 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
7209
7210         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
7211         (const_hash_1) <VECTOR_CST>: New case.
7212         (compare_constant) <VECTOR_CST>: Likewise.
7213         <ADDR_EXPR>: Deal with LABEL_REFs.
7214         (copy_constant) <VECTOR_CST>: New case.
7215
7216 2010-04-27  Jan Hubicka  <jh@suse.cz>
7217
7218         * cgraph.c (cgraph_propagate_frequency): New function.
7219         * cgraph.h (cgraph_propagate_frequency): Declare.
7220         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
7221         cgraph_propagate_frequency.
7222
7223 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
7224
7225         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
7226
7227 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
7228
7229         PR target/40657
7230         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
7231         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
7232         here to determine which regs to push and how much stack to reserve.
7233
7234 2010-04-27  Jie Zhang  <jie@codesourcery.com>
7235
7236         * doc/gimple.texi (gimple_statement_with_ops): Remove
7237         addresses_taken field.
7238         (gimple_statement_with_memory_ops): Likewise.
7239
7240 2010-04-27  Jan Hubicka  <jh@suse.cz>
7241
7242         * tree-inline.c (eni_inlining_weights): Remove.
7243         (estimate_num_insns): Special case more builtins.
7244
7245 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
7246
7247         PR c/32207
7248         * c-typeck.c (build_binary_op): Move forward check for comparison
7249         pointer with null pointer constant and adjust the diagnostic message.
7250
7251 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
7252
7253         PR lto/42776
7254         * configure.ac (gcc_cv_as_section_has_align): Set if installed
7255         binutils supports extended .section directive needed by LTO, or
7256         warn if older binutils found.
7257         (LTO_BINARY_READER): New AC_SUBST'd variable.
7258         (LTO_USE_LIBELF): Likewise.
7259         * gcc/config.gcc (lto_binary_reader): New target-specific configure
7260         variable.
7261         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
7262         (LTO_USE_LIBELF): Likewise.
7263         * configure: Regenerate.
7264
7265         * collect2.c (is_elf): Rename from this ...
7266         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
7267          object files in addition to ELF-formatted ones.
7268         (scan_prog_file): Caller updated.  Also allow for LTO info marker
7269         symbol to be prefixed or not by an extra underscore.
7270
7271         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
7272         * config/i386/winnt.c: Also #include lto-streamer.h
7273         (i386_pe_asm_named_section): Specify 1-byte section alignment for
7274         LTO named sections.
7275         (i386_pe_asm_output_aligned_decl_common): Add comment.
7276         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
7277
7278 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
7279
7280         PR target/43889
7281         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
7282         Add missing earlyclobber for second alternative.
7283
7284 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
7285
7286         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
7287         bits for artificial defs at the top of the block.
7288         * fwprop.c (single_def_use_enter_block): Don't call it.
7289
7290 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
7291
7292         PR 43715
7293         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
7294         instead of "$gcc_cv_objdump -T".
7295         Use "-undefined dynamic_lookup" on darwin.
7296         * gcc/configure: Regenerate.
7297
7298 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
7299
7300         PR c/43893
7301         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
7302
7303 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
7304
7305         * c-parser.c (struct c_token): Move location field up.
7306         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
7307         (struct c_declspecs): Convert typespec_word, storage_class, and
7308         default_int_p into bitfields.
7309         (struct c_declarator): Move loc field up.
7310
7311 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
7312
7313         * cfgloop.h (struct loop): Move can_be_parallel field up.
7314         * ipa-prop.h (struct ip_node_params): Move bitfields up.
7315         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
7316         down.
7317         (struct iv_cand): Convert pos field into a bitfield.
7318         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
7319         field up.
7320         (struct _stmt_vec_info): Shuffle fields for better packing.
7321
7322 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
7323
7324         * varasm.c (IN_NAMED_SECTION): Remove guard.
7325         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
7326         (IN_NAMED_SECTION_P): ...this.
7327         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
7328         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
7329
7330 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
7331
7332         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
7333         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
7334         of shadowing it.  Fix comments.
7335
7336 2010-04-26  Jan Hubicka  <jh@suse.cz>
7337
7338         * cgraph.c (cgraph_create_node): Set node frequency to normal.
7339         (cgraph_clone_node): Copy function frequency.
7340         * cgraph.h (node_frequency): New enum
7341         (struct cgraph_node): Add.
7342         * final.c (rest_of_clean_state): Update.
7343         * lto-cgraph.c (lto_output_node): Output node frequency.
7344         (input_overwrite_node): Input node frequency.
7345         * tre-ssa-loop-ivopts (computation_cost): Update.
7346         * lto-streamer-out.c (output_function): Do not output function
7347         frequency.
7348         * predict.c (maybe_hot_frequency_p): Update and handle functions
7349         executed once.
7350         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
7351         attribute lookup.
7352         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
7353         (compute_function_frequency): Set noreturn functions to be executed
7354         once.
7355         (choose_function_section): Update.
7356         * lto-streamer-in.c (input_function): Do not input function frequency.
7357         * function.c (allocate_struct_function): Do not initialize function
7358         frequency.
7359         * function.h (function_frequency): Remove.
7360         (struct function): Remove function frequency.
7361         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
7362         (try_update): Update.
7363         * tree-inline.c (initialize_cfun): Do not update function frequency.
7364         * passes.c (pass_init_dump_file): Update.
7365         * i386.c (ix86_compute_frame_layout): Update.
7366         (ix86_pad_returns): Update.
7367
7368 2010-04-26  Jie Zhang  <jie@codesourcery.com>
7369
7370         PR tree-optimization/43833
7371         * tree-vrp.c (range_int_cst_p): New.
7372         (range_int_cst_singleton_p): New.
7373         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
7374         when both operands are constants.  Use range_int_cst_p in
7375         BIT_IOR_EXPR case.
7376
7377 2010-04-26  Jan Hubicka  <jh@suse.cz>
7378
7379         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
7380
7381 2010-04-26  Richard Guenther  <rguenther@suse.de>
7382
7383         PR lto/43080
7384         * gimple.c (gimple_decl_printable_name): Deal gracefully
7385         with a NULL DECL_NAME.
7386
7387 2010-04-26  Richard Guenther  <rguenther@suse.de>
7388
7389         PR lto/42425
7390         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
7391         if emitting debug information and it is either a function
7392         or a namespace decl.
7393
7394 2010-04-26  Ira Rosen  <irar@il.ibm.com>
7395
7396         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
7397         determine if the statement is vectorizable, and a macro to access it.
7398         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
7399         Skip statements that can't be vectorized. If the analysis fails,
7400         mark the statement as unvectorizable if vectorizing basic block.
7401         (vect_compute_data_refs_alignment): Likewise.
7402         (vect_verify_datarefs_alignment): Skip statements marked as
7403         unvectorizable. Add print.
7404         (vect_analyze_group_access): Skip statements that can't be
7405         vectorized. If the analysis fails, mark the statement as
7406         unvectorizable if vectorizing basic block.
7407         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
7408         * tree-vect-stmts.c (vectorizable_store): Fix the number of
7409         generated stmts for SLP.
7410         (new_stmt_vec_info): Initialize the new field.
7411         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
7412         statements marked as unvectorizable.
7413
7414 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
7415
7416         * c-common.c (flag_isoc1x): New.
7417         (flag_isoc99): Update comment.
7418         * c-common.h (flag_isoc1x): New.
7419         (flag_isoc99): Update comment.
7420         * c-cppbuiltin.c (builtin_define_float_constants): Also define
7421         __<type>_DECIMAL_DIG__.
7422         * c-opts.c (set_std_c1x): New.
7423         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
7424         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
7425         * c.opt (-std=c1x, -std=gnu1x): New options.
7426         * doc/cpp.texi: Mention -std=c1x.
7427         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
7428         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
7429         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
7430         * doc/standards.texi: Mention C1X.
7431         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
7432         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
7433         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
7434         Define for C1X.
7435
7436 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
7437
7438         * config/i386/gmon-sol2.c (_mcleanup): Change format string
7439         placeholder from 0x%x to %#x.
7440         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
7441         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
7442         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
7443         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
7444         * config/i386/i386.c (ix86_target_string): Ditto.
7445         (output_pic_addr_const): Ditto.
7446         (print_operand): Ditto.
7447
7448 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
7449
7450         * combine.c (find_split_point): Add third argument.  Use it
7451         to find nested multiply-accumulate instructions.  Adjust calls.
7452         (try_combine): Adjust call to find_split_point.
7453
7454 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
7455
7456         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
7457
7458 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
7459
7460         PR tree-optimization/41442
7461         * fold-const.c (merge_truthop_with_opposite_arm): New function.
7462         (fold_binary_loc): Call it.
7463
7464 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7465
7466         * toplev.c (general_init): Set default for fdiagnostics-show-option.
7467         * opts.c (common_handle_option): Allow disabling it.
7468         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
7469
7470 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
7471
7472         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
7473         between modes if both types are integral.
7474
7475 2010-04-23  Richard Guenther  <rguenther@suse.de>
7476
7477         PR tree-optimization/43572
7478         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
7479
7480 2010-04-23  Richard Guenther  <rguenther@suse.de>
7481
7482         PR lto/43455
7483         * tree-inline.c (tree_can_inline_p): Also check compatibility
7484         of return types.
7485
7486 2010-04-23  Martin Jambor  <mjambor@suse.cz>
7487
7488         PR tree-optimization/43846
7489         * tree-sra.c (struct access): New flag grp_assignment_read.
7490         (build_accesses_from_assign): Set grp_assignment_read.
7491         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
7492         (enum mark_read_status): New type.
7493         (analyze_access_subtree): Propagate grp_assignment_read, create
7494         accesses also if both direct_read and root->grp_assignment_read.
7495
7496 2010-04-23  Martin Jambor  <mjambor@suse.cz>
7497
7498         PR middle-end/43835
7499         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
7500         function does not have type attributes.
7501
7502 2010-04-23  Richard Guenther  <rguenther@suse.de>
7503
7504         PR lto/42653
7505         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
7506         of FUNCTION_DECLs.
7507
7508 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7509
7510         * sese.h (create_if_region_on_edge): Remove.
7511
7512         * sese.c (create_if_region_on_edge): Make static.
7513
7514         * tree-inline.c: Do not include ggc.h.
7515
7516         * expr.c: Do not include ggc.h.
7517
7518         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
7519         dependencies.
7520
7521 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
7522
7523         PR target/43744
7524         * config/sh/sh.c (find_barrier): Don't emit a constant pool
7525         in the middle of insns for casesi_worker_2.
7526
7527 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
7528
7529         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
7530
7531 2010-04-22  Ira Rosen  <irar@il.ibm.com>
7532
7533         PR tree-optimization/43842
7534         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
7535         loop unrolling in update of exit phis. Fix comment.
7536         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
7537         least two reduction statements in the loop before starting SLP
7538         analysis.
7539
7540 2010-04-22  Nick Clifton  <nickc@redhat.com>
7541
7542         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
7543
7544 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
7545
7546         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
7547         to simplify a + ~a.
7548
7549 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7550
7551         * tree-parloops.c (loop_parallel_p): New argument
7552         parloop_obstack.  Pass it down.
7553         (parallelize_loops): New variable parloop_obstack.  Initialize it,
7554         pass it down, free it.
7555
7556         * tree-loop-linear.c (linear_transform_loops): Pass down
7557         lambda_obstack.
7558
7559         * tree-data-ref.h (lambda_compute_access_matrices): New argument
7560         of type struct obstack *.
7561
7562         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
7563         scratch_obstack.  Initialize it, pass down, free it.
7564
7565         * lambda.h (lambda_loop_new): Remove.
7566         (lambda_matrix_new, lambda_matrix_inverse)
7567         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
7568         argument of type struct obstack *.
7569
7570         * lambda-trans.c (lambda_trans_matrix_new): New argument
7571         lambda_obstack.  Pass it down, use obstack allocation for ret.
7572         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
7573         it down.
7574
7575         * lambda-mat.c (lambda_matrix_get_column)
7576         (lambda_matrix_project_to_null): Remove.
7577         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
7578         allocation for mat.
7579         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
7580         lambda_obstack.
7581
7582         * lambda-code.c (lambda_loop_new): New function.
7583         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
7584         (lambda_compute_auxillary_space, lambda_compute_target_space)
7585         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
7586         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
7587         (build_access_matrix): New argument lambda_obstack.  Use obstack
7588         allocation for am.
7589         (lambda_compute_step_signs, lambda_compute_access_matrices): New
7590         argument lambda_obstack.  Pass it down.
7591
7592 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
7593
7594         * optabs.h (expand_widening_mult): Declare.
7595
7596 2010-04-22  Richard Guenther  <rguenther@suse.de>
7597
7598         PR tree-optimization/43845
7599         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
7600         lookup the CALL_EXPR function and arguments.
7601
7602 2010-04-22  Nick Clifton  <nickc@redhat.com>
7603
7604         * config/stormy16/stormy16.c
7605         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
7606         * config/stormy16/stormy16.h: Tidy up formatting.
7607         (DONT_USE_BUILTIN_SETJMP): Remove definition.
7608         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
7609         (ineqbranchsi): Delete pattern.
7610         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
7611         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
7612         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
7613         stormy16-lib2-ucmpsi2.c.
7614
7615 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
7616
7617         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
7618         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
7619         extra set merge_set_noclobber, and use it to relax the final test
7620         slightly.
7621         * df.h (df_simulate_find_noclobber_defs): Declare.
7622         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
7623         conditional defs.
7624         (df_simulate_find_noclobber_defs): New function.
7625
7626 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
7627
7628         * config/i386/i386.md: Use {} around multi-line preparation statements.
7629
7630 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7631
7632         * c-tree.h (push_init_level, pop_init_level, set_init_index)
7633         (process_init_element): New argument of type struct obstack *.
7634
7635         * c-typeck.c (push_init_level, pop_init_level, set_designator)
7636         (set_init_index, set_init_label, set_nonincremental_init)
7637         (set_nonincremental_init_from_string, find_init_member)
7638         (output_init_element, output_pending_init_elements)
7639         (process_init_element): New argument braced_init_obstack.  Pass it
7640         down.
7641         (push_range_stack, add_pending_init): New argument
7642         braced_init_obstack.  Use obstack allocation.
7643
7644         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
7645         braced_init_obstack.  Pass it down.
7646         (c_parser_braced_init): New variables ret, braced_init_obstack.
7647         Initialize obstack, pass it down and finally free it.
7648
7649 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
7650
7651         PR middle-end/29274
7652         * tree-pass.h (pass_optimize_widening_mul): Declare.
7653         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
7654         gate_optimize_widening_mul): New static functions.
7655         (pass_optimize_widening_mul): New.
7656         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
7657         <case MULT_EXPR>: Remove support for widening multiplies.
7658         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
7659         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
7660         simplify_gen_unary rather than directly building extensions.
7661         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
7662         WIDEN_MULT_EXPR.
7663         * expmed.c (expand_widening_mult): New function.
7664         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
7665
7666 2010-04-21  Jan Hubicka  <jh@suse.cz>
7667
7668         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
7669         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
7670         * lto-wpa-fixup.c: Remove.
7671         * Makefile.in (lto-wpa-fixup.o): Remove.
7672         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
7673         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
7674         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
7675
7676 2010-04-21  Jan Hubicka  <jh@suse.cz>
7677
7678         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
7679         add write_optimization_summary, read_optimization_summary.
7680         (ipa_write_summaries_of_cgraph_node_set): Remove.
7681         (ipa_write_optimization_summaries): Declare.
7682         (ipa_read_optimization_summaries): Declare.
7683         * ipa-cp.c (pass_ipa_cp): Update.
7684         * ipa-reference.c (pass_ipa_reference): Update.
7685         * ipa-pure-const.c (pass_ipa_pure_const): Update.
7686         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
7687         Update.
7688         * ipa-inline.c (pass_ipa_inline): Update.
7689         * ipa.c (pass_ipa_whole_program): Update.
7690         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
7691         * passes.c (ipa_write_summaries_1): Do not test wpa.
7692         (ipa_write_optimization_summaries_1): New.
7693         (ipa_write_optimization_summaries): New.
7694         (ipa_read_summaries): Do not test ltrans.
7695         (ipa_read_optimization_summaries_1): New.
7696         (ipa_read_optimization_summaries): New.
7697
7698 2010-04-21  Jan Hubicka  <jh@suse.cz>
7699
7700         * lto-cgraph.c (lto_output_node): Do not output comdat groups
7701         for boundary nodes.
7702         (output_cgraph): Do not arrange comdat groups for boundary nodes.
7703
7704 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
7705
7706         PR debug/40040
7707         * dwarf2out.c (add_name_and_src_coords_attributes): Add
7708         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
7709
7710 2010-04-21  Jan Hubicka  <jh@suse.cz>
7711
7712         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
7713
7714 2010-04-21  Jan Hubicka  <jh@suse.cz>
7715
7716         * varpool.c (decide_is_variable_needed): Variable is always needed
7717         during ltrans.
7718
7719 2010-04-21  Jan Hubicka  <jh@suse.cz>
7720
7721         * opts.c (decode_options): Enable pure-const pass for whopr.
7722
7723 2010-04-21  Jan Hubicka  <jh@suse.cz>
7724
7725         * cgraph.c (dump_cgraph_node): Dump also assembler name.
7726         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
7727         at WPA dumping.
7728         (cgraph_decide_inlining): Do not expect callee to be removed in all
7729         cases.
7730
7731 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
7732
7733         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
7734
7735 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
7736
7737         * config/i386/i386.md (x86_shrd): Add athlon_decode and
7738         amdfam10_decode attributes.
7739
7740 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
7741
7742         PR middle-end/43570
7743         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
7744         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
7745         (lower_copyprivate_clauses): Use private var in outer
7746         context instead of original var.  Make sure the types
7747         are correct for VLAs.
7748
7749 2010-04-21  Richard Guenther  <rguenther@suse.de>
7750
7751         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
7752         to non-pointer objects.
7753
7754 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
7755
7756         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
7757         last chain entry if it starts with the still current label.
7758         (add_location_or_const_value_attribute): Check that
7759         loc_list->first->next is NULL instead of comparing ->first with ->last.
7760         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
7761         to add_var_loc_to_decl.
7762
7763         * dwarf2out.c (output_call_frame_info): For dw_cie_version
7764         >= 4 add also address size and segment size fields into CIE header.
7765
7766         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
7767         long as address size is the same as sizeof (void *) and
7768         segment size is 0.
7769         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
7770         address size or segment size is unexpected, return DW_EH_PE_omit.
7771         (classify_object_over_fdes): If get_cie_encoding returned
7772         DW_EH_PE_omit, return -1.
7773         (init_object): If classify_object_over_fdes returned -1,
7774         pretend there were no FDEs at all.
7775
7776 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
7777
7778         * config/i386/i386.md (bswap<mode>2): Macroize expander from
7779         bswap{si,di}2 using SWI48 mode iterator.
7780         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
7781         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
7782         set modrm attribute of bswap insn to 0 and remove length attribute.
7783         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
7784         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
7785         set mode attribute to <MODE> and remove length attribute.
7786
7787 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
7788
7789         PR rtl-optimization/43520
7790         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
7791         zero available registers.
7792
7793 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7794
7795         * builtins.c (fold_builtin_cproj): Fold more cases.
7796
7797 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7798
7799         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
7800         (fold_builtin_1): Fold builtin cproj.
7801         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
7802         Use ATTR_CONST_NOTHROW_LIST.
7803
7804 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
7805
7806         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
7807         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
7808         ffsi2_no_cmove for !TARGET_CMOVE.
7809         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
7810         (ffssi2): Remove expander.
7811         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
7812         mode iterator.
7813         (ctz<mode>2): Ditto from ctz{si,di}2.
7814         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
7815         mode iterator.
7816         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
7817         mode iterator.
7818
7819 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
7820
7821         * dwarf2out.c (AT_linkage_name): Define.
7822         (clone_as_declaration): Handle DW_AT_linkage_name.
7823         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
7824         of DW_AT_MIPS_linkage_name.
7825         (move_linkage_attr): Likewise.
7826         (dwarf2out_finish): Likewise.
7827
7828 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
7829
7830         PR middle-end/41952
7831         * fold-const.c (fold_comparison): New folding rule.
7832
7833 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
7834
7835         * double-int.h (double_int_setbit): Declare.
7836         * double-int.c (double_int_setbit): New function.
7837         * rtl.h (immed_double_int_const): Declare.
7838         * emit-rtl.c (immed_double_int_const): New function.
7839         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
7840         and immed_double_int_const functions.
7841         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
7842         expand_copysign_bit):  (Ditto.).
7843         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
7844         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
7845         * dojump.c (prefer_and_bit_test): (Ditto.).
7846         * expr.c (convert_modes, reduce_to_bit_field_precision,
7847         const_vector_from_tree): (Ditto.).
7848         * expmed.c (mask_rtx, lshift_value): (Ditto.).
7849
7850 2010-04-20  Jan Hubicka  <jh@suse.cz>
7851
7852         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
7853         (dump_cgraph_node): Dump new flags.
7854         * cgraph.h (struct cgraph_node): Add flags
7855         reachable_from_other_partition and in_other_partition.
7856         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
7857         other partition can not be removed.
7858         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
7859         the other partition must be output; silence sanity checking on
7860         leaking functions bodies from other paritition.
7861         * lto-cgraph.c (reachable_from_other_partition_p): New function.
7862         (lto_output_node): Output new flags; do not sanity check that inline
7863         clones are output; drop lto_forced_extern_inline_p code; do not mock
7864         visibility flags at partition boundaries.
7865         (add_node_to): New function.
7866         (output_cgraph): Use it to sort functions so masters appear before
7867         clones.
7868         (input_overwrite_node): Input new flags.
7869         * passes.c (ipa_write_summaries): Do not call
7870         lto_new_extern_inline_states.
7871         * lto-section-out.c (forced_extern_inline,
7872         lto_new_extern_inline_states lto_delete_extern_inline_states,
7873         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
7874         * lto-streamer.h (lto_new_extern_inline_states,
7875         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
7876         lto_forced_extern_inline_p): Kill.
7877
7878 2010-04-20  Richard Guenther  <rguenther@suse.de>
7879
7880         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
7881         from vars that can have pointers.
7882         (process_constraint): Dump useless constraints.
7883
7884 2010-04-20  Richard Guenther  <rguenther@suse.de>
7885
7886         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
7887         (dump_sa_points_to_info): Remove asserts.
7888         (init_base_vars): nothing_id isn't an escape point nor does it
7889         have pointers.
7890
7891 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
7892
7893         * tree.h (TYPE_REF_IS_RVALUE): Define.
7894         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
7895         should_move_die_to_comdat, prune_unused_types_walk): Handle
7896         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
7897         (modified_type_die, gen_reference_type_die): Emit
7898         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
7899         if TYPE_REF_IS_RVALUE and -gdwarf-4.
7900
7901 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7902
7903         PR target/43635
7904         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
7905         calls for -fpic -m31 if they have been sibcall optimized.
7906
7907 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
7908
7909         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
7910         ar.lc fixed and call-used.
7911
7912         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
7913
7914 2010-04-19  Jan Hubicka  <jh@suse.cz>
7915
7916         * opts.c (decode_options): Disable whpr incompatible passes.
7917         * lto/lto.c (lto_1_to_1_map): Skip clones.
7918         (read_cgraph_and_symbols): Do not mark everything as needed.
7919         (do_whole_program_analysis): Do map only after optimizing;
7920         set proper cgraph_state; use passmanager.
7921
7922 2010-04-19  DJ Delorie  <dj@redhat.com>
7923
7924         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
7925         POINTER_PLUS_EXPR and fix them.
7926
7927 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
7928
7929         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
7930         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
7931         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
7932         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
7933         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
7934         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
7935         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
7936         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
7937         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
7938         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
7939         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
7940
7941 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
7942
7943         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
7944         (check_cond_move_block): Likewise.
7945         (cond_move_process_if_block): Likewise.
7946         (noce_find_if_block): Improve formatting.
7947         (find_if_header): Pass 0 to memset and tweak conditions.
7948         (cond_exec_find_if_block): Fix long lines and tweak conditions.
7949
7950 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
7951
7952         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
7953         for -gdwarf-4.
7954
7955         PR middle-end/43337
7956         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
7957         with non-local decl doesn't need chain.
7958
7959 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
7960
7961         * ira-color.c (allocno_reload_assign): Avoid accumulating
7962         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
7963
7964 2010-04-19  Martin Jambor  <mjambor@suse.cz>
7965
7966         * gimple.h (create_tmp_reg): Declare.
7967         * gimplify.c (create_tmp_reg): New function.
7968         (gimplify_return_expr): Use create_tmp_reg.
7969         (gimplify_omp_atomic): Likewise.
7970         (gimple_regimplify_operands): Likewise.
7971         * tree-dfa.c (make_rename_temp): Likewise.
7972         * tree-predcom.c (predcom_tmp_var): Likewise.
7973         (reassociate_to_the_same_stmt): Likewise.
7974         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
7975         (get_replaced_param_substitute): Likewise.
7976         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
7977         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
7978         * tree-ssa-pre.c (get_representative_for): Likewise.
7979         (create_expression_by_pieces): Likewise.
7980         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
7981         (create_tailcall_accumulator): Likewise.
7982
7983 2010-04-19  Martin Jambor  <mjambor@suse.cz>
7984
7985         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
7986         new_stmt.
7987         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
7988
7989 2010-04-19  Richard Guenther  <rguenther@suse.de>
7990
7991         PR tree-optimization/43796
7992         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
7993         from SCEV in the lattice.
7994         (vrp_visit_phi_node): Dump change.
7995
7996 2010-04-19  Richard Guenther  <rguenther@suse.de>
7997
7998         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
7999         * configure: Re-generated.
8000
8001 2010-04-19  Richard Guenther  <rguenther@suse.de>
8002
8003         PR tree-optimization/43783
8004         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
8005         constant ARRAY_REF operands two and three if possible.
8006
8007 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
8008
8009         PR target/43766
8010         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
8011
8012 2010-04-19  Jie Zhang  <jie@codesourcery.com>
8013
8014         PR target/43662
8015         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
8016
8017 2010-04-19  Ira Rosen  <irar@il.ibm.com>
8018
8019         PR tree-optimization/37027
8020         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
8021         and macro to access it.
8022         (vectorizable_reduction): Add argument.
8023         (vect_get_slp_defs): Likewise.
8024         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
8025         statements for possible use in SLP.
8026         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
8027         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
8028         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
8029         add new argument.
8030         (vectorizable_reduction): Likewise.
8031         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
8032         vect_get_slp_defs.
8033         (vectorizable_type_demotion, vectorizable_type_promotion,
8034         vectorizable_store): Likewise.
8035         (vect_analyze_stmt): Update call to vectorizable_reduction.
8036         (vect_transform_stmt): Likewise.
8037         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
8038         (vect_build_slp_tree): Fix indentation. Check that there are no loads
8039         from different interleaving chains in same node.
8040         (vect_slp_rearrange_stmts): New function.
8041         (vect_supported_load_permutation_p): Allow load permutations for
8042         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
8043         inside SLP nodes if necessary.
8044         (vect_analyze_slp_instance): Handle reductions.
8045         (vect_analyze_slp): Try to build SLP instances originating from groups
8046         of reductions.
8047         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
8048         (vect_get_constant_vectors): Create initial vectors for reductions
8049         according to reduction code. Add new argument.
8050         (vect_get_slp_defs): Add new argument, pass it to
8051         vect_get_constant_vectors.
8052         (vect_schedule_slp_instance): Remove SLP tree root statements.
8053
8054 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
8055
8056         * tree.h (ENUM_IS_SCOPED): Define.
8057         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
8058         for ENUM_IS_SCOPED enums.
8059
8060 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
8061
8062         * fold-const.c (fold_comparison): Use ssizetype.
8063         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
8064         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
8065         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
8066         * tree-object-size.c (compute_object_sizes): Use size_type_node.
8067
8068         * tree.h (initialize_sizetypes): Remove parameter.
8069         (build_common_tree_nodes): Remove second parameter.
8070         * stor-layout.c (initialize_sizetypes): Remove parameter.
8071         Always create an unsigned type.
8072         (set_sizetype): Assert that the passed type is unsigned and simplify.
8073         * tree.c (build_common_tree_nodes): Remove second parameter.
8074         Adjust call to initialize_sizetypes.
8075         * c-decl.c (c_init_decl_processing): Remove second argument in call to
8076         build_common_tree_nodes.
8077
8078 2010-04-18  Matthias Klose  <doko@ubuntu.com>
8079
8080         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
8081
8082 2010-04-18  Ira Rosen  <irar@il.ibm.com>
8083
8084         PR tree-optimization/43771
8085         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
8086         load permutation doesn't have gaps.
8087
8088 2010-04-18  Jan Hubicka  <jh@suse.cz>
8089
8090         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
8091         (sse_prologue_save_insn expander): Use new pattern.
8092         (sse_prologue_save_insn1): New pattern and splitter.
8093         (sse_prologue_save_insn): Update to deal also with 64bit aligned
8094         blocks.
8095         * i386.c (setup_incoming_varargs_64): Do not compute jump
8096         destination here.
8097         (ix86_gimplify_va_arg): Update alignment needed.
8098         (ix86_local_alignment): Do not align all local arrays to 128bit.
8099
8100 2010-04-17  Jan Hubicka  <jh@suse.cz>
8101
8102         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
8103
8104 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
8105
8106         * arm.md (negdi2): Remove redundant code to force values into a
8107         register.
8108
8109 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
8110
8111         * arm/bpabi.S: Add EABI alignment attributes to objects.
8112         * arm/bpabi-v6m.S: Likewise.
8113         * arm/crti.asm: Likewise.
8114         * arm/crtn.asm: Likewise.
8115         * arm/lib1funcs.asm: Likewise.
8116         * arm/libunwind.S: Likewise.
8117
8118 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
8119
8120         * arm-protos.h (tune_params): New structure.
8121         * arm.c (current_tune): New variable.
8122         (arm_constant_limit): Delete.
8123         (struct processors): Add pointer to the tune parameters.
8124         (arm_slowmul_tune): New tuning option.
8125         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
8126         (all_cores): Adjust to pick up the tuning model.
8127         (arm_constant_limit): New function.
8128         (arm_override_options): Select the appropriate tuning model.  Delete
8129         initialization of arm_const_limit.
8130         (arm_split_constant): Use the new constant-limit model.
8131         (arm_rtx_costs): Pick up the current tuning model.
8132         * arm.md (is_strongarm, is_xscale): Delete.
8133         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
8134         for Xscale variant architectures.
8135         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
8136
8137 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8138
8139         * config/arm/arm.c (arm_gen_constant): Remove unused variable
8140         can_shift.
8141         (arm_rtx_costs_1): Remove unused variable extra_cost.
8142         (arm_unwind_emit_set): Use variable offset.
8143         (thumb1_output_casesi): Remove unused variable flags.
8144
8145 2010-04-16  Jeff Law  <law@redhat.com>
8146
8147         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
8148         needing assignment rather than doing a two-phase assignment.  Remove
8149         unused variable 'm'.
8150
8151 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
8152
8153         PR bootstrap/43767
8154         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
8155
8156 2010-04-16  Doug Kwan  <dougkwan@google.com>
8157
8158         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
8159         (next_operand_entry_id): New static variable.
8160         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
8161         (add_to_ops_vec): Assigned unique ID to operand entry.
8162         (struct oecount_s): New field ID.
8163         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
8164         (undistribute_ops_list): Assign unique IDs to oecounts.
8165         (init_reassoc): reset next_operand_entry_id.
8166
8167 2010-04-16  Doug Kwan  <dougkwan@google.com>
8168
8169         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
8170         missing left parenthesis.
8171
8172 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
8173
8174         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
8175         *btdi_rex64 using SWI48 mode iterator.
8176         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
8177         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
8178         *jcc_btdi_mask_rex64.
8179
8180 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
8181
8182         * double-int.h (tree_to_double_int): Convert to macro.
8183         * double-int.c (tree_to_double_int): Remove.
8184
8185 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
8186
8187         PR debug/43762
8188         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
8189         with want_address 2 and in case a single element list might be
8190         possible, call it again with want_address 0.
8191
8192 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
8193
8194         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
8195         case 'W' print operands for HI mode.
8196         * config/h8300/h8300.h (Y0, Y2) : New constraints.
8197         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
8198         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
8199         * config/h8300/predicate.md (bit_register_indirect_operand): New.
8200
8201         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
8202
8203         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
8204         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
8205         #xx:3 and #xx:4 mode.
8206
8207         * config/h8300/h8300.md (inverted load with HImode dest): Add
8208         support for H8300SX.
8209
8210         * config/h8300/predicate.md (bit_operand): Allow immediate values that
8211         satisfy 'U' constraint.
8212
8213 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8214
8215         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
8216         * configure: Regenerate.
8217         * config.in: Regenerate.
8218         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
8219         works.
8220
8221 2010-04-16  Richard Guenther  <rguenther@suse.de>
8222
8223         * tree.h (struct tree_decl_minimal): Move pt_uid ...
8224         (struct tree_decl_common): ... here.
8225         (DECL_PT_UID): Adjust.
8226         (SET_DECL_PT_UID): Likewise.
8227         (DECL_PT_UID_SET_P): Likewise.
8228
8229 2010-04-16  Richard Guenther  <rguenther@suse.de>
8230
8231         PR tree-optimization/43572
8232         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
8233         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
8234         * tree-flow.h (is_call_clobbered): Remove.
8235         * tree-flow-inline.h (is_call_clobbered): Likewise.
8236         * tree-dfa.c (dump_variable): Do not dump call clobber state.
8237         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
8238         (execute_return_slot_opt): Adjust.
8239         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
8240         check for call clobbered vars here.
8241         (find_tail_calls): Move tailcall verification to the
8242         proper place.
8243
8244 2010-04-16  Diego Novillo  <dnovillo@google.com>
8245
8246         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
8247
8248 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
8249
8250         PR target/40603
8251         * config/arm/arm.md (cbranchqi4): New pattern.
8252         * config/arm/predicates.md (const0_operand,
8253         cbranchqi4_comparison_operator): New predicates.
8254
8255 2010-04-16  Richard Guenther  <rguenther@suse.de>
8256
8257         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
8258         (dump_gimple_stmt): Likewise.
8259
8260 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
8261
8262         * recog.h (struct recog_data): New field is_operator.
8263         (struct insn_operand_data): New field is_operator.
8264         * recog.c (extract_insn): Set recog_data.is_operator.
8265         * genoutput.c (output_operand_data): Emit code to set the
8266         is_operator field.
8267         * reload.c (find_reloads): Use it rather than testing for an
8268         empty constraint string.
8269
8270         PR target/41514
8271         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
8272         If the previous insn is a cbranchsi4_insn with the same arguments,
8273         omit the compare instruction.
8274
8275         * config/arm/arm.md (addsi3_cbranch): If destination is a high
8276         register, inputs must be low registers and we need a low register
8277         scratch.  Handle alternative 2 like alternative 3.
8278
8279 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
8280
8281         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
8282         don't call get_addr on both.  If one expression is a VALUE and
8283         the other a REG, check VALUE's locs if the REG isn't among them.
8284
8285 2010-04-16  Christian Bruel  <christian.bruel@st.com>
8286
8287         * config/sh/sh.h (sh_frame_pointer_required): New function.
8288         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
8289         (flag_omit_frame_pointer) Set.
8290         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
8291         (rounded_frame_size): Adjust size with outgoing_args_size.
8292         (sh_set_return_address): Must return from stack pointer.
8293         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
8294         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
8295         (ACCUMULATE_OUTGOING_ARGS): Define.
8296         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
8297         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
8298
8299 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
8300
8301         PR target/43471
8302         * config/sh/sh.c (sh_legitimize_reload_address): Use
8303         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
8304         Remove a unneeded check for offset_base.
8305
8306 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
8307
8308         * configure: Regenerated.
8309
8310 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8311
8312         * config/s390/s390.c (s390_call_save_register_used): Switch back
8313         to HARD_REGNO_NREGS.
8314
8315 2010-04-15  Richard Guenther  <rguenther@suse.de>
8316
8317         * alias.c (alias_set_subset_of): Handle alias-set zero
8318         child properly.
8319
8320 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
8321             Julian Brown  <julian@codesourcery.com>
8322
8323         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
8324         alternatives according to use of high and low regs.
8325         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
8326         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
8327         optimizing for size on Thumb-2.
8328
8329 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
8330
8331         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
8332
8333 2010-04-15  Richard Guenther  <rguenther@suse.de>
8334
8335         * tree-ssa-structalias.c (struct variable_info): Add
8336         is_fn_info flag.
8337         (new_var_info): Initialize it.
8338         (dump_constraints): Support printing last added constraints.
8339         (debug_constraints): Adjust.
8340         (dump_constraint_graph): Likewise.
8341         (make_heapvar_for): Check for NULL cfun.
8342         (get_function_part_constraint): New function.
8343         (get_fi_for_callee): Likewise.
8344         (find_func_aliases): Properly implement IPA PTA constraints.
8345         (process_ipa_clobber): New function.
8346         (find_func_clobbers): Likewise.
8347         (insert_into_field_list_sorted): Remove.
8348         (create_function_info_for): Properly allocate vars for IPA mode.
8349         Do not use insert_into_field_list_sorted.
8350         (create_variable_info_for): Properly generate constraints for
8351         global vars in IPA mode.
8352         (dump_solution_for_var): Always dump the solution.
8353         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
8354         (find_what_var_points_to): Adjust.
8355         (pt_solution_set): Change.
8356         (pt_solution_ior_into): New function.
8357         (pt_solution_empty_p): Export.
8358         (pt_solution_includes_global): Adjust.
8359         (pt_solution_includes_1): Likewise.
8360         (pt_solutions_intersect_1): Likewise.
8361         (dump_sa_points_to_info): Check some invariants.
8362         (solve_constraints): Move constraint dumping ...
8363         (compute_points_to_sets): ... here.
8364         (ipa_pta_execute): ... and here.
8365         (compute_may_aliases): Do not re-compute points-to info
8366         locally if IPA info is available.
8367         (ipa_escaped_pt): New global var.
8368         (ipa_pta_execute): Properly implement IPA PTA.
8369         * tree-into-ssa.c (dump_decl_set): Support dumping
8370         decls not in referenced-vars.
8371         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
8372         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
8373         (dump_points_to_solution): Likewise.
8374         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
8375         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
8376         (remap_gimple_stmt): Reset call clobber/use information if necessary.
8377         (copy_decl_to_var): Copy DECL_PT_UID.
8378         (copy_result_decl_to_var): Likewise.
8379         * tree.c (make_node_stat): Initialize DECL_PT_UID.
8380         (copy_node_stat): Copy it.
8381         * tree.h (DECL_PT_UID): New macro.
8382         (SET_DECL_PT_UID): Likewise.
8383         (DECL_PT_UID_SET_P): Likewise.
8384         (struct tree_decl_minimal): Add pt_uid member.
8385         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
8386         (pt_solution_empty_p): Declare.
8387         (pt_solution_set): Adjust.
8388         (ipa_escaped_pt): Declare.
8389         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
8390         * gimple-pretty-print.c (pp_points_to_solution): New function.
8391         (dump_gimple_call): Dump call clobber/use information.
8392         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
8393         * tree-pass.h (TDF_ALIAS): New dump option.
8394         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
8395         * doc/invoke.texi (-fipa-pta): Update documentation.
8396
8397 2010-04-15  Richard Guenther  <rguenther@suse.de>
8398
8399         * Makefile.in (OBJS-common): Add gimple-fold.o.
8400         (gimple-fold.o): New rule.
8401         * tree.h (maybe_fold_offset_to_reference,
8402         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
8403         prototypes ...
8404         * gimple.h: ... here.
8405         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
8406         may_propagate_address_into_dereference): Move prototypes ...
8407         * gimple.h: ... here.
8408         * tree-ssa-ccp.c (get_symbol_constant_value,
8409         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
8410         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
8411         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
8412         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
8413         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
8414         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
8415         gimplify_and_update_call_from_tree): Move ...
8416         * gimple-fold.c: ... here.  New file.
8417         (ccp_fold_builtin): Rename to ...
8418         (gimple_fold_builtin): ... this.
8419         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
8420
8421 2010-04-15  Richard Guenther  <rguenther@suse.de>
8422
8423         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
8424         fit_double_type, force_fit_type_double, add_double_with_sign,
8425         neg_double, mul_double_with_sign, lshift_double, rshift_double,
8426         lrotate_double, rrotate_double, div_and_round_double): Move ...
8427         * double-int.c: ... here.
8428         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
8429         add_double, neg_double, mul_double_with_sign, mul_double,
8430         lshift_double, rshift_double, lrotate_double, rrotate_double,
8431         div_and_round_double): Move prototypes ...
8432         * double-int.h: ... here.
8433
8434 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
8435
8436         PR target/43742
8437         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
8438         matching constraints to ensure inputs match the output.
8439
8440 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
8441
8442         PR target/43742
8443         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
8444         in an input-only operand.
8445
8446 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
8447
8448         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
8449         (double_int_not, double_int_lshift, double_int_rshift): Declare.
8450         (double_int_negative_p): Convert to static inline function.
8451         * double-int.c (double_int_lshift, double_int_lshift): New functions.
8452         (double_int_negative_p): Remove.
8453         * tree.h (lshift_double, rshift_double):
8454         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
8455         * fold-const.c (fold_convert_const_int_from_real,
8456         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
8457         (lshift_double): Change type of arith argument to bool.
8458         (rshift_double): Change type of arith argument to bool. Correct
8459         comment.
8460         * expmed.c (mask_rtx, lshift_value): (Ditto.).
8461
8462 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
8463
8464         PR target/21803
8465         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
8466         at the start and end of the then/else blocks, and omit them from the
8467         conversion.
8468         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
8469         argument; all callers changed.  Pass zero to old_insns_match_p instead.
8470         (flow_find_head_matching_sequence): New function.
8471         (old_insns_match_p): Check REG_EH_REGION notes for calls.
8472         * basic-block.h (flow_find_cross_jump,
8473         flow_find_head_matching_sequence): Declare functions.
8474
8475 2010-04-14  Jason Merrill  <jason@redhat.com>
8476
8477         PR c++/36625
8478         * c-common.c (attribute_takes_identifier_p): New fn.
8479         * c-common.h: Declare it.
8480
8481 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8482
8483         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
8484         splitter condition.
8485         (*udivmod<mode>4): Ditto.
8486
8487 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8488
8489         * config/i386/i386.md (maxmin_int): Rename code attribute from
8490         maxminiprefix and update all users.
8491         (maxmin_float): Ditto from maxminfprefix.
8492         (logic): Ditto from logicprefix.
8493         (absneg_mnemonic): Ditto from absnegprefix.
8494         * config/i386/mmx.md: Update all users of maxminiprefix,
8495         maxminfprefix and logicprefix for rename.
8496         * config/i386/sse.md: Ditto.
8497         * config/i386/sync.md (sync_<code><mode>): Update for
8498         logicprefix rename.
8499
8500 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8501
8502         PR 42966
8503         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
8504         warnings converted to errors.
8505
8506 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8507
8508         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
8509         used insn_type variable.
8510         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
8511         to avoid set-but-not-used warning.
8512
8513 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8514
8515         * df-core.c (df_ref_debug): Change format string placeholder
8516         from 0x%x to %#x.
8517         * dwarf2asm.c (dw2_asm_output_data_raw,
8518         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
8519         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
8520         * dwarf2out.c (output_cfi, output_cfi_directive,
8521         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
8522         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
8523         Ditto.
8524         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
8525         * print-rtl.c (print_rtx): Ditto.
8526
8527 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8528
8529         PR middle-end/42694
8530         * builtins.c (expand_builtin_pow_root): New function to expand pow
8531         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
8532         series of sqrt and cbrt calls under -ffast-math.
8533         (expand_builtin_pow): Call it.
8534
8535 2010-04-14  Michael Matz  <matz@suse.de>
8536
8537         PR tree-optimization/42963
8538         * tree-cfg.c (touched_switch_bbs): New static variable.
8539         (group_case_labels_stmt): New function broken out from ...
8540         (group_case_labels): ... here, use the above.
8541         (start_recording_case_labels): Allocate touched_switch_bbs.
8542         (end_recording_case_labels): Deallocate it, call
8543         group_case_labels_stmt.
8544         (gimple_redirect_edge_and_branch): Remember index of affected BB.
8545
8546 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8547
8548         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
8549         from insn template.
8550
8551 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8552
8553         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
8554
8555 2010-04-13  Jan Hubicka  <jh@suse.cz>
8556
8557         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
8558         of optimized out static functions.
8559         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
8560         cost computation.  Also sanity check for overflows.
8561         (update_caller_keys): Update cgraph_edge_badness call; properly
8562         update fibheap and sanity check that it is up to date.
8563         (add_new_edges_to_heap): Update cgraph_edge_badness.
8564         (cgraph_decide_inlining_of_small_function): Likewise;
8565         add sanity checking that badness in heap is up to date;
8566         improve dumping of reason; Update badness of calls to the
8567         offline copy of function currently inlined; dump badness
8568         of functions not inlined because of unit growth limits.
8569
8570 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
8571
8572         PR middle-end/32628
8573         * c-common.c (pointer_int_sum): Disregard overflow that occured only
8574         because of sign-extension change when converting to sizetype here...
8575         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
8576
8577         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
8578         the folding to constants.  Remove redundant final conversion.
8579         (fold_binary) <associate>: Do not associate if the re-association of
8580         constants alone overflows.
8581         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
8582         to the end of the list.
8583         (multiple_of_p) <COND_EXPR>: New case.
8584
8585 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8586
8587         * opt-functions.awk (opt_sanitized_name): New.
8588         (opt_enum): New.
8589         * optc-gen.awk: Use it
8590         * opth-gen.awk: Use it.
8591
8592 2010-04-13  Martin Jambor  <mjambor@suse.cz>
8593
8594         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
8595         (sra_modify_assign): Delete stmts loading dead data even if racc has no
8596         children.  Call replace_uses_with_default_def_ssa_name to handle
8597         SSA_NAES on lhs.
8598
8599 2010-04-13  Michael Matz  <matz@suse.de>
8600
8601         PR middle-end/43730
8602         * builtins.c (expand_builtin_interclass_mathfn): Also create
8603         a register if the predicate doesn't match.
8604
8605 2010-04-13  Diego Novillo  <dnovillo@google.com>
8606
8607         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
8608         * c-pch.c: Include timevar.h.
8609         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
8610         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
8611         * ggc-common.c: Include timevar.h.
8612         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
8613         * timevar.def (TV_PCH_SAVE): Define.
8614         (TV_PCH_CPP_SAVE): Define.
8615         (TV_PCH_PTR_REALLOC): Define.
8616         (TV_PCH_PTR_SORT): Define.
8617         (TV_PCH_RESTORE): Define.
8618         (TV_PCH_CPP_RESTORE): Define.
8619
8620 2010-04-13  Michael Matz  <matz@suse.de>
8621
8622         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
8623         into MINUS_EXPRs.
8624         (can_reassociate_p): New function.
8625         (break_up_subtract_bb, reassociate_bb): Use it.
8626
8627 2010-04-13  Richard Guenther  <rguenther@suse.de>
8628
8629         PR bootstrap/43737
8630         * builtins.c (c_readstr): Fix assert.
8631
8632 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
8633
8634         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
8635         when generating cltd insn.
8636
8637         (*ashl<mode>3_1): Remove special handling for register operand 2.
8638         (*ashlsi3_1_zext): Ditto.
8639         (*ashlhi3_1): Ditto.
8640         (*ashlhi3_1_lea): Ditto.
8641         (*ashlqi3_1): Ditto.
8642         (*ashlqi3_1_lea): Ditto.
8643         (*<shiftrt_insn><mode>3_1): Ditto.
8644         (*<shiftrt_insn>si3_1_zext): Ditto.
8645         (*<shiftrt_insn>qi3_1_slp): Ditto.
8646         (*<rotate_insn><mode>3_1): Ditto.
8647         (*<rotate_insn>si3_1_zext): Ditto.
8648         (*<rotate_insn>qi3_1_slp): Ditto.
8649
8650 2010-04-13  Richard Guenther  <rguenther@suse.de>
8651
8652         * tree-ssa-structalias.c (callused_id): Remove.
8653         (call_stmt_vars): New.
8654         (get_call_vi): Likewise.
8655         (lookup_call_use_vi): Likewise.
8656         (lookup_call_clobber_vi): Likewise.
8657         (get_call_use_vi): Likewise.
8658         (get_call_clobber_vi): Likewise.
8659         (make_transitive_closure_constraints): Likewise.
8660         (handle_const_call): Adjust to do per-call call-used handling.
8661         (handle_pure_call): Likewise.
8662         (find_what_var_points_to): Remove general callused handling.
8663         (init_base_vars): Likewise.
8664         (init_alias_vars): Initialize call_stmt_vars.
8665         (compute_points_to_sets): Process call-used and call-clobbered
8666         vars for call statements.
8667         (delete_points_to_sets): Free call_stmt_vars.
8668
8669 2010-04-13  Richard Guenther  <rguenther@suse.de>
8670
8671         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
8672         Only add RW dependence for dependence distance zero.
8673         Adjust maximal vectorization factor according to dependences.
8674         Move alignment handling ...
8675         (vect_find_same_alignment_drs): ... here.  New function.
8676         (vect_analyze_data_ref_dependences): Adjust.
8677         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
8678         (vect_analyze_data_refs): Adjust minimal vectorization factor
8679         according to data references.
8680         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
8681         dependences before determining the vectorization factor.
8682         Analyze alignment after determining the vectorization factor.
8683         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
8684         dependences before alignment.
8685         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
8686         Adjust prototype.
8687         (vect_analyze_data_refs): Likewise.
8688         (MAX_VECTORIZATION_FACTOR): New define.
8689
8690 2010-04-13  Duncan Sands  <baldrick@free.fr>
8691
8692         * except.h (lang_eh_type_covers): Remove.
8693         * except.c (lang_eh_type_covers): Likewise.
8694
8695 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8696             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8697
8698         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
8699         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
8700         UNITS_PER_LONG where it is ABI relevant.
8701         (s390_return_addr_rtx): Likewise.
8702         (s390_back_chain_rtx): Likewise.
8703         (s390_frame_area): Likewise.
8704         (s390_frame_info): Likewise.
8705         (s390_initial_elimination_offset): Likewise.
8706         (save_gprs): Likewise.
8707         (s390_emit_prologue): Likewise.
8708         (s390_emit_epilogue): Likewise.
8709         (s390_function_arg_advance): Likewise.
8710         (s390_function_arg): Likewise.
8711         (s390_va_start): Likewise.
8712         (s390_gimplify_va_arg): Likewise.
8713         (s390_function_profiler): Likewise.
8714         (s390_optimize_prologue): Likewise.
8715         (s390_rtx_costs): Likewise.
8716         (s390_secondary_reload): Likewise.
8717         (s390_promote_function_mode): Likewise.
8718         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
8719         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
8720         registers available.
8721         (s390_unwind_word_mode): New function.
8722         (s390_function_value): Split 64 bit values into register pair if
8723         used as return value.
8724         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
8725         function call parameters.  Handle parallels.
8726         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
8727         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
8728         (DWARF_CIE_DATA_ALIGNMENT): New macro.
8729         (s390_expand_setmem): Remove unused variable src_addr.
8730         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
8731         deal with 64 bit registers.
8732         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
8733         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
8734         (UNITS_PER_LONG): New macro.
8735         * libjava/include/s390-signal.h: Define extended ucontext
8736         structure containing the upper halfs of the 64 bit registers.
8737
8738 2010-04-13  Simon Baldwin  <simonb@google.com>
8739
8740         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
8741
8742 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
8743
8744         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
8745         rvalue on the RHS if the LHS is of a non-renamable type.
8746         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
8747
8748 2010-04-13  Matthias Klose  <doko@ubuntu.com>
8749
8750         * gcc.c (cc1_options): Handle -iplugindir before processing
8751         the cc1 spec. Only add -iplugindir once.
8752         (cpp_unique_options): Add -iplugindir option if -fplugin* options
8753         found.
8754         * common.opt (iplugindir): Remove `Separate' property, initialize.
8755         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
8756         option.
8757         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
8758         (distclean): Remove plugin dir.
8759         * doc/invoke.texi: Document -iplugindir.
8760
8761 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
8762
8763         * doc/plugins.texi (Loading Plugins): Document short
8764         -fplugin=foo option.
8765         (Plugin API): Mention default_plugin_dir_name function.
8766
8767         * gcc.c (find_file_spec_function): Add new declaration.
8768         (static_spec_func): Use it for "find-file".
8769         (find_file_spec_function): Add new function.
8770         (cc1_options): Add -iplugindir option if -fplugin* options found.
8771
8772         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
8773
8774         * plugin.c (add_new_plugin): Updated comment, and handle short
8775         plugin name.
8776         (default_plugin_dir_name): Added new function.
8777
8778         * common.opt (iplugindir): New option to set the plugin directory.
8779
8780 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
8781
8782         * config/i386/i386.md (any_rotate): New code iterator.
8783         (rotate_insn): New code attribute.
8784         (rotate): Ditto.
8785         (SWIM124): New mode iterator.
8786         (<rotate_insn>ti3): New expander.
8787         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
8788         any_rotate code iterator.
8789         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
8790         using any_rotate code iterator and SWIM124 mode iterator.
8791         (ix86_rotlti3): New insn_and_split pattern.
8792         (ix86_rotrti3): Ditto.
8793         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
8794         ix86_rotl{di,ti}3 patterns.
8795         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
8796         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
8797         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
8798         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
8799         code iterator and SWI mode iterator.
8800         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
8801         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
8802         code iterator.
8803         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
8804         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
8805         (bswap rotatert splitter): Add splitter.
8806         (bswap splitter): Macroize splitter using any_rotate code iterator.
8807         Add insn predicate to split only for TARGET_USE_XCHGB or when
8808         optimizing function for size.
8809
8810 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
8811
8812         * config/pa/pa.c (emit_move_sequence): Remove use of
8813         deleted variable flag_argument_noalias.
8814
8815 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8816
8817         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
8818         configurations.
8819         Add to unsupported targets list.
8820         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
8821         sparc*-sun-solaris2.[567]* from target lists.
8822         * configure: Regenerate.
8823         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
8824         removal.
8825         Remove Solaris 7 patch references.
8826         (Specific, sparc-sun-solaris2.7): Removed.
8827         (sparc-sun-solaris2*): Update Solaris 7 example.
8828         (sparc64-*-solaris2*): Likewise.
8829
8830 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8831
8832         * config.build (alpha*-dec-osf4*): Remove.
8833         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
8834         of obsolete configurations.
8835         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
8836         support.
8837         * config/alpha/t-osf4: Renamed to ...
8838         * config/alpha/t-osf5: ... this.
8839         * config/alpha/osf.h: Renamed to ...
8840         * config/alpha/osf5.h: ... this.
8841         Merged old osf5.h contents.
8842         Update comments.
8843         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
8844         (EXTRA_SPECS): Removed.
8845         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
8846         reflect removal of Tru64 UNIX V4.0/V5.0 support.
8847         Document that.
8848
8849 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8850
8851         * doc/contrib.texi (Contributors, Rainer Orth): Update.
8852
8853 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
8854
8855         PR/43702
8856         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
8857         __thiscall convention.
8858
8859 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
8860
8861         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
8862         orig_base.
8863         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
8864
8865 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
8866
8867         * function.c (assign_parms_initialize_all): Add unused attribute
8868         to fntype.
8869
8870 2010-04-12  Richard Guenther  <rguenther@suse.de>
8871
8872         * gsstruct.def (GSS_CALL): New.
8873         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
8874         * gimple.h: Include tree-ssa-alias.h.
8875         (struct gimple_statement_call): New.
8876         (union gimple_statement_struct_d): Add gimple_call member.
8877         (gimple_call_reset_alias_info): Declare.
8878         (gimple_call_use_set): New function.
8879         (gimple_call_clobber_set): Likewise.
8880         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
8881         * gimple.c (gimple_call_reset_alias_info): New function.
8882         (gimple_build_call_1): Call it.
8883         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8884         * tree-inline.c (remap_gimple_stmt): Likewise.
8885         (expand_call_inline): Remove callused handling.
8886         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
8887         * tree-dfa.c (dump_variable): Likewise.
8888         * tree-parloops.c (parallelize_loops): Likewise.
8889         * tree-ssa.c (init_tree_ssa): Likewise.
8890         (delete_tree_ssa): Likewise.
8891         * tree-flow-inline.h (is_call_used): Remove.
8892         * tree-flow.h (struct gimple_df): Remove callused member.
8893         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
8894         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
8895         (ref_maybe_used_by_call_p_1): Simplify.
8896         (call_may_clobber_ref_p_1): Likewise.
8897         * tree-ssa-structalias.c (compute_points_to_sets): Set
8898         the call stmt used and clobbered sets.
8899         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
8900         (find_tail_calls): Verify the tail call.
8901
8902 2010-04-12  Richard Guenther  <rguenther@suse.de>
8903
8904         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
8905         single-iteration always-inline inlining.
8906         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
8907         (cgraph_decide_inlining): Do not handle always-inline specially.
8908         (try_inline): Remove always-inline cycle detection special case.
8909         Do not recurse on always-inlines.
8910         (cgraph_early_inlining): Do not iterate if not optimizing.
8911         (cgraph_gate_early_inlining): remove.
8912         (pass_early_inline): Run unconditionally.
8913         (gate_cgraph_decide_inlining): New function.
8914         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
8915         not inlining or optimizing.
8916         (cgraph_decide_inlining_of_small_functions): Also consider
8917         always-inline functions.
8918         (cgraph_default_inline_p): Return true for nodes which should
8919         disregard inline limits.
8920         (estimate_function_body_sizes): Assume zero size and time for
8921         nodes which are marked as disregarding inline limits.
8922         (cgraph_decide_recursive_inlining): Do not perform recursive
8923         inlining on always-inline nodes.
8924
8925 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
8926
8927         PR bootstrap/43699
8928         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
8929         for exprs satisfying handled_component_p.
8930
8931 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
8932
8933         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
8934         non-constant aggregate elements.
8935
8936         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
8937         is a real initialization.
8938
8939 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
8940
8941         PR c/36774
8942         * c-decl.c (start_function): Move forward check for nested function.
8943
8944 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
8945
8946         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
8947         * config/sh/sh.c: Include reload.h.
8948         (sh_legitimize_reload_address): New.
8949         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
8950         sh_legitimize_reload_address.
8951
8952 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
8953
8954         * config/sh/sh.md (*movqi_pop): New insn pattern.
8955         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
8956
8957 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
8958
8959         * config/i386/i386.md (any_shiftrt): New code iterator.
8960         (shiftrt_insn): New code attribute.
8961         (shiftrt): Ditto.
8962         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
8963         using any_shiftrt code iterator.
8964         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
8965         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
8966         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
8967         pattern from corresponding peephole2 patterns.
8968         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
8969         using any_shiftrt code iterator.
8970         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
8971         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
8972         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
8973         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
8974         *{ashr,lshr}<mode>3_cmp_zext.
8975         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
8976
8977 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
8978
8979         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
8980         scratch register.
8981         (*lshr<mode>3_cconly): Ditto.
8982
8983 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
8984
8985         * config/i386/i386.md (lshr<mode>3): Macroize expander from
8986         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
8987         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
8988         pattern from *lshr{di,ti}3_1 and corresponding splitters using
8989         DWI mode iterator.
8990         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
8991         from corresponding peephole2 patterns.
8992         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
8993         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
8994         and *lshrdi3_1_rex64 using SWI mode iterator.
8995         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
8996         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
8997         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
8998         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
8999         and *lshrdi3_cmp_rex64 using SWI mode iterator.
9000         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
9001         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
9002         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
9003         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
9004         SWI mode iterator.
9005
9006 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
9007
9008         * config/i386/i386.md (ashr<mode>3): Macroize expander from
9009         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
9010         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
9011         pattern from *ashr{di,ti}3_1 and corresponding splitters using
9012         DWI mode iterator.
9013         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
9014         from corresponding peephole2 patterns.
9015         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
9016         (ashrsi3_cvt): Rename from ashrsi3_31.
9017         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
9018         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
9019         and x86_64_shift_adj_3 using SWI48 mode iterator.
9020         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
9021         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
9022         and *ashrdi3_1_rex64 using SWI mode iterator.
9023         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
9024         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
9025         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
9026         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
9027         and *ashrdi3_cmp_rex64 using SWI mode iterator.
9028         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
9029         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
9030         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
9031         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
9032         SWI mode iterator.
9033         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
9034         * config/i386/i386.c (ix86_split_ashr): Update for renamed
9035         x86_shift<mode>_adj_3 expanders.
9036
9037 2010-04-10  Wei Guozhi  <carrot@google.com>
9038
9039         PR target/42601
9040         * config/arm/arm.c (arm_pic_static_addr): New function.
9041         (legitimize_pic_address): Call arm_pic_static_addr when it detects
9042         a static symbol.
9043         (arm_output_addr_const_extra): Output expression for new pattern.
9044         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
9045
9046 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
9047
9048         * ira-costs.c (record_reg_classes): Ignore alternatives that are
9049         not enabled.
9050
9051         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
9052         * web.c: Include "insn-config.h" and "recog.h".
9053         (union_match_dups): New function.
9054         (web_main): Call it.
9055         (union_defs): Don't try to recognize match_dups.
9056
9057         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
9058         if doing so would replace the entire pattern.
9059
9060 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
9061
9062         PR target/43707
9063         PR target/43709
9064         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
9065         and splitter pattern.  Change splitter operand 1 predicate to
9066         nonmemory_operand.
9067
9068 2010-04-09  Martin Jambor  <mjambor@suse.cz>
9069
9070         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
9071         lattices are addresses of CONST_DECLs with the same initial value.
9072         (ipcp_print_all_lattices): Print values of CONST_DECLs.
9073         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
9074
9075 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
9076             Bernd Schmidt  <bernds@codesourcery.com>
9077
9078         * loop-invariant.c (replace_uses): New static function.
9079         (move_invariant_reg): Use it to ensure we can replace the uses.
9080
9081 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
9082
9083         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
9084         function template.
9085         (picochip_override_options): Enable section anchors only above -O1.
9086         (picochip_reorg): Fixed a couple of build warnings.
9087
9088 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9089
9090         * configure.ac (plugin -rdynamic test): Log result.
9091         * configure: Regenerate.
9092         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
9093         (RDYNAMIC_SPEC): Define.
9094         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
9095
9096 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9097
9098         * configure.ac: Determine Sun ld version numbers.
9099         (comdat_group): Restrict GNU ld version checks to gld.
9100         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
9101         (enable_comdat): Support --enable-comdat.
9102         * configure: Regenerate.
9103         * doc/install.texi (Configuration): Document --enable-comdat.
9104
9105 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9106
9107         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
9108         * config/sol2-gld.h: ... here.
9109         * config.gcc (sparc*-*-solaris2*): Reflect this.
9110         (i[34567]86-*-solaris2*): Use it.
9111
9112 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
9113
9114         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
9115         setup_clocks_p.
9116         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
9117
9118 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9119
9120         PR 42965
9121         * diagnostic.c (diagnostic_initialize): Initialize
9122         some_warnings_are_errors.
9123         (diagnostic_finish): New.
9124         (diagnostic_action_after_output): Call it before exiting.
9125         (diagnostic_report_diagnostic): Do not print message here. Set
9126         some_warnings_are_errors.
9127         * diagnostic.h (diagnostic_context): Delete
9128         issue_warnings_are_errors_message. Add some_warnings_are_errors.
9129         (diagnostic_finish): Declare.
9130         * toplev.c (toplev_main): Call it before exit.
9131
9132 2010-04-09  Jason Merrill  <jason@redhat.com>
9133
9134         PR c++/42623
9135         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
9136         for incomplete type.
9137
9138         PR c++/41788
9139         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
9140         based on a warning flag.
9141
9142 2010-04-09  Richard Guenther  <rguenther@suse.de>
9143
9144         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
9145
9146 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
9147
9148         PR bootstrap/43684
9149         * varasm.c (default_assemble_visibility): Wrap vars that are
9150         set, but unused, by targets without GAS.
9151         * config/rs6000/rs6000.c (paired_emit_vector_compare):
9152         Remove set, but unused, vars.
9153         (rs6000_legitimize_tls_address): Likewise.
9154         (altivec_expand_dst_builtin): Likewise.
9155         * config/darwin.c (machopic_classify_symbol): Likewise.
9156         (machopic_indirection_name): Likewise.
9157
9158 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
9159
9160         * config/i386/i386.md (DWI): New mode iterator.
9161         (S): New mode attribute.
9162         (shift_operand): Ditto.
9163         (shift_immediate_operand): Ditto.
9164         (ashl_input_operand): Ditto.
9165         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
9166         using SDWIM mode iterator.
9167         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
9168         pattern from *ashl{di,ti}3_1 and corresponding splitters using
9169         DWI mode iterator.
9170         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
9171         from corresponding peephole2 patterns.
9172         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
9173         and x86_64_shift_adj_1 using SWI48 mode iterator.
9174         (x86_shift<mode>_adj_2): Ditto.
9175         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
9176         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
9177         using SWI48 mode iterator.
9178         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
9179         *ashldi3_cmp_rex64 using SWI mode iterator.
9180         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
9181         *ashldi3_cconly_rex64 using SWI mode iterator.
9182         * config/i386/i386.c (ix86_split_ashl): Update for renamed
9183         x86_shift<mode>_adj_{1,2}.
9184         (ix86_split_ashr): Ditto.
9185         (ix86_split_lshr): Ditto.
9186
9187 2010-04-09  Richard Guenther  <rguenther@suse.de>
9188
9189         * target.h (builtin_conversion): Pass in input and output types.
9190         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
9191         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
9192         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
9193         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
9194
9195         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
9196         Handle AVX modes.
9197         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
9198
9199 2010-04-09  Richard Guenther  <rguenther@suse.de>
9200
9201         PR target/43152
9202         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
9203
9204 2010-04-09  Richard Guenther  <rguenther@suse.de>
9205
9206         * tree-vectorizer.h (struct _stmt_vec_info): Document
9207         that vectype is the type of the LHS.
9208         (supportable_widening_operation, supportable_narrowing_operation):
9209         Get both input and output vector types as arguments.
9210         (vect_is_simple_use_1): Declare.
9211         (get_same_sized_vectype): Likewise.
9212         * tree-vect-loop.c (vect_determine_vectorization_factor):
9213         Set STMT_VINFO_VECTYPE to the vector type of the def.
9214         (vectorizable_reduction): Adjust.
9215         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
9216         Adjust.  Specify the output vector type.
9217         (vect_pattern_recog_1): Adjust.
9218         * tree-vect-stmts.c (get_same_sized_vectype): New function.
9219         (vectorizable_call): Adjust.
9220         (vectorizable_conversion): Likewise.
9221         (vectorizable_operation): Likewise.
9222         (vectorizable_type_demotion): Likewise.
9223         (vectorizable_type_promotion): Likewise.
9224         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
9225         the def.
9226         (vect_is_simple_use_1): New function.
9227         (supportable_widening_operation): Get both input and output
9228         vector types.
9229         (supportable_narrowing_operation): Likewise.
9230         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
9231
9232 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
9233
9234         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
9235         __thiscall and _thiscall as predefined macros.
9236         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
9237         thiscall attribute handling.
9238         (ix86_comp_type_attributes): Likewise.
9239         (ix86_function_regparm): Likewise.
9240         (ix86_return_pops_args): Likewise.
9241         (init_cumulative_args): Likewise.
9242         (find_drap_reg): Likewise.
9243         (ix86_static_chain): Likewise.
9244         (x86_this_parameter): Likewise.
9245         (x86_output_mi_thunk): Likewise.
9246         (ix86_attribute_table): Add description for thiscall attribute.
9247         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
9248         * doc/extend.texi: Add documentation for thiscall.
9249
9250 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9251
9252         PR c++/28584
9253         * c.opt (Wint-to-pointer-cast): Available in C++.
9254         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
9255
9256 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
9257
9258         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
9259         * calls.c (expand_call): Pass the function type to aggregate_value_p.
9260         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
9261         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
9262         function type instead.  Reorder and simplify checks.
9263
9264         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
9265
9266 2010-04-08  Jing Yu  <jingyu@google.com>
9267             Zdenek Dvorak  <ook@ucw.cz>
9268
9269         PR tree-optimization/42720
9270         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
9271         loop unswitch conditions here from ...
9272         (tree_unswitch_single_loop): ... here.
9273
9274 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
9275
9276         * tree-if-conv.c: Fix comments and simplify logic.
9277
9278 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
9279
9280         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
9281         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
9282         (main_tree_if_conversion): Update call to tree_if_conversion.
9283
9284 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9285
9286         PR 42485
9287         * doc/invoke.texi (-b,-V): Delete.
9288         * doc/tm.texi: Do not mention -b.
9289         * gcc.c (display_help): Delete -b and -V.
9290         (process_command): Delete -b and -V.
9291         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
9292
9293 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
9294             Wolfgang Gellerich  <gellerich@de.ibm.com>
9295
9296         Implement target hook for loop unrolling
9297         * target.h (loop_unroll_adjust): Add a new target hook function.
9298         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
9299         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
9300         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
9301         (s390_loop_unroll_adjust): Implement the new target hook for s390.
9302         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
9303         target hook.
9304         (decide_unroll_stupid): Likewise.
9305
9306 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9307
9308         PR target/43643
9309         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
9310
9311 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9312
9313         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
9314         (Specific, *-*-solaris2*): Likewise.
9315         Don't prefer Sun as over GNU as.
9316
9317 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
9318
9319         * config/s390/s390.c (override_options): Adjust the z10 defaults
9320         for max-unroll-times, max-completely-peeled-insns
9321         and max-completely-peel-times.
9322
9323 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9324
9325         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
9326         instructions for z10.
9327         (s390_expand_setmem): Likewise.
9328         (s390_expand_cmpmem): Likewise.
9329
9330 2010-04-08  Richard Guenther  <rguenther@suse.de>
9331
9332         PR tree-optimization/43679
9333         * tree-ssa-pre.c (eliminate): Only propagate copies.
9334
9335 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
9336
9337         PR bootstrap/43681
9338         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
9339         set but not used variable warning.
9340
9341 2010-04-08  Wei Guozhi  <carrot@google.com>
9342
9343         PR target/41653
9344         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
9345         (arm_size_rtx_costs): Call the new function when optimized for size.
9346
9347 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
9348
9349         PR debug/43670
9350         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
9351         op0 is not a MEM, just return NULL instead of assertion
9352         failure.
9353         (discover_nonconstant_array_refs): Don't walk debug stmts.
9354
9355 2010-04-08  Doug Kwan  <dougkwan@google.com>
9356
9357         * configure.ac: Recognize gold and do not use its version number
9358         to test ld features.
9359         * configure: Regenerate.
9360
9361 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
9362
9363         PR middle-end/40815
9364         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
9365         (negate_value): Move code to push elements to broken_up_substracts ...
9366         (eliminate_plus_minus_pair): ... here.  Push operands that have no
9367         negative pair to plus_negates.
9368         (repropagate_negates, init_reassoc, fini_reassoc): Update.
9369
9370 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9371
9372         * doc/install.texi (Configuration): Move description of
9373         --enable-lto, --with-libelf*, --enable-gold from Java section to
9374         general section.
9375
9376         * doc/generic.texi (Working with declarations)
9377         (Function Properties, C and C++ Trees): Fix typos.
9378         * doc/sourcebuild.texi (Top Level): Likewise.
9379
9380 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
9381
9382         PR c/18624
9383         * tree.h (DECL_READ_P): Define.
9384         (struct tree_decl_common): Add decl_read_flag.
9385         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
9386         a set but not used warning.
9387         (merge_decls): Merge DECL_READ_P flag.
9388         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
9389         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
9390         * c-common.c (handle_used_attribute, handle_unused_attribute):
9391         Likewise.
9392         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
9393         New prototypes.
9394         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
9395         New functions.
9396         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
9397         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
9398         c_parser_binary_expression, c_parser_cast_expression,
9399         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
9400         Call default_function_array_read_conversion instead of
9401         default_function_array_conversion where needed.
9402         (c_parser_unary_expression, c_parser_conditional_expression,
9403         c_parser_postfix_expression_after_primary, c_parser_initelt):
9404         Likewise.  Call mark_exp_read where needed.
9405         (c_parser_statement_after_labels, c_parser_asm_operands,
9406         c_parser_typeof_specifier, c_parser_sizeof_expression,
9407         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
9408         where needed.
9409         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
9410         New.
9411         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
9412         (warn_unused_but_set_parameter): Default to warn_unused
9413         && extra_warnings.
9414         * doc/invoke.texi: Document -Wunused-but-set-variable and
9415         -Wunused-but-set-parameter.
9416
9417         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
9418         used count variable.
9419         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
9420         when operandN variables aren't used in the body of the expander
9421         or splitter.
9422         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
9423         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
9424         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
9425         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
9426         FOR_EACH_IMM_USE_ON_STMT): Likewise.
9427         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
9428         * tree.c (PROCESS_ARG): Likewise.
9429
9430 2010-04-07  Simon Baldwin  <simonb@google.com>
9431
9432         * diagnostic.h (diagnostic_override_option_index): New macro to
9433         set a diagnostic's option_index.
9434         * c-tree.h (c_cpp_error): Add warning reason argument.
9435         * opts.c (_warning_as_error_callback): New.
9436         (register_warning_as_error_callback): Store callback for
9437         warnings enabled via enable_warning_as_error.
9438         (enable_warning_as_error): Call callback, minor code tidy.
9439         * opts.h (register_warning_as_error_callback): Declare.
9440         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
9441         response to -Werror=.
9442         (c_common_init_options): Register warning_as_error_callback in opts.c.
9443         * common.opt: Add -Wno-cpp option.
9444         * c-common.c (struct reason_option_codes_t): Map cpp warning
9445         reason codes to gcc option indexes.
9446         * (c_option_controlling_cpp_error): New function, lookup the gcc
9447         option index for a cpp warning reason code.
9448         * (c_cpp_error): Add warning reason argument, call
9449         c_option_controlling_cpp_error for diagnostic_override_option_index.
9450         * doc/invoke.texi: Document -Wno-cpp.
9451
9452 2010-04-07  Richard Guenther  <rguenther@suse.de>
9453
9454         * ipa-reference.c (mark_load): Use get_base_address.
9455         (mark_store): Likewise.
9456
9457         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
9458         inserting GIMPLE_NOPs into the IL.
9459         * tree-ssa-structalias.c (get_constraint_for_component_ref):
9460         Explicitly strip handled components and indirect references.
9461
9462         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
9463         folding address expressions.
9464         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
9465         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
9466         operand_equal_p to compare decls.
9467         (ptr_deref_may_alias_decl_p): Likewise.
9468         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
9469         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
9470         Handle reversed comparison ops.
9471         * tree-sra.c (asm_visit_addr): Use get_base_address.
9472         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
9473         * ipa-reference.c (mark_address): Use get_base_address.
9474
9475 2010-04-07  Richard Guenther  <rguenther@suse.de>
9476
9477         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
9478         Propagate constants everywhere.
9479
9480 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
9481
9482         PR debug/43516
9483         * tree.c (MAX_INT_CACHED_PREC): Define.
9484         (nonstandard_integer_type_cache): New array.
9485         (build_nonstandard_integer_type): Cache results for precision
9486         <= MAX_INT_CACHED_PREC.
9487
9488 2010-04-07  Richard Guenther  <rguenther@suse.de>
9489
9490         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
9491         -fargument-noalias-global, -fargument-noalias-anything): Remove.
9492         * common.opt: Likewise.
9493         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
9494         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
9495         (nonoverlapping_memrefs_p): Likewise.
9496         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9497         * opts.c (common_handle_option): Handle OPT_fargument_alias,
9498         OPT_fargument_noalias, OPT_fargument_noalias_anything and
9499         OPT_fargument_noalias_global for backward compatibility.
9500
9501 2010-04-07  Richard Guenther  <rguenther@suse.de>
9502
9503         PR tree-optimization/43270
9504         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
9505         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
9506         * tree-ssa-pre.c (phi_translate_1): Adjust.
9507         (fully_constant_expression): Split out vn_reference handling to ...
9508         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
9509         Fold reads from constant strings.
9510         (vn_reference_lookup): Handle fully constant references.
9511         (vn_reference_lookup_pieces): Likewise.
9512         * Makefile.in (expmed.o-warn): Add -Wno-error.
9513
9514 2010-04-07  Martin Jambor  <mjambor@suse.cz>
9515
9516         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
9517
9518 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
9519
9520         PR driver/41594
9521         * gcc.c: Add -static-libstdc++ to list of recognized options.
9522
9523 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9524
9525         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
9526
9527 2010-04-07  Richard Guenther  <rguenther@suse.de>
9528
9529         PR middle-end/42617
9530         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
9531         bases build simple mem attributes to retain points-to information.
9532
9533 2010-04-07  Richard Guenther  <rguenther@suse.de>
9534
9535         PR middle-end/42617
9536         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
9537         preserve points-to related information.
9538
9539 2010-04-07  Richard Guenther  <rguenther@suse.de>
9540
9541         PR middle-end/42617
9542         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
9543         discard plain indirect references.
9544         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
9545         * tree.c (tree_nop_conversion): Likewise.
9546
9547 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
9548
9549         PR debug/43628
9550         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
9551
9552 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
9553
9554         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
9555         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
9556
9557 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
9558
9559         * tree-if-conv.c: Fix indentation and comments.
9560
9561 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
9562
9563         * tree-if-conv.c: Sort static functions in topological order.
9564
9565 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
9566
9567         * tree-if-conv.c: Fix indentation and comments.
9568
9569 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9570
9571         PR middle-end/43519
9572         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
9573         lang_hooks.types.type_for_size instead of
9574         build_nonstandard_integer_type.
9575         When converting an unsigned type to signed, double its precision.
9576         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
9577         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
9578         (graphite_create_new_loop_guard): When ub + 1 wraps around,
9579         use lb <= ub.
9580
9581 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9582
9583         PR middle-end/43519
9584         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
9585         POINTER_PLUS_EXPR for pointer types.
9586
9587 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9588
9589         PR middle-end/43519
9590         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
9591         * graphite-clast-to-gimple.c: Include langhooks.h.
9592         (max_signed_precision_type): New.
9593         (max_precision_type): Takes two types as arguments.
9594         (precision_for_value): New.
9595         (precision_for_interval): New.
9596         (gcc_type_for_interval): New.
9597         (gcc_type_for_value): New.
9598         (gcc_type_for_clast_term): New.
9599         (gcc_type_for_clast_red): New.
9600         (gcc_type_for_clast_bin): New.
9601         (gcc_type_for_clast_expr): Split up into several functions.
9602         (gcc_type_for_clast_eq): Rewritten.
9603         (compute_bounds_for_level): New.
9604         (compute_type_for_level_1): New.
9605         (compute_type_for_level): New.
9606         (gcc_type_for_cloog_iv): Removed.
9607         (gcc_type_for_iv_of_clast_loop): Rewritten.
9608         (graphite_create_new_loop): Compute the lower and upper bound types
9609         with gcc_type_for_clast_expr.
9610         (graphite_create_new_loop_guard): Same.
9611         (find_cloog_iv_in_expr): Removed.
9612         (compute_cloog_iv_types_1): Removed.
9613         (compute_cloog_iv_types): Removed.
9614         (gloog): Do not call compute_cloog_iv_types.
9615         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
9616         GBB_CLOOG_IV_TYPES.
9617         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
9618         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
9619         (GBB_CLOOG_IV_TYPES): Removed.
9620
9621 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9622
9623         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
9624         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
9625         (detect_commutative_reduction): Same.
9626
9627 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9628
9629         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
9630         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
9631         argument.
9632         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
9633         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
9634         (rewrite_commutative_reductions_out_of_ssa): Same.
9635         * passes.c (execute_function_todo): Call verify_ssa for every pass
9636         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
9637         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
9638         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
9639         with an extra argument.
9640         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
9641         verify_ssa only when the extra argument is true.
9642         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
9643         with an extra argument.
9644         (tree_transform_and_unroll_loop): Same.
9645
9646 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9647
9648         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
9649         for all the passes of the LNO having LOOP_CLOSED_SSA.
9650         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
9651         * tree-loop-distribution.c (pass_loop_distribution): Same.
9652         * tree-pass.h (TODO_verify_loops): Removed.
9653         * tree-ssa-loop.c (pass_tree_loop_init): Same.
9654         (pass_lim): Same.
9655         (pass_tree_unswitch): Same.
9656         (pass_predcom): Same.
9657         (pass_vectorize): Same.
9658         (pass_linear_transform): Same.
9659         (pass_graphite_transforms): Same.
9660         (pass_iv_canon): Same.
9661         (pass_complete_unroll): Same.
9662         (pass_complete_unrolli): Same.
9663         (pass_parallelize_loops): Same.
9664         (pass_loop_prefetch): Same.
9665         (pass_iv_optimize): Same.
9666
9667 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
9668
9669         PR middle-end/32824
9670         * passes.c (init_optimization_passes): Move pass_lim before
9671         pass_copy_prop and pass_dce_loop.
9672
9673 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
9674
9675         PR target/43667
9676         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
9677         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
9678         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
9679         MULTI_* defines for 4 argument vpermil2p* builtins.
9680
9681 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
9682
9683         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
9684         * config/i386/i386.c (x86_maybe_negate_const_int): New.
9685         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
9686         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
9687         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
9688         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
9689         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
9690         Use x86_maybe_negate_const_int to output insn mnemonic.
9691         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
9692         check from instruction predicate.  Update comments.
9693         * config/i386/sync.md (sync_add<mode>): Use
9694         x86_maybe_negate_const_int to output insn mnemonic.
9695
9696 2010-04-06  Jan Hubicka  <jh@suse.cz>
9697
9698         PR tree-optimization/42906
9699         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
9700         IGNORE_SELF argument.  Set visited_control_parents for fully
9701         processed BBs.
9702         (find_obviously_necessary_stmts): Update call of
9703         mark_control_dependent_edges_necessary.
9704         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
9705
9706 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
9707
9708         * config/i386/i386.md: Remove comment about 'e' and 'E'
9709         operand modifier.
9710
9711 2010-04-06  Richard Guenther  <rguenther@suse.de>
9712
9713         PR tree-optimization/43627
9714         * tree-vrp.c (extract_range_from_unary_expr): Widenings
9715         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
9716         not varying.
9717
9718 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
9719
9720         * BASE-VER: Change to 4.6.0.
9721
9722         PR target/43638
9723         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
9724         handling.
9725
9726 2010-04-06  Richard Guenther  <rguenther@suse.de>
9727
9728         PR middle-end/43661
9729         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
9730
9731 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9732
9733         * doc/invoke.texi (Optimize Options): Document that LTO
9734         won't remove object access purely due to incompatible
9735         declarations.
9736
9737 2010-04-04  Matthias Klose  <doko@ubuntu.com>
9738
9739         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
9740         Initialize variable.
9741
9742 2010-04-03  Richard Guenther  <rguenther@suse.de>
9743
9744         PR middle-end/42509
9745         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
9746         require a non-NULL MEM_OFFSET.
9747
9748 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
9749
9750         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
9751         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
9752         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
9753         config/alpha/predicates.md, config/arm/arm.md,
9754         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
9755         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
9756         config/darwin9.h, config/darwin.c, config/darwin.h,
9757         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
9758         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
9759         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
9760         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
9761         config/mips/mips.md, config/mn10300/mn10300.c,
9762         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
9763         config/rs6000/aix.h, config/rs6000/dfp.md,
9764         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
9765         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
9766         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
9767         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
9768         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
9769         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
9770         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
9771         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
9772         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
9773         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
9774         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
9775         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
9776         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
9777         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
9778         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
9779         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
9780         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
9781         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
9782         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
9783         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
9784         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
9785         opt-functions.awk, opth-gen.awk, params.def, passes.c,
9786         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
9787         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
9788         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
9789         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
9790         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
9791         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
9792         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
9793         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
9794         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
9795         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
9796         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
9797         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
9798         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
9799         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
9800
9801 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9802
9803         PR other/43620
9804         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
9805         * aclocal.m4: Regenerate.
9806
9807 2010-04-02  Richard Guenther  <rguenther@suse.de>
9808
9809         PR tree-optimization/43629
9810         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
9811         if we have seen a constant value.
9812
9813 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
9814
9815         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
9816
9817 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
9818
9819         PR target/43469
9820         * arm.c (legitimize_tls_address): Adjust call to
9821         gen_tls_load_dot_plus_four.
9822         (arm_note_pic_base): New function.
9823         (arm_cannot_copy_insn_p): Use it.
9824         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
9825         constraint.
9826
9827 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9828
9829         PR bootstrap/43531
9830
9831         Revert:
9832         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9833
9834         * Makefile.in ($(out_object_file)): Depend on
9835         gt-$(basename $(notdir $(out_file))).h.
9836
9837 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
9838
9839         * config.gcc (lm32-*-rtems*): Add t-lm32.
9840
9841 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
9842
9843         * config.gcc: Add lm32-*-rtems*.
9844         * config/lm32/rtems.h: New file.
9845
9846 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
9847
9848         PR target/42609
9849         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
9850
9851 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
9852
9853         * dwarf2out.c (output_compilation_unit_header): For
9854         -gdwarf-4 use version 4 instead of version 3.
9855         (output_line_info): For version 4 and above emit additional
9856         maximum ops per insn header field.
9857         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
9858
9859         * dwarf2out.c (is_c_family, is_java): Remove.
9860         (lower_bound_default): New function.
9861         (add_bound_info, gen_descr_array_type_die): Use it.
9862
9863 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
9864
9865         PR debug/43325
9866         * dwarf2out.c (gen_variable_die): Allow debug info for variable
9867         re-declaration when it happens in a function.
9868
9869 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
9870
9871         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
9872         (cgraph_remove_function_insertion_hook): Same.
9873         (cgraph_call_function_insertion_hooks): Same.
9874
9875 2010-04-01  Richard Guenther  <rguenther@suse.de>
9876
9877         PR middle-end/43614
9878         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
9879         and TREE_THIS_VOLATILE.
9880         (copy_ref_info): Likewise.
9881         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
9882         * tree.c (build6_stat): Ignore side-effects of all but arg5
9883         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
9884         TARGET_MEM_REF.
9885
9886 2010-04-01  Richard Guenther  <rguenther@suse.de>
9887
9888         PR tree-optimization/43607
9889         * ipa-type-escape.c (check_call): Do not access non-existing
9890         arguments.
9891
9892 2010-04-01  Richard Guenther  <rguenther@suse.de>
9893
9894         PR middle-end/43602
9895         Revert
9896         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
9897                     Jack Howarth <howarth@bromo.med.uc.edu>
9898
9899         * tree-profile.c (tree_init_ic_make_global_vars): Make static
9900         variables TLS.
9901
9902 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9903
9904         * doc/install.texi (Prerequisites): Document libelf usability on
9905         IRIX 5/6 and Solaris 2.
9906         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
9907         Update GNU as, GNU ld requirements.
9908         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
9909         Document Sun Studio compiler download.
9910         Update and simplify as, ld recommendations.
9911         (Specific, *-*-solaris2.7): Note obsoletion, removal.
9912
9913 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9914
9915         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
9916         with_tune_32 to pentium4.
9917
9918 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
9919
9920         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
9921
9922 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9923
9924         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
9925         obsoletion, removal.
9926         Update IDO URL.
9927         Document GNU as requirement.
9928         Update configure requirements.
9929         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
9930         Recomment IRIX 6.5.18+.
9931         Document IDF/IDL requirement.
9932         Document GNU as requirement.
9933         Document GNU ld bootstrap failure.
9934         Remove freeware.sgi.com reference.
9935
9936 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9937
9938         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
9939         UNIX V4.0, V5.0 obsoletion, removal.
9940         Remove --with-gc=simple reference.
9941         Update VM requirements during bootstrap.
9942         Remove -oldas bootstrap description.
9943         Update binutils reference.
9944         Remove comparison failure note.
9945
9946 2010-03-31  Richard Guenther  <rguenther@suse.de>
9947             Zdenek Dvorak  <ook@ucw.cz>
9948             Sebastian Pop  <sebastian.pop@amd.com>
9949
9950         PR middle-end/43464
9951         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
9952         with multiple arguments.
9953         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
9954
9955 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
9956
9957         * graphite-dependences.c (print_pddr): Call print_pdr with an
9958         extra argument.
9959         * graphite-poly.c (debug_pdr): Add an extra argument for the
9960         verbosity level.
9961         (print_pdr): Same.
9962         (print_pbb_domain): Same.
9963         (print_pbb): Same.
9964         (print_scop_context): Same.
9965         (print_scop): Same.
9966         (print_cloog): Same.
9967         (debug_pbb_domain): Same.
9968         (debug_pbb): Same.
9969         (print_pdrs): Same.
9970         (debug_pdrs): Same.
9971         (debug_scop_context): Same.
9972         (debug_scop): Same.
9973         (debug_cloog): Same.
9974         (print_scop_params): Same.
9975         (debug_scop_params): Same.
9976         (print_iteration_domain): Same.
9977         (print_iteration_domains): Same.
9978         (debug_iteration_domain): Same.
9979         (debug_iteration_domains): Same.
9980         (print_scattering_function): Same.
9981         (print_scattering_functions): Same.
9982         (debug_scattering_function): Same.
9983         (debug_scattering_functions): Same.
9984         * graphite-poly.h (debug_pdr): Update declaration.
9985         (print_pdr): Same.
9986         (print_pbb_domain): Same.
9987         (print_pbb): Same.
9988         (print_scop_context): Same.
9989         (print_scop): Same.
9990         (print_cloog): Same.
9991         (debug_pbb_domain): Same.
9992         (debug_pbb): Same.
9993         (print_pdrs): Same.
9994         (debug_pdrs): Same.
9995         (debug_scop_context): Same.
9996         (debug_scop): Same.
9997         (debug_cloog): Same.
9998         (print_scop_params): Same.
9999         (debug_scop_params): Same.
10000         (print_iteration_domain): Same.
10001         (print_iteration_domains): Same.
10002         (debug_iteration_domain): Same.
10003         (debug_iteration_domains): Same.
10004         (print_scattering_function): Same.
10005         (print_scattering_functions): Same.
10006         (debug_scattering_function): Same.
10007         (debug_scattering_functions): Same.
10008
10009 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
10010
10011         * graphite-poly.c (print_scattering_function_1): New.
10012         (print_scattering_function): Call it.
10013         (print_scop_params): Remove spaces at the end of lines.
10014         (print_cloog): New.
10015         (debug_cloog): New.
10016         * graphite-poly.h (print_cloog): Declared.
10017         (debug_cloog): Declared.
10018
10019 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
10020
10021         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
10022         in loop->header.
10023         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
10024         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
10025         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
10026         to switch between adding the IV bump in loop->latch or in loop->header.
10027
10028 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
10029
10030         * graphite-poly.c (print_scattering_function): Pretty print following
10031         the scoplib format.
10032         (print_pdr): Same.
10033         (print_pbb_domain): Same.
10034         (dump_gbb_cases): Same.
10035         (dump_gbb_conditions): Same.
10036         (print_pdrs): Same.
10037         (print_pbb): Same.
10038         (print_scop_params): Same.
10039         (print_scop_context): Same.
10040         (print_scop): Same.
10041         (print_pbb_body): New.
10042         (lst_indent_to): New.
10043         (print_lst): Start new lines with a #.
10044         * graphite-poly.h (pbb_bb): New.
10045         (pbb_index): Use pbb_bb.
10046         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
10047         disjuncts.
10048         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
10049
10050 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
10051
10052         * dwarf2out.c (size_of_die): For -gdwarf-4 use
10053         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
10054         and 0 instead of 1 for dw_val_class_flag.
10055         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
10056         dw_val_class_range_list, dw_val_class_loc_list,
10057         dw_val_class_lineptr and dw_val_class_macptr, use
10058         DW_FORM_flag_present for dw_val_class_flag and
10059         DW_FORM_exprloc for dw_val_class_loc.
10060         (output_die): For -gdwarf-4 print dw_val_class_loc
10061         size as uleb128 instead of 1 or 2 bytes and don't print
10062         anything for dw_val_class_flag.
10063
10064         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
10065         instead of cselib_lookup following by tweaking locs->setting_insn.
10066
10067         PR bootstrap/43596
10068         * cselib.c (cselib_process_insn): Clear cselib_current_insn
10069         even before returning from label, setjmp call or volatile asm
10070         handling.
10071
10072 2010-03-31  Richard Guenther  <rguenther@suse.de>
10073
10074         PR middle-end/43600
10075         * cgraphunit.c (cgraph_output_in_order): Do not allocate
10076         temporary data on stack.
10077
10078 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10079
10080         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
10081         (PUSHSECTION_ASM_OP): Remove.
10082         (POPSECTION_ASM_OP): Remove.
10083         (PUSHSECTION_FORMAT): Remove.
10084         * config/sol2.h (PUSHSECTION_FORMAT): Define.
10085         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
10086         * config/sol2.c (solaris_output_init_fini): Use it.
10087
10088 2010-03-31  Jie Zhang  <jie@codesourcery.com>
10089
10090         PR 43574
10091         * opt-functions.awk (var_type_struct): Use signed char type
10092         for simple variables.
10093
10094 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10095
10096         * config/sol2.c: Include output.h.
10097         (solaris_assemble_visibility): New function.
10098         * config/t-sol2 (sol2.o): Add output.h dependency.
10099         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
10100         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
10101         Redefine.
10102
10103 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
10104
10105         PR target/43580
10106         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
10107         V2SImode or XFmode on PRE_DEC.
10108
10109         PR debug/43557
10110         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
10111         BLKmode.
10112
10113 2010-03-31  Jie Zhang  <jie@codesourcery.com>
10114
10115         PR 43562
10116         * reload.h (caller_save_initialized_p): Declare.
10117         * toplev.c (backend_init_target): Don't call
10118         init_caller_save but set caller_save_initialized_p to false.
10119         * caller-save.c (caller_save_initialized_p): Define.
10120         (init_caller_save): Check caller_save_initialized_p.
10121         * ira.c (ira): Call init_caller_save if flag_caller_saves.
10122
10123 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10124
10125         PR target/39048
10126         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
10127         and soft-fp/t-softfp to tmake_file.
10128         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
10129         (LIBGCC2_TF_CEXT): Define.
10130         (TF_SIZE): Define.
10131
10132 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
10133
10134         PR debug/42977
10135         * cselib.c (n_useless_values): Document handling of debug locs.
10136         (n_useless_debug_values, n_debug_values): New variables.
10137         (new_elt_loc_list): Don't add to debug values, keep count.
10138         (promote_debug_loc): New.
10139         (cselib_reset_table): Zero new variables.
10140         (entry_and_rtx_equal_p): Promote debug locs.
10141         (discard_useless_locs): Increment n_useless_debug_values for
10142         debug values.
10143         (remove_useless_values): Adjust n_useless_values and n_debug_values
10144         with n_useless_debug_values.
10145         (add_mem_for_addr): Promote debug locs.
10146         (cselib_lookup_mem): Likewise.
10147         (cselib_lookup_addr): Renamed to...
10148         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
10149         (cselib_log_lookup): ... this.  Turn into...
10150         (cselib_lookup_addr): ... new wrapper.
10151         (cselib_lookup_from_insn): New.
10152         (cselib_invalidate_regno): Increment n_useless_debug_values for
10153         debug values.
10154         (cselib_invalidate_mem): Likewise.
10155         (cselib_process_insn): Take n_deleted and n_debug_values into
10156         account to guard remove_useless_value call.
10157         (cselib_finish): Zero n_useless_debug_values.
10158         * cselib.h (cselib_lookup_from_insn): Declare.
10159         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
10160         (sched_analyze_2): Likewise.
10161
10162 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
10163
10164         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
10165         functions.
10166         (adjust_mems): Replace narrowing SUBREG of expression containing
10167         just PLUS, MINUS, MULT and ASHIFT of registers and constants
10168         with operations in the narrower mode.
10169
10170         PR debug/43593
10171         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
10172         regs_invalidated_by_call instead all call_used_reg_set registers.
10173
10174 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
10175
10176         PR middle-end/43430
10177         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
10178         pointer comparisons with types_compatible_p.
10179         * tree-vect-stmts.c (vectorizable_call): Same.
10180         (vectorizable_condition): Same.
10181
10182 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10183
10184         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
10185         stack check if the mask would be zero.
10186
10187 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
10188             Jack Howarth <howarth@bromo.med.uc.edu>
10189
10190         * tree-profile.c (tree_init_ic_make_global_vars): Make static
10191         variables TLS.
10192
10193 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
10194
10195         PR other/25232
10196         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
10197         and __unordtf2.
10198         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
10199         Include ___unordxf2 and ___unordtf2.
10200         * config/i386/libgcc-glibc.ver: Do not define inheritance from
10201         GCC_4.4.0 here.
10202
10203 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
10204
10205         * config/lm32/t-lm32: New file.
10206         * config.gcc: Use the above file when targetting lm32.
10207
10208 2010-03-28  Duncan Sands  <baldrick@free.fr>
10209
10210         * Makefile.in (PLUGIN_HEADERS): Add except.h.
10211
10212 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
10213
10214         PR middle-end/43431
10215         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
10216         Improve vectorization cost model diagnostic.
10217
10218 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
10219
10220         PR middle-end/43436
10221         * tree-vect-data-refs.c (vect_analyze_data_refs): When
10222         compute_data_dependences_for_loop returns false, early exit
10223         and output an extra diagnostic for the failed data reference
10224         analysis.
10225
10226 2010-03-29  Richard Guenther  <rguenther@suse.de>
10227
10228         PR tree-optimization/43560
10229         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
10230         (can_sm_ref_p): Treat stores to readonly locations as trapping.
10231
10232 2010-03-29  Jie Zhang  <jie@codesourcery.com>
10233
10234         PR 43564
10235         * toplev.c (process_options): Set optimization_default_node
10236         and optimization_current_node.
10237         * opts.c (decode_options): Don't set optimization_default_node
10238         and optimization_current_node.
10239
10240 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
10241
10242         * config/rtems.h: Abandon -qrtems_debug.
10243
10244 2010-03-28  Jan Hubicka  <jh@suse.cz>
10245
10246         PR tree-optimization/43505
10247         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
10248         map should not be copied.
10249
10250 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10251
10252         PR middle-end/41674
10253         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
10254         cdtors, set DECL_PRESERVE_P.
10255         * ipa.c (cgraph_externally_visible_p): Return true if declaration
10256         should be preseved.
10257
10258 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
10259
10260         PR tree-optimization/43528
10261         * stor-layout.c (place_field): Check that constant fits into
10262         unsigned HWI when skipping calculation of MS bitfield layout.
10263
10264 2010-03-27  Jan Hubicka  <jh@suse.cz>
10265
10266         PR middle-end/43391
10267         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
10268         notice_global_symbol work.
10269
10270 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
10271
10272         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
10273         instead of dwarf2out_decl.
10274         (struct var_loc_node): Remove section_label field.
10275         (dwarf2out_function_decl): New function.
10276         (dwarf2out_var_location): Don't set section_label field.
10277         (dwarf2out_begin_function): Don't empty decl_loc_table here.
10278
10279 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
10280
10281         PR tree-optimization/43544
10282         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
10283         First argument for builtin vectorized function hook is now a
10284         tree to be able to distinguish between machine specific and
10285         standard builtins.
10286         * targhooks.c (default_builtin_vectorized_function): Ditto.
10287         * targhooks.h (default_builtin_vectorized_function): Ditto.
10288         * target.h (struct gcc_target): Ditto.
10289         * tree-vect-stmts.c (vectorizable_function): Ditto.
10290         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
10291         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
10292         Ditto.
10293
10294 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
10295
10296         PR c/43381
10297         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
10298         nested binding iff it is a FUNCTION_DECL.
10299         (store_parm_decls_newstyle): Pass nested=true to bind for
10300         FUNCTION_DECLs amongst parameters.
10301
10302 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
10303
10304         * var-tracking.c (vt_expand_loc_callback): Don't run
10305         cselib_expand_value_rtx_cb in dummy mode if
10306         cselib_dummy_expand_value_rtx_cb returned false.
10307
10308         * var-tracking.c (emit_note_insn_var_location): For one part
10309         notes with offset 0, don't add EXPR_LIST around the location.
10310         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
10311         add_location_or_const_value_attribute): Adjust for that change.
10312
10313         PR debug/43540
10314         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
10315         into first operand and location into second.
10316         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
10317         dw_cfi_oprnd_loc for DW_CFA_expression.
10318         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
10319         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
10320         assume first argument is regnum and second argument is location.
10321
10322 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
10323
10324         PR target/42113
10325         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
10326         of scratch register to DImode.  Split to DImode comparison operator.
10327         Use SImode subreg of scratch register in the multiplication.
10328         (*cmp_sadd_sidi): Ditto.
10329         (*cmp_ssub_si): Ditto.
10330         (*cmp_ssub_sidi): Ditto.
10331
10332 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
10333
10334         PR target/43524
10335         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
10336         Remove invalid assert and wrong comment.
10337
10338 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
10339
10340         PR debug/43516
10341         * flags.h (final_insns_dump_p): New extern.
10342         * final.c (final_insns_dump_p): New variable.
10343         (rest_of_clean_state): Set it before -fdump-final-insns=
10344         dumping, clear afterwards.
10345         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
10346         MEM_ALIAS_SET on MEMs.
10347
10348 2010-03-26  David S. Miller  <davem@davemloft.net>
10349
10350         * configure.ac: Fix sparc GOTDATA_OP bug check.
10351         * configure: Rebuild.
10352
10353 2010-03-26  Alan Modra  <amodra@gmail.com>
10354
10355         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
10356
10357 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10358
10359         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
10360         TLS_SECTION_ASM_FLAG.
10361
10362 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
10363
10364         PR bootstrap/43511
10365         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
10366         Clear first_function_block_is_cold.
10367
10368         PR c/43385
10369         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
10370         argument if the argument is truth_value_p.
10371
10372 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
10373
10374         * config/rs6000/constraints.md: Update copyright year for my changes.
10375
10376         PR target/43484
10377         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
10378         used in reg+reg addressing, swap registers.
10379
10380 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
10381
10382         PR debug/43293
10383         * target.h (struct gcc_target): Add code_end hook.
10384         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
10385         if not yet defined.
10386         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
10387         * toplev.c (compile_file): Call targetm.asm_out.code_end
10388         hook before unwind info/debug info output.
10389         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
10390         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
10391         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
10392         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
10393         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
10394         * config/i386/i386.c (ix86_file_end): Renamed to...
10395         (ix86_code_end): ... this.  Make static.  Don't call
10396         file_end_indicate_exec_stack.  Emit unwind info using
10397         final_start_function/final_end_function.
10398         (darwin_x86_file_end): Remove.
10399         (TARGET_ASM_CODE_END): Define.
10400         * config/i386/i386.h (TARGET_ASM_FILE_END,
10401         NEED_INDICATE_EXEC_STACK): Don't define.
10402         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
10403         (TARGET_ASM_FILE_END): Define to darwin_file_end.
10404         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
10405         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
10406
10407         PR target/43498
10408         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
10409         at the beginning and final_end_function at the end.
10410         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
10411
10412 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10413
10414         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
10415         and Sun as TLS syntax.
10416         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
10417         * configure: Regenerate.
10418         * config.in: Regenerate.
10419         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
10420         (default_elf_asm_named_section): Use it.
10421         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
10422         (i386_output_dwarf_dtprel): Likewise.
10423         (output_addr_const_extra): Likewise.
10424         (output_pic_addr_const): Lowercase @GOTTPOFF.
10425         (output_addr_const_extra): Likewise.
10426         (output_pic_addr_const): Lowercase @GOTNTPOFF.
10427         (output_addr_const_extra): Likewise.
10428         (output_pic_addr_const): Lowercase @INDNTPOFF.
10429         (output_addr_const_extra): Likewise.
10430         (output_pic_addr_const): Lowercase @NTPOFF.
10431         (output_addr_const_extra): Likewise.
10432         (output_pic_addr_const): Lowercase @TPOFF.
10433         (output_addr_const_extra): Likewise.
10434         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
10435         (*tls_global_dynamic_64): Likewise.
10436         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
10437         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
10438
10439         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
10440         (ASM_OUTPUT_TLS_COMMON): Use it.
10441         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
10442
10443         PR target/38118
10444         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
10445         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
10446         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
10447         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
10448         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
10449         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
10450
10451 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10452
10453         * config/i386/i386.c (override_options): Don't accept
10454         -mtls-dialect=sun any longer.
10455         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
10456         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
10457         (*tls_local_dynamic_base_32_sun): Likewise.
10458         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
10459
10460 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
10461
10462         PR debug/43508
10463         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10464         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
10465
10466         PR debug/43479
10467         * ira.c (adjust_cleared_regs): New function.
10468         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
10469
10470         PR debug/19192
10471         PR debug/43479
10472         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
10473         from gimple_block.
10474         * expr.c (expand_expr_real): Restore previous
10475         curr_insn_source_location and curr_insn_block after
10476         expand_expr_real_1 call.
10477         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
10478         instead of expand_expr_real_1.
10479
10480 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
10481
10482         PR rtl-optimization/43413
10483         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
10484         hard regs too.
10485
10486 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
10487
10488         PR target/43348
10489         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
10490         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
10491
10492 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
10493
10494         * config/i386/i386.c (ix86_target_string): Add -mfma.
10495         Fix a typo in comment.
10496
10497 2010-03-22  Mike Stump  <mikestump@comcast.net>
10498
10499         PR target/23071
10500         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
10501         Don't overly align based upon packed packed fields.
10502
10503 2010-03-22  Jason Merrill  <jason@redhat.com>
10504
10505         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
10506         Use () rather than [], and move before the element type.
10507
10508 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10509
10510         * doc/configfiles.texi (Configuration Files): Removed
10511         fixinc/Makefile*, intl/Makefile.*.
10512         * doc/makefile.texi: Fixed markup. Abstract from version
10513         control system used.
10514         (Makefile): Removed obsolete gcc/java/parse.y example.
10515         * doc/sourcebuild.texi: Likewise.
10516         (Top Level): Added config, gnattools, libdecnumber, libgcc,
10517         libgomp, libssp.  Removed fastjar.
10518         (Miscellaneous Docs): Clarify location.
10519         Added COPYING3, COPYING3.LIB.
10520         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
10521
10522 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10523
10524         PR target/38085
10525         * config/i386/i386.c (x86_function_profiler)
10526         [!NO_PROFILE_COUNTERS]: Fix typo.
10527         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
10528         instead of callq.
10529
10530 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
10531             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10532
10533         * doc/sourcebuild.texi (Test Directives): Split into six
10534         subsections, with most of the current text in new subsections
10535         Directives, Selectors, and Final Actions.
10536         (Directives): Split list of test directives into multiple
10537         subsubsections.
10538         (Selectors): Describe use and syntax of selectors.
10539         (Effective-Target Keywords): Describe all existing keywords.
10540         (Add Options): Describe features for dg-add-options.
10541         (Require Support): Describe variants of dg-require-support.
10542         (Final Actions): Describe commands to use in dg-final.
10543
10544 2010-03-22  Michael Matz  <matz@suse.de>
10545
10546         PR middle-end/43475
10547         * recog.c (validate_replace_rtx_group): Replace also in
10548         REG_EQUAL and REG_EQUIV notes.
10549
10550 2010-03-22  Richard Guenther  <rguenther@suse.de>
10551
10552         PR tree-optimization/43390
10553         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
10554         sure vector extracts are type correct.
10555
10556 2010-03-22  Richard Guenther  <rguenther@suse.de>
10557
10558         PR middle-end/40106
10559         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
10560         x * sqrt (x) even when optimizing for size if the target
10561         has native support for sqrt.
10562
10563 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
10564
10565         * varasm.c (make_decl_rtl_for_debug): Also clear
10566         flag_mudflap for the duration of make_decl_rtl call.
10567
10568         PR debug/43443
10569         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
10570         locs from preserved VALUEs.
10571
10572 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10573
10574         PR middle-end/42718
10575         * pa.md (movmemsi): Set align to one if zero.
10576         (movmemdi): Likewise.
10577
10578 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
10579
10580         PR target/42321
10581         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
10582         with their corresponding prologue pushes.
10583
10584 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
10585
10586         PR target/43156
10587         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
10588         at the begining or end.
10589         (spu_expand_epilogue): Likewise.
10590
10591 2010-03-20  Richard Guenther  <rguenther@suse.de>
10592
10593         PR rtl-optimization/43438
10594         * combine.c (make_extraction): Properly zero-/sign-extend an
10595         extraction of the low part of a CONST_INT.  Also handle
10596         CONST_DOUBLE.
10597
10598 2010-03-19  Mike Stump  <mikestump@comcast.net>
10599
10600         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
10601         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
10602         (override_options): Use SUBTARGET32_DEFAULT_CPU.
10603
10604 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
10605
10606         PR c/43211
10607         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
10608         an error.
10609
10610 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
10611
10612         PR rtl-optimization/42258
10613         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
10614         use that may match DEF.
10615
10616         PR target/40697
10617         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
10618         the cost of loading the constant rather than assuming
10619         COSTS_N_INSNS (1).
10620         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
10621         outer code is AND, do the same tests as the andsi3 expander and
10622         return COSTS_N_INSNS (1) if and is cheap.
10623
10624         * optabs.c (avoid_expensive_constant): Fix formatting.
10625
10626 2010-03-19  Michael Matz  <matz@suse.de>
10627
10628         PR c++/43116
10629         * attribs.c (decl_attributes): When rebuilding a function pointer
10630         type use the same qualifiers as the original pointer type.
10631
10632 2010-03-19  Martin Jambor  <mjambor@suse.cz>
10633
10634         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
10635         and is_gimple_ip_invariant_address.
10636
10637 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10638
10639         Revert
10640         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10641
10642         * config/arm/arm.c (arm_override_options): Turn off
10643         flag_dwarf2_cfi_asm for AAPCS variants.
10644
10645 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10646
10647         PR target/43399
10648         * config/arm/arm.c (emit_multi_reg_push): Update comments.
10649         Use PRE_MODIFY instead of PRE_DEC.
10650         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
10651         (vfp_emit_fstmd): Likewise.
10652
10653 2010-03-19  Michael Matz  <matz@suse.de>
10654
10655         PR target/43305
10656         * builtins.c (expand_builtin_interclass_mathfn,
10657         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
10658         if that fails.
10659
10660 2010-03-19  Richard Guenther  <rguenther@suse.de>
10661
10662         PR tree-optimization/43415
10663         * tree-ssa-pre.c (phi_translate): Split out worker to ...
10664         (phi_translate_1): ... this.
10665         (phi_translate): Move all caching here.  Cache all NARY
10666         and REFERENCE translations.
10667
10668 2010-03-19  David S. Miller  <davem@davemloft.net>
10669
10670         With help from Eric Botcazou.
10671         * config/sparc/sparc.c: Include dwarf2out.h.
10672         (emit_pic_helper): Delete.
10673         (pic_helper_symbol_name): Delete.
10674         (pic_helper_emitted_p): Delete.
10675         (pic_helper_needed): New.
10676         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
10677         (get_pc_thunk_name): New.
10678         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
10679         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
10680         Set pic_helper_needed to true.  Don't call emit_pic_helper.
10681         (sparc_expand_prologue): Update load_pic_register call.
10682         (sparc_output_mi_thunk): Likewise.
10683         (sparc_file_end): Emit a hidden comdat symbol for the PIC
10684         thunk if possible.  Output CFI information as needed.
10685
10686 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
10687             Jack Howarth <howarth@bromo.med.uc.edu>
10688
10689         PR target/36399
10690         * config/i386/i386.h: Fix ABI on darwin x86-32.
10691
10692 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
10693
10694         * tree.h: Declare make_decl_rtl_for_debug.
10695         * varasm.c (make_decl_rtl_for_debug): New.
10696         * dwarf2out.c (rtl_for_decl_location): Call it.
10697         * cfgexpand.c (expand_debug_expr): Call it.
10698
10699 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
10700
10701         PR bootstrap/43399
10702         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
10703         mem_mode.
10704
10705         PR bootstrap/43403
10706         * var-tracking.c (vt_init_cfa_base): Do nothing if
10707         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
10708
10709 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
10710
10711         PR debug/42873
10712         * var-tracking.c (canonicalize_vars_star): New.
10713         (dataflow_post_merge_adjust): Use it.
10714
10715 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
10716
10717         PR debug/43058
10718         * var-tracking.c (non_suitable_const): New function.
10719         (add_uses): For DEBUG_INSNs with constants, don't record any
10720         value, instead just the constant value itself.
10721         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
10722         is not VAR_LOC_UNKNOWN_P, set var to the constant.
10723         (emit_notes_in_bb): Likewise.
10724         (emit_note_insn_var_location): For onepart variables if
10725         cur_loc is a VOIDmode constant, use DECL_MODE.
10726
10727 2010-03-18  Martin Jambor  <mjambor@suse.cz>
10728
10729         PR middle-end/42450
10730         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
10731         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
10732         all non-clones.  Moved call redirection...
10733         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
10734         (cgraph_materialize_all_clones): Dispose of all
10735         combined_args_to_skip bitmaps.
10736         (verify_cgraph_node): Do not check for edges pointing to wrong
10737         nodes in inline clones.
10738         * tree-inline.c (copy_bb): Call
10739         cgraph_redirect_edge_call_stmt_to_callee.
10740         * ipa.c (cgraph_remove_unreachable_nodes): Call
10741         cgraph_node_remove_callees even when there are used clones.
10742
10743 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
10744
10745         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
10746
10747 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
10748
10749         PR target/43383
10750         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
10751         for 32bit.
10752
10753 2010-03-18  Michael Matz  <matz@suse.de>
10754
10755         PR middle-end/43419
10756         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
10757         into sqrt(x) if we need to preserve signed zeros.
10758
10759 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
10760             Eric Botcazou  <ebotcazou@adacore.com>
10761
10762         PR rtl-optimization/43360
10763         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
10764         note if we don't know its invariant status.
10765
10766 2010-03-18  Michael Matz  <matz@suse.de>
10767
10768         PR tree-optimization/43402
10769         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
10770         PHI chains of ssa names registered for update.
10771
10772 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
10773
10774         PR target/42427
10775         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
10776         non-offsettable and pre_modify update addressing.
10777         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
10778         and "2" alternatives "#".
10779         (*movdd_softfloat32): Make all alternatives "#";
10780         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
10781         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
10782         (*movdf_softfloat32): Make all alternatives "#";
10783         (movdi): Use the new DIFD mode iterator to create a common splitter
10784         for movdi, movdf and movdd patterns.
10785
10786 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
10787
10788         * common.opt (dumpdir): Remove redundant tab.
10789
10790 2010-03-17  Martin Jambor  <mjambor@suse.cz>
10791
10792         PR tree-optimization/43347
10793         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
10794         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
10795
10796 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
10797
10798         PR rtl-optimization/42216
10799         * regrename.c (create_new_chain): New function, broken out from...
10800         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
10801         appending a use to an empty chain.
10802         (build_def_use): Remove previous changes that convert OP_INOUT to
10803         OP_OUT operands; instead detect the case where an OP_INOUT operand
10804         uses a previously untracked register and create an empty chain for it.
10805
10806 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10807
10808         * doc/extend.texi (Function Attributes): Rewrite unfinished
10809         sentence in ms_abi documentation.
10810
10811 2010-03-17  Alan Modra  <amodra@gmail.com>
10812
10813         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
10814         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
10815         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
10816         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
10817
10818 2010-03-16  Richard Henderson  <rth@redhat.com>
10819
10820         PR middle-end/43365
10821         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
10822         (lower_try_finally): Save and restore eh_seq around the expansion
10823         of the try-finally.
10824
10825 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
10826
10827         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
10828         statements before splitting block.
10829
10830 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10831
10832         * doc/sourcebuild.texi (Testsuites): Fix markup.
10833         Use pathnames relative to gcc/testsuite.
10834         (Test Directives): Move description of how timeout is determined.
10835         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
10836         (C Tests): Correct gcc.misc-tests directory.
10837         Framework tests now live in gcc.test-framework.
10838
10839 2010-03-16  Richard Guenther  <rguenther@suse.de>
10840
10841         PR middle-end/43379
10842         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
10843         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
10844
10845 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
10846             Alexandre Oliva  <aoliva@redhat.com>
10847
10848         PR tree-optimization/42917
10849         * lambda-code.c (remove_iv): Skip debug statements.
10850         (lambda_loopnest_to_gcc_loopnest): Likewise.
10851         (not_interesting_stmt): Debug statements are not interesting.
10852
10853 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
10854
10855         PR debug/43051
10856         PR debug/43092
10857         * cselib.c (cselib_preserve_constants,
10858         cfa_base_preserved_val): New static variables.
10859         (preserve_only_constants): New function.
10860         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
10861         clear its REG_VALUES.  If cselib_preserve_constants, don't
10862         empty the whole hash table, but preserve there VALUEs with constants,
10863         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
10864         (cselib_preserve_cfa_base_value): New function.
10865         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
10866         (cselib_init): Change argument to int bitfield.  Set
10867         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
10868         is in it.
10869         (cselib_finish): Clear cselib_preserve_constants and
10870         cfa_base_preserved_val.
10871         * cselib.h (enum cselib_record_what): New enum.
10872         (cselib_init): Change argument to int.
10873         (cselib_preserve_cfa_base_value): New prototype.
10874         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
10875         * dse.c (dse_step1): Likewise.
10876         * cfgcleanup.c (thread_jump): Likewise.
10877         * sched-deps.c (sched_analyze): Likewise.
10878         * gcse.c (local_cprop_pass): Likewise.
10879         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
10880         If FN is non-NULL, call the callback always and whenever it returns
10881         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
10882         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
10883         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
10884         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
10885         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
10886         * var-tracking.c: Include recog.h.
10887         (bb_stack_adjust_offset): Remove.
10888         (vt_stack_adjustments): Don't call it, instead just gather the
10889         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
10890         (adjust_stack_reference): Remove.
10891         (compute_cfa_pointer): New function.
10892         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
10893         (struct adjust_mem_data): New type.
10894         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
10895         functions.
10896         (get_address_mode): New function.
10897         (replace_expr_with_values): Use it.
10898         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
10899         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
10900         (adjust_sets): Remove.
10901         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
10902         Use get_address_mode.
10903         (get_adjusted_src): Remove.
10904         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
10905         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
10906         (add_with_sets): Don't call adjust_sets.
10907         (fp_setter, vt_init_cfa_base): New functions.
10908         (vt_initialize): Change return type to bool.  Move most of pool etc.
10909         initialization to the beginning of the function from end.  Pass
10910         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
10911         If !frame_pointer_needed, call vt_stack_adjustment before mos
10912         vector is filled, call vt_init_cfa_base if argp/framep has been
10913         eliminated to sp.  If frame_pointer_needed and argp/framep has
10914         been eliminated to hard frame pointer, set
10915         hard_frame_pointer_adjustment and call vt_init_cfa_base after
10916         encountering fp setter in the prologue.  For MO_ADJUST, call
10917         log_op_type before pusing the op into mos vector, not afterwards.
10918         Call adjust_insn before cselib_process_insn/add_with_sets,
10919         call cancel_changes (0) afterwards.
10920         (variable_tracking_main_1): Adjust for vt_initialize calling
10921         vt_stack_adjustments and returning whether it succeeded or not.
10922
10923 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
10924
10925         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
10926         debug statements.
10927
10928 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
10929
10930         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
10931         has been set.
10932         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
10933         drap_reg has not been set.
10934
10935 2010-03-15  Michael Matz  <matz@suse.de>
10936
10937         PR middle-end/43300
10938         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
10939         use it to expand block copies.
10940         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
10941         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
10942         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
10943
10944 2010-03-15  Richard Guenther  <rguenther@suse.de>
10945
10946         PR tree-optimization/43367
10947         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
10948         elimination check.
10949
10950 2010-03-15  Richard Guenther  <rguenther@suse.de>
10951
10952         PR tree-optimization/43317
10953         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
10954
10955 2010-03-15  Martin Jambor  <mjambor@suse.cz>
10956
10957         PR tree-optimization/43141
10958         * tree-sra.c (create_abstract_origin): New function.
10959         (modify_function): Call create_abstract_origin.
10960
10961 2010-03-15  Chris Demetriou  <cgd@google.com>
10962
10963         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
10964         wasn't copied.
10965
10966 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10967
10968         PR middle-end/43354
10969         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
10970         call insert_out_of_ssa_copy for default definitions.
10971
10972 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10973
10974         * graphite-clast-to-gimple.c (my_long_long): Defined.
10975         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
10976         * graphite-sese-to-poly.c (my_long_long): Defined.
10977         (scop_ivs_can_be_represented): Use it.
10978
10979 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10980
10981         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
10982         graphite-max-bbs-per-function, and loop-block-tile-size.
10983         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
10984         with "maximum".
10985         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
10986
10987 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10988
10989         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
10990         forward declaration.
10991         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
10992         (add_upper_bounds_from_estimated_nit): New.
10993         (build_loop_iteration_domains): Use it.
10994
10995 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10996
10997         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
10998
10999 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11000
11001         PR middle-end/43306
11002         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
11003         should be an INTEGER_CST.  Also handle CASE_CONVERT.
11004
11005 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11006
11007         * graphite.c (graphite_initialize): To bound the number of bbs per
11008         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
11009         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
11010         * doc/invoke.texi: Document it.
11011
11012 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11013
11014         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
11015         * graphite-sese-to-poly.h (build_poly_scop): Same.
11016
11017 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11018
11019         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
11020         the number of parameters in the scop.  Use as an upper bound
11021         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
11022         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
11023         * doc/invoke.texi: Document it.
11024
11025 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
11026
11027         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
11028         * doc/c-tree.texi: Remove.
11029         * doc/generic.texi: Merge c-tree.texi here.
11030         * doc/gccint.texi (Trees): Remove menu entry.
11031         (c-tree.texi): Remove @include.
11032         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
11033         * doc/languages.texi (Reading RTL): Ditto.
11034
11035 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
11036
11037         PR target/42869
11038         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
11039
11040 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
11041
11042         PR middle-end/42431
11043         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
11044         code added to work around reload clobbering CONST insns.
11045
11046 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
11047
11048         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
11049         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
11050         (cselib_preserve_only_values): Remove retain argument, don't
11051         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
11052         * cselib.h (cselib_preserve_only_values): Remove retain argument.
11053         * var-tracking.c (micro_operation): Move insn field before union.
11054         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
11055         (struct variable_tracking_info_def): Remove n_mos field, change
11056         mos into a vector of micro_operations.
11057         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
11058         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
11059         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
11060         changing into a vector.
11061         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
11062         come before all other uops generated by add_stores.
11063         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
11064         argument removal.
11065         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
11066         a vector.  Run just one pass over the bbs instead of separate counting
11067         and computation phase.
11068         (vt_finalize): Free VTI (bb)->mos vector instead of array.
11069
11070         PR debug/43329
11071         * tree-inline.c (remap_decls): Put old_var rather than origin_var
11072         into *nonlocalized_list vector.
11073         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
11074         even if origin is non-NULL.
11075         (gen_variable_die): Likewise.
11076         (process_scope_var): Don't change origin.
11077         (gen_decl_die): Likewise.
11078         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
11079         before adding new edges instead of after it, fix moving over
11080         debug stmts.
11081
11082 2010-03-11  David S. Miller  <davem@davemloft.net>
11083
11084         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
11085         of four.
11086         * configure: Rebuild.
11087
11088 2010-03-11  Martin Jambor  <mjambor@suse.cz>
11089
11090         PR tree-optimization/43257
11091         * tree.c (assign_assembler_name_if_neeeded): New function.
11092         (free_lang_data_in_cgraph): Assembler name assignment moved to the
11093         above new function.
11094         * tree.h (assign_assembler_name_if_neeeded): Declare.
11095         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
11096         the function if needed.
11097
11098 2010-03-11  Chris Demetriou  <cgd@google.com>
11099
11100         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
11101         include/stdint-gcc.h, and include/stdint.h world-readable.
11102
11103 2010-03-11  Richard Guenther  <rguenther@suse.de>
11104
11105         PR tree-optimization/43255
11106         * tree-vrp.c (process_assert_insertions_for): Do not insert
11107         asserts for trivial conditions.
11108
11109 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11110
11111         PR tree-optimization/43280
11112         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
11113         generation.  Move calculation of size out of the if branch.
11114         (find_bswap): Modify compare number generation.
11115
11116 2010-03-11  Richard Guenther  <rguenther@suse.de>
11117
11118         PR lto/43200
11119         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
11120         (input_gimple_stmt): Fixup handled component types during
11121         operand read.  Also fix up decls in ADDR_EXPRs.
11122
11123 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
11124
11125         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
11126         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
11127
11128 2010-03-10  Jan Hubicka  <jh@suse.cz>
11129
11130         PR c/43288
11131         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
11132         * varasm.c (get_variable_section): Don't do that here...
11133         (make_decl_rtl): ... and here.
11134         (do_assemble_alias): Produce decl RTL.
11135         (assemble_alias): Likewise.
11136
11137 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
11138
11139         PR debug/43290
11140         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
11141         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
11142         of fde->vdrap_reg.
11143         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
11144         (based_loc_descr): Only express drap or vdrap regno based expressions
11145         using DW_OP_fbreg when not optimizing.
11146         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
11147         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
11148         REG_CFA_SET_VDRAP note.
11149
11150 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
11151
11152         PR tree-optimization/43236
11153         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
11154         error in calculation of base address in reverse iteration case.
11155         (generate_builtin): Take number of latch executions if the statement
11156         is in the latch.
11157
11158 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
11159
11160         PR middle-end/42859
11161         * tree-eh.c: Include pointer-set.h.
11162         (lower_eh_dispatch): Filter out duplicate case labels and
11163         remove the unneeded edge when the label is unused.  Return
11164         true when some edges are removed.
11165         (execute_lower_eh_dispatch): When any lowering resulted in
11166         removing an edge, also delete unreachable blocks.
11167
11168 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
11169
11170         PR bootstrap/43287
11171         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11172         UNSPEC_MACHOPIC_OFFSET.
11173
11174 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
11175
11176         PR target/43294
11177         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
11178         (m68k_delegitimize_address): New function.
11179
11180 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
11181
11182         PR debug/43299
11183         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
11184
11185         PR debug/43299
11186         * var-tracking.c (adjust_sets): New function.
11187         (count_with_sets, add_with_sets): Use it.
11188         (get_adjusted_src): New inline function.
11189         (add_stores): Use it.
11190
11191         PR debug/43304
11192         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
11193         call cselib_dummy_expand_value_rtx_cb instead of
11194         cselib_expand_value_rtx_cb.
11195
11196         PR debug/43293
11197         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
11198         * config/i386/i386.c: Include debug.h and dwarf2out.h.
11199         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
11200         and .cfi_endproc around the pic thunks.
11201         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
11202         all queued unwind info register saves are saved before the call.
11203         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
11204         considered as sp-=4 for unwind info and the pop as sp+=4 which
11205         also clobbers dest, but doesn't actually restore it.
11206
11207         PR debug/43290
11208         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
11209         RTX_FRAME_RELATED_P.
11210
11211 2010-03-09  Jie Zhang  <jie@codesourcery.com>
11212
11213         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
11214         whitespaces in output template.
11215
11216 2010-03-09  Jie Zhang  <jie@codesourcery.com>
11217
11218         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
11219         out array boundary.
11220
11221 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
11222
11223         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
11224         builtins.exp in a separate job.
11225
11226 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11227
11228         * graphite-sese-to-poly.c (add_param_constraints): Use
11229         lower_bound_in_type and upper_bound_in_type.
11230
11231 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11232
11233         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
11234         instead of unsigned_type_node.
11235
11236 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11237             Reza Yazdani  <reza.yazdani@amd.com>
11238
11239         PR middle-end/43065
11240         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
11241         on pointer type parameters.
11242
11243 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
11244
11245         PR middle-end/42644
11246         PR middle-end/42130
11247         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
11248         handle conversions from pointer to integers.
11249         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
11250         induction variable, to be able to work with code generated by CLooG.
11251         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
11252         (build_poly_scop): Bail out if we cannot codegen a loop.
11253
11254 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
11255
11256         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
11257         code generation with gloog_error.
11258
11259 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11260
11261         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
11262         Call fold_convert on all the returned values.
11263         (expand_scalar_variables_expr): Pass to
11264         expand_scalar_variables_ssa_name the type of the resulting expression.
11265
11266 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11267
11268         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
11269         ppl_min_for_le_pointset.
11270         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
11271         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
11272
11273 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11274
11275         * graphite-dependences.c (map_into_dep_poly): Removed.
11276         (dependence_polyhedron_1): Use combine_context_id_scat.
11277
11278 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11279
11280         * graphite-poly.h (struct poly_scattering): Add layout documentation.
11281         (struct poly_bb): Same.
11282         (combine_context_id_scat): New.
11283
11284 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11285
11286         PR middle-end/42326
11287         * sese.c (name_defined_in_loop_p): Return false for default
11288         definitions.
11289
11290 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11291
11292         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
11293         and clean up the logic.
11294
11295 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11296
11297         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
11298         early return.
11299
11300 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
11301
11302         * var-tracking.c (remove_cselib_value_chains): Define only for
11303         ENABLE_CHECKING.
11304         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
11305         delete_slot_part, emit_notes_for_differences_1): Don't call
11306         remove_cselib_value_chains here.
11307         (set_slot_part, emit_notes_for_differences_2): Don't call
11308         add_cselib_value_chains here.
11309         (preserved_values): New vector.
11310         (preserve_value): New function.
11311         (add_uses, add_stores, vt_add_function_parameters): Use it
11312         instead of cselib_preserve_value.
11313         (changed_values_stack): New vector.
11314         (check_changed_vars_0): New function.
11315         (check_changed_vars_1, check_changed_vars_2): Use it.
11316         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
11317         changed_values_stack VALUEs.
11318         (vt_emit_notes): For all preserved_values call
11319         add_cselib_value_chains.  If ENABLE_CHECKING call
11320         remove_cselib_value_chains before verifying value_chains is empty.
11321         Initialize and free changed_values_stack.
11322         (vt_initialize): Initialize preserved_values.
11323         (vt_finalize): Free preserved_values.
11324
11325 2010-03-08  Richard Guenther  <rguenther@suse.de>
11326
11327         PR tree-optimization/43269
11328         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
11329         region detection.
11330
11331 2010-03-08  Martin Jambor  <mjambor@suse.cz>
11332
11333         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
11334         (ipa_is_param_called): Removed.
11335         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
11336         (ipa_print_node_params): Do not print the called flag.
11337         (ipa_write_node_info): Do not stream the called flag.
11338         (ipa_read_node_info): Likewise.
11339
11340 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
11341
11342         PR debug/43176
11343         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
11344         * cselib.c (struct expand_value_data): Add dummy field.
11345         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
11346         dummy to false.
11347         (cselib_dummy_expand_value_rtx_cb): New function.
11348         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
11349         any rtl.
11350         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
11351         * var-tracking.c: Include pointer-set.h.
11352         (variable): Change n_var_parts to char from int.  Add
11353         cur_loc_changed and in_changed_variables fields.
11354         (variable_canonicalize): Remove.
11355         (shared_var_p): New inline function.
11356         (unshare_variable): Maintain cur_loc_changed and
11357         in_changed_variables fields.  If var was in changed_variables,
11358         replace it there with new_var.  Just copy cur_loc instead of
11359         resetting it to something else.
11360         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
11361         (dataflow_set_union): Don't call variable_canonicalize.
11362         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
11363         of their DEBUG_EXPR_TREE_DECLs.
11364         (canonicalize_loc_order_check): Verify that cur_loc is NULL
11365         and in_changed_variables and cur_loc_changed is false.
11366         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
11367         and cur_loc_changed.  Don't update cur_loc here.
11368         (variable_merge_over_src): Don't call variable_canonicalize.
11369         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
11370         removing loc that is equal to cur_loc, clear cur_loc,
11371         set cur_loc_changed and ensure variable_was_changed is called.
11372         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
11373         compare pointers in cur_loc check, if it is equal to loc,
11374         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
11375         (variable_different_p): Remove compare_current_location argument,
11376         don't compare cur_loc.
11377         (dataflow_set_different_1): Adjust variable_different_p caller.
11378         (variable_was_changed): If dv had some var in changed_variables
11379         already, reset in_changed_variables flag for it and propagate
11380         cur_loc_changed over to the new variable.  On empty var
11381         always set cur_loc_changed.  Set in_changed_variables on whatever
11382         var is added to changed_variables.
11383         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
11384         Use shared_var_p.  When removing loc that is equal to cur_loc,
11385         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
11386         end, don't set it to something else, just call variable_was_changed.
11387         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
11388         loc being removed, clear cur_loc and set cur_loc_changed.
11389         Set cur_loc_changed if all locations have been removed.
11390         (struct expand_loc_callback_data): New type.
11391         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
11392         allocated.  Always create SUBREGs if simplify_subreg failed.
11393         Prefer to use cur_loc, when that fails and still in
11394         changed_variables (and seen first time) recompute it.  Set
11395         cur_loc_changed of variables which had to change cur_loc and
11396         compute elcd->cur_loc_changed if any of the subexpressions used
11397         had to change cur_loc.
11398         (vt_expand_loc): Adjust to pass arguments in
11399         expand_loc_callback_data structure.
11400         (vt_expand_loc_dummy): New function.
11401         (emitted_notes): New variable.
11402         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
11403         that weren't used for any other decl in current
11404         emit_notes_for_changes call call vt_expand_loc_dummy to update
11405         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
11406         first loc_chain location if NULL before.  Always use just
11407         cur_loc instead of first loc_chain location.  When cur_loc_changed
11408         is false, when not --enable-checking=rtl just don't emit any note.
11409         When rtl checking, compute the note and assert it is the same
11410         as previous note.  Clear cur_loc_changed and in_changed_variables
11411         at the end before removing from changed_variables.
11412         (check_changed_vars_3): New function.
11413         (emit_notes_for_changes): Traverse changed_vars to call
11414         check_changed_vars_3 on each changed var.
11415         (emit_notes_for_differences_1): Clear cur_loc_changed and
11416         in_changed_variables.  Recompute cur_loc of new_var.
11417         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
11418         (vt_emit_notes): Initialize and destroy emitted_notes.
11419
11420 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
11421
11422         PR rtl-optimization/42220
11423         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
11424         Use verify_reg_tracked to determine if we should use OP_OUT rather
11425         than OP_INOUT.
11426         (build_def_use): If we see an in-out operand for a register that we
11427         know nothing about, treat is an output if possible, fail the block if
11428         not.
11429
11430 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
11431
11432         PR debug/42897
11433         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
11434         permanently.
11435
11436 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
11437
11438         PR debug/42897
11439         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
11440         uses of relevant DEFs that are dead outside the loop too.
11441
11442 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
11443
11444         * var-tracking.c (dataflow_set_merge): Swap src and src2.
11445         Reverted:
11446         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
11447         PR debug/41371
11448         * var-tracking.c (values_to_unmark): New variable.
11449         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
11450         values_to_unmark vector.  Moved body to...
11451         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
11452         instead queue it into values_to_unmark vector.
11453         (vt_find_locations): Free values_to_unmark vector.
11454
11455 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
11456
11457         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
11458         (site.exp): Export them when plugins are enabled.
11459
11460 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
11461
11462         PR middle-end/42326
11463         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
11464         that contain scevs.
11465         (chrec_fold_multiply): Same.
11466
11467 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
11468
11469         PR c/43248
11470         * c-decl.c (build_compound_literal): Return early if init is
11471         an error_mark_node.
11472
11473 2010-03-04  Martin Jambor  <mjambor@suse.cz>
11474
11475         PR tree-optimization/43164
11476         PR tree-optimization/43191
11477         * tree-sra.c (type_consists_of_records_p): Reject records with
11478         zero-size bit-fields at the end.
11479
11480 2010-03-04  Mike Stump  <mikestump@comcast.net>
11481
11482         * Makefile.in (TAGS): Remove *.y.
11483
11484 2010-03-04  Richard Guenther  <rguenther@suse.de>
11485
11486         PR tree-optimization/40761
11487         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
11488         in reverse order.
11489         (my_rev_post_order_compute): New function.
11490         (init_pre): Call it.
11491
11492 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
11493
11494         PR middle-end/43209
11495         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
11496         decrease the cost of an IV candidate when the cost is infinite.
11497
11498 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11499
11500         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
11501         Use '3DNow!' for the extension of that name, ensure normal space
11502         after the string.
11503         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
11504
11505 2010-03-03  Jeff Law  <law@redhat.com>
11506
11507         * PR middle-end/32693
11508         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
11509         than gen_rtx_SUBREG.
11510         (extract_bit_field_1): Likewise.
11511
11512 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
11513
11514         * doc/sourcebuild.texi (Test directives): Document that arguments
11515         include-opts and exclude-opts are now optional for dg-skip-if,
11516         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
11517
11518 2010-03-03  Jason Merrill  <jason@redhat.com>
11519
11520         PR c++/12909
11521         * cgraph.h (varpool_node): Add extra_name field.
11522         * varpool.c (varpool_extra_name_alias): New.
11523         (varpool_assemble_decl): Emit extra name aliases.
11524         (varpool_mark_needed_node): Look past an extra name alias.
11525         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
11526         * lto-streamer-in.c (lto_input_tree): Read it.
11527         * lto-streamer-out.c (output_unreferenced_globals): Write it.
11528
11529 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
11530
11531         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
11532         (sparc*-*-solaris2*): ...this.
11533
11534 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
11535
11536         PR debug/43229
11537         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
11538         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
11539         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
11540         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
11541
11542         PR debug/43237
11543         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
11544         fallthrough to default handling, just with want_address 0 instead of 2.
11545         For single element lists, add_AT_loc directly, otherwise create an
11546         artificial variable DIE and stick location list to it.
11547
11548         PR debug/43177
11549         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
11550         (VAL_EXPR_HAS_REVERSE): Define.
11551         (reverse_op): New function.
11552         (add_stores): For reversible operations add an extra MO_VAL_USE.
11553
11554 2010-03-02  Jason Merrill  <jason@redhat.com>
11555
11556         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
11557
11558 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
11559
11560         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
11561         (sparc64-*-linux*): Likewise.
11562         (sparc64-*-solaris2*): Include assembler files before linker ones.
11563         (sparc-*-solaris2*): Simplify and reorder to match previous case.
11564         * config/sparc/gas.h: Delete.
11565         * config/sparc/sol2-64.h: Add copyright notice.
11566         * config/sparc/sol2-gas-bi.h: Likewise.
11567         * config/sparc/sol2-gld.h: Likewise.
11568         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
11569         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
11570         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
11571         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
11572         (sparc_elf_asm_named_section): Rename into...
11573         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
11574
11575 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
11576
11577         * config/alpha/alpha.c (override_options): Fix -mtune error message.
11578
11579 2010-03-02  Jeff Law  <law@redhat.com>
11580
11581         PR middle-end/42431
11582         * reload1.c (rtx_p, substitute_stack): Declare.
11583         (substitute): Record addresses of changed rtxs.
11584         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
11585         Restore the original rtx when complete.
11586         (reload): Free subsitute_stack when complete.
11587
11588 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
11589
11590         * doc/gccint.texi (menu): Add Testsuites as a chapter.
11591         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
11592         new chapter.
11593         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
11594         LTO Testing, gcov Testing, profopt Testing, compat Testing,
11595         Torture Tests): Change from subsection to section.
11596
11597 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
11598             Steven Bosscher  <steven@gcc.gnu.org>
11599
11600         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
11601         instead of bb.
11602
11603 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
11604
11605         PR middle-end/42640
11606         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
11607         the assignment from the new induction variable to the assignment
11608         of the value from the original loop PHI function.
11609
11610 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
11611             Daniel Jacobowitz  <dan@codesourcery.com>
11612
11613         * doc/sourcebuild.texi (Test directives): Clarify options to
11614         dg-skip-if.
11615
11616 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11617
11618         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
11619         Disable cfi directives unless GCC and gas agree on using read-only
11620         .eh_frame sections for 64-bit.
11621         * configure: Regenerate.
11622
11623 2010-03-01  Richard Guenther  <rguenther@suse.de>
11624
11625         PR tree-optimization/43220
11626         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
11627         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
11628
11629 2010-03-01  Richard Guenther  <rguenther@suse.de>
11630             Martin Jambor  <mjambor@suse.cz>
11631
11632         PR middle-end/41250
11633         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
11634         gimplified parameters.
11635
11636 2010-03-01  Christian Bruel  <christian.bruel@st.com>
11637
11638         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
11639
11640 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
11641
11642         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
11643
11644 2010-03-01  Richard Guenther  <rguenther@suse.de>
11645
11646         PR middle-end/43213
11647         * expr.c (expand_assignment): Use the alias-oracle to tell
11648         if the rhs aliases the result decl.
11649
11650 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11651
11652         PR pch/14940
11653         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
11654         to sol_gt_pch_get_address.
11655         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
11656         64-bit, SPARC and x86.
11657         (sol_gt_pch_get_address): New function.
11658
11659 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
11660
11661         * toplev.h (inform_n, error_n): Declare.
11662         * diagnostic.c (inform_n, error_n): New function.
11663
11664 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
11665
11666         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
11667         has no rtl yet when processing local_decls, queue it and recheck
11668         if deferred stack allocation hasn't assigned it rtl.
11669
11670 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
11671
11672         * config/sh/sh.c (unspec_bbr_uid): New.
11673         (gen_block_redirect): Use it instead of INSN_UID.
11674         (gen_far_branch): Likewise.
11675
11676 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
11677
11678         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
11679         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
11680
11681 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11682
11683         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
11684         (Warning Options): -Wno-conversion-null is valid for
11685         Objective-C++ as well.
11686         * doc/tm.texi (Named Address Spaces): Likewise.
11687         * doc/plugins.texi (Plugins): Replace TABs with spaces.
11688         * doc/tree-ssa.texi (Tree SSA): Likewise.
11689
11690 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
11691
11692         PR bootstrap/43202
11693         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
11694         by default.  Don't set the default arch for
11695         i[34567]86-*-darwin*|x86_64-*-darwin*.
11696
11697 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
11698
11699         PR bootstrap/43202
11700         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
11701         default.  Set the default 32bit/64bit archs with $with_arch
11702         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
11703
11704 2010-02-27  Richard Guenther  <rguenther@suse.de>
11705
11706         PR tree-optimization/43186
11707         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
11708         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
11709         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
11710         unroller iterations.
11711
11712 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
11713
11714         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
11715         required and i[34567]86-*-* targets don't support 64bit ISA.
11716
11717 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
11718
11719         PR ada/43096
11720         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
11721         the same alias set.
11722
11723 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
11724
11725         * config.gcc: Set the default arch at least to Prescott for
11726         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
11727         if SSE math is enabled.
11728
11729 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11730
11731         * diagnostic.c (diagnostic_initialize): Update.
11732         (diagnostic_report_diagnostic): Test inhibit_notes_p for
11733         informative notes.
11734         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
11735         (diagnostic_inhibit_notes): New.
11736         * toplev.c (process_options): inhibit notes with -fcompare-debug.
11737
11738 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11739
11740         PR c/20631
11741         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
11742         * doc/standards.texi: Likewise.
11743         * doc/extend.texi: Likewise.
11744         * doc/trouble.texi: Likewise.
11745         * doc/cppopts.texi: Likewise.
11746         * doc/install.texi: Likewise.
11747         * c.opt (std=c90,std=gnu90): New options.
11748         * c-opts.c (c_common_handle_option): Handle them.
11749
11750 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11751
11752         PR c/24577
11753         * c-decl.c (undeclared_variable): Use an informative note.
11754
11755 2010-02-26  Richard Guenther  <rguenther@suse.de>
11756
11757         PR tree-optimization/43186
11758         * gimple.h (gimple_fold): Remove.
11759         * gimple.c (gimple_fold): Remove.  Inline into single user ...
11760         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
11761         Try harder for conditions.
11762
11763 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
11764
11765         PR debug/43190
11766         * function.c (used_types_insert): Don't skip through named pointer
11767         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
11768         and it is different from the main variant's type.
11769
11770 2010-02-26  Nick Clifton  <nickc@redhat.com>
11771
11772         * config/rx/rx.md (sminsi3): Remove bogus alternative.
11773
11774 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
11775
11776         * config.gcc: Support --with-fpmath=sse for x86.
11777
11778         * config/i386/ssemath.h: New.
11779
11780         * doc/install.texi (--with-fpmath=sse): Documented.
11781
11782 2010-02-26  Richard Guenther  <rguenther@suse.de>
11783
11784         PR tree-optimization/43188
11785         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
11786         vector types of over-aligned element type.
11787
11788 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
11789
11790         PR target/43175
11791         * config/i386/i386.c (expand_vec_perm_blend): Use correct
11792         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
11793
11794 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
11795
11796         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
11797
11798 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
11799
11800         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
11801         * var-tracking.c: Include diagnostic.h.
11802         (debug_dv): New function.
11803         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
11804
11805         PR debug/43160
11806         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
11807         (add_value_chain, add_value_chains, remove_value_chain,
11808         remove_value_chains): Handle DEBUG_EXPRs.
11809         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
11810
11811         PR debug/43161
11812         * regcprop.c (struct queued_debug_insn_change): New type.
11813         (struct value_data_entry): Add debug_insn_changes field.
11814         (struct value_data): Add n_debug_insn_changes field.
11815         (debug_insn_changes_pool): New variable.
11816         (free_debug_insn_changes, apply_debug_insn_changes,
11817         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
11818         (kill_value_one_regno): Call free_debug_insn_changes if needed.
11819         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
11820         fields.
11821         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
11822         changes for them.
11823         (copyprop_hardreg_forward_1): Don't call apply_change_group for
11824         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
11825         changes, call cprop_find_used_regs via note_stores.
11826         (copyprop_hardreg_forward): When copying vd from predecessor
11827         which has any queued DEBUG_INSN changes, make sure the pointers are
11828         cleared.  At the end call df_analyze and then if there are any
11829         DEBUG_INSN changes queued at the end of some basic block for still
11830         live registers, apply them.
11831         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
11832
11833 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
11834
11835         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
11836         (arm*-*-*): Ditto.
11837
11838 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
11839
11840         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
11841         targets.  Set the default with_cpu/with_arch from arch/cpu.
11842         Allow x86-64 and native for with_cpu/with_arch.
11843
11844 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
11845
11846         * ebitmap.c: Change calls to verify_popcount with calls to
11847         sbitmap_verify_popcount.
11848         (ebitmap_clear_bit): Fixed map->cacheindex test and
11849         map>cache update when bit clearing results in an empty
11850         element.
11851
11852 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
11853
11854         PR target/43154
11855         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
11856         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
11857         and support both V2DF and V2DI modes.
11858         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
11859         support both V2DF and V2DI modes.
11860         (general): Delete trailing whitespace from a few patterns.
11861
11862         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11863         V2DF/V2DI interleave high/low builtins.
11864
11865         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
11866         new VSX builtins.
11867
11868         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
11869         interleave high/low functions.
11870
11871 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
11872
11873         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
11874         #pragma extern_prefix.
11875
11876 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
11877
11878         PR debug/43166
11879         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
11880         BLKmode, assert op0 is a MEM and just adjust its mode.
11881
11882         PR debug/43165
11883         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
11884         if bitpos isn't multiple of mode's bitsize.
11885
11886 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11887
11888         * c.opt (-ftemplate-depth=): New.
11889         (-ftemplate-depth-): Deprecate.
11890         * optc-gen.awk: Handle -ftemplate-depth=.
11891         * opth-gen.awk: Likewise.
11892         * c-opts.c (c_common_handle_option): Likewise.
11893         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
11894
11895 2010-02-24  Jason Merrill  <jason@redhat.com>
11896
11897         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
11898
11899 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11900
11901         * cfg.c (alloc_aux_for_block): Remove inline.
11902         (alloc_aux_for_edge): Likewise.
11903
11904 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11905
11906         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
11907
11908 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11909
11910         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
11911         * config/i386/sol2-gas.h: New file.
11912         * config.gcc (i[34567]86-*-solaris2*): Use it.
11913
11914 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11915
11916         PR c/43128
11917         * c-typeck.c (ep_convert_and_check): New.
11918         (build_conditional_expr): Use it.
11919         (build_binary_op): Likewise.
11920
11921 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
11922
11923         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
11924
11925         PR debug/43150
11926         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
11927         bounds even for -O+.
11928         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
11929         expr needs to have DECL_NAME set.
11930
11931 2010-02-24  Nick Clifton  <nickc@redhat.com>
11932
11933         * config/mep/mep.c: Include gimple.h.
11934         (mep_function_uses_sp): Delete unused function.
11935         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
11936         parameters.  Use unsigned integers to count args.  Return a
11937         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
11938
11939 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
11940
11941         PR target/43107
11942         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
11943         greater or equal to nelt instead of 2 * nelt.
11944         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
11945         with nelt - 1.
11946
11947 2010-02-23  Jason Merrill  <jason@redhat.com>
11948
11949         PR debug/42800
11950         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
11951         in cfun->local_decls even if they have register types.
11952
11953         PR c++/42837
11954         * stor-layout.c (place_field): Don't warn about unnecessary
11955         DECL_PACKED if the type is packed.
11956
11957 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
11958
11959         PR target/43139
11960         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
11961         GOTOFF relocs, even when the base reg isn't pic pointer.
11962
11963 2010-02-23  Michael Matz  <matz@suse.de>
11964
11965         PR debug/43077
11966         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
11967         (expand_gimple_basic_block): Generate and use debug temps if there
11968         are debug uses left after the last real use of TERed ssa names.
11969         Unlink debug immediate uses when they are expanded.
11970
11971 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11972
11973         PR 43123
11974         * config/i386/i386.c (override_options): Reorganise to provide
11975         better error messages.
11976
11977 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
11978
11979         PR middle-end/43083
11980         * graphite-scop-detection.c (create_single_exit_edge): Move
11981         the call to find_single_exit_edge to....
11982         (create_sese_edges): ...here.  Don't handle multiple edges
11983         exiting the function.
11984         (build_graphite_scops): Don't handle multiple edges
11985         exiting the function.
11986
11987 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
11988
11989         PR middle-end/43097
11990         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
11991         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
11992
11993 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
11994
11995         PR middle-end/43026
11996         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
11997
11998 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11999
12000         PR c++/43126
12001         * c-typeck.c (convert_arguments): Print declaration location.
12002         * c-common.c (validate_nargs): Rename as
12003         builtin_function_validate_nargs.
12004         (check_builtin_function_arguments): Update.
12005
12006 2010-02-22  Richard Guenther  <rguenther@suse.de>
12007
12008         PR lto/43045
12009         * tree-inline.c (declare_return_variable): Use the type of
12010         the call stmt lhs if available.
12011
12012 2010-02-22  Duncan Sands  <baldrick@free.fr>
12013
12014         * passes.c (register_pass): Always consider all pass lists when
12015         ref_pass_instance_number is zero.
12016
12017 2010-02-22  Richard Guenther  <rguenther@suse.de>
12018
12019         PR tree-optimization/42749
12020         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
12021         parameter.  Do arithmetic in the original type.
12022         (update_accumulator_with_ops): Likewise.
12023         (adjust_accumulator_values): Adjust.
12024
12025 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12026
12027         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
12028         (QI to BLKmode splitter): New splitter.
12029
12030 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
12031
12032         * config/i386/i386.c (initial_ix86_tune_features): Turn on
12033         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
12034
12035 2010-02-22  Richard Guenther  <rguenther@suse.de>
12036
12037         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
12038
12039 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
12040
12041         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
12042         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
12043         ($(T)crti.o, $(T)crtn.o): Remove rules.
12044
12045 2010-02-21  Tobias Burnus  <burnus@net-b.de>
12046
12047         PR fortran/35259
12048         * doc/invoke.texi (-fassociative-math): Document that this
12049         option is automatically enabled for Fortran.
12050
12051 2010-02-20  David S. Miller  <davem@davemloft.net>
12052
12053         * configure.ac: Test if linker and assembler properly support
12054         GOTDATA_OP relocations.
12055         * configure: Rebuild.
12056         * config.in: Likewise.
12057         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
12058         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
12059         (movsi_high_pic): Likewise.
12060         (movdi_lo_sum_pic): Likewise.
12061         (movdi_high_pic): Likewise.
12062         (movsi_pic_gotdata_op): New pattern.
12063         (movdi_pic_gotdata_op): Likewise.
12064         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
12065         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
12066
12067 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
12068
12069         PR target/43067
12070         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
12071         attribute to ssemul.
12072         (xop_mulv2div2di3_high): Ditto.
12073
12074 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12075
12076         PR c++/35669
12077         * c.opt (Wconversion-null): New option.
12078         * doc/invoke.texi (Wconversion-null): Document.
12079
12080 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12081
12082         * common.opt (Wlarger-than-): Add Undocumented.
12083
12084 2010-02-19  Mike Stump  <mikestump@comcast.net>
12085
12086         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
12087
12088 2010-02-19  Jason Merrill  <jason@redhat.com>
12089
12090         PR target/40332
12091         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
12092         * configure: Likewise.
12093
12094 2010-02-20  Alan Modra  <amodra@gmail.com>
12095
12096         PR middle-end/42344
12097         * cgraph.h (cgraph_make_decl_local): Declare.
12098         * cgraph.c (cgraph_make_decl_local): New function.
12099         (cgraph_make_node_local): Use it.
12100         * cgraphunit.c (cgraph_function_versioning): Likewise.
12101         * ipa.c (function_and_variable_visibility): Likewise.
12102
12103 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
12104
12105         PR bootstrap/43121
12106         * except.c (sjlj_emit_function_enter): Don't call
12107         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
12108         directly.
12109         * rtl.h (add_reg_br_prob_note): Remove prototype.
12110
12111 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12112
12113         PR 41779
12114         * c-common.c (conversion_warning): Remove widening conversions
12115         before checking the conversion of integers to reals.
12116
12117 2010-02-19  Mike Stump  <mikestump@comcast.net>
12118
12119         PR middle-end/43125
12120         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
12121
12122         PR objc/43061
12123         * cgraphunit.c (process_function_and_variable_attributes): Check
12124         DECL_PRESERVE_P instead of looking up attribute "used".
12125         * ipa-pure-const.c (check_decl): Likewise.
12126         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
12127         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
12128         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
12129         instead of attribute "used".
12130         * config/sol2-c.c (solaris_pragma_init): Likewise.
12131         (solaris_pragma_fini): Likewise.
12132
12133 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
12134
12135         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
12136         Use XCNEW instead of xcalloc.
12137         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
12138         XNEW instead of xmalloc.
12139         (get_fields): Use XNEWVEC instead of xmalloc.
12140
12141         PR debug/43084
12142         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
12143         populate vars array.
12144         (create_new_general_access): For debug stmts just reset value.
12145         (get_stmt_accesses): For accesses within debug stmts just record them
12146         using add_access_to_acc_sites instead of preventing the peeling or
12147         counting them as accesses.
12148
12149         PR middle-end/42233
12150         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
12151
12152 2010-02-19  Richard Guenther  <rguenther@suse.de>
12153
12154         PR tree-optimization/42916
12155         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
12156         instructions.
12157
12158 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
12159
12160         * configure.ac: Replace all uses of changequote in macro arguments
12161         with proper quoting.
12162
12163 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
12164
12165         PR middle-end/42233
12166         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
12167
12168 2010-02-19  Richard Guenther  <rguenther@suse.de>
12169
12170         PR tree-optimization/42944
12171         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
12172         test for aliasing with errno.
12173
12174 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
12175
12176         PR middle-end/42233
12177         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
12178         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
12179         * dojump.c: Include output.h.
12180         (inv): New inline function.
12181         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
12182         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
12183         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
12184         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
12185         argument, pass it down to other calls.
12186         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
12187         add REG_BR_PROB note to the conditional jump.
12188         * cfgexpand.c (add_reg_br_prob_note): Removed.
12189         (expand_gimple_cond): Don't call it, add the probability
12190         as last argument to jumpif_1/jumpifnot_1.
12191         * Makefile.in (dojump.o): Depend on output.h.
12192         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
12193         callers.
12194         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
12195         * stmt.c (do_jump_if_equal): Likewise.
12196         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
12197         * loop-unswitch.c (compare_and_jump_seq): Likewise.
12198         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
12199         Likewise.
12200         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
12201         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
12202         jumpifnot_1 callers.
12203         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
12204         callers.
12205         (store_expr): Adjust jumpifnot caller.
12206         (store_constructor): Adjust jumpif caller.
12207
12208         PR middle-end/42233
12209         * gimplify.c (gimple_boolify): For __builtin_expect call
12210         gimple_boolify also on its first argument.
12211
12212 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
12213
12214         * configure.ac (gnu-unique-object): Wrap regexps using [] in
12215         changequote block.
12216         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
12217         * configure: Regenerated.
12218
12219 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12220
12221         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
12222         lang_hooks.types_compatible_p instead of comptypes.
12223
12224 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
12225
12226         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
12227         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
12228         if __prefer_thumb__ is defined.
12229
12230 2010-02-18  Martin Jambor  <mjambor@suse.cz>
12231
12232         PR tree-optimization/43066
12233         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
12234         array with zero-sized element type.
12235
12236 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
12237
12238         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
12239         rtx, allocate struct var_loc_node here and return it to the
12240         caller, and only if it is actually needed.
12241         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
12242         move it earlier and return immediately if it returns NULL.
12243
12244 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
12245
12246         * config/sparc/gas.h: New file.  Restore
12247         TARGET_ASM_NAMED_SECTION to its ELF default.
12248         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
12249         check !HAVE_GNU_AS.
12250         * config/sparc/sparc.c (sparc_elf_asm_named_section):
12251         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
12252         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
12253         after sparc/sysv4.h.
12254
12255 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
12256
12257         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
12258
12259 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
12260
12261         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
12262         patterns from predicated pattern.
12263
12264 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
12265
12266         PR target/43103
12267         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
12268         for insn mnemonic suffix.
12269
12270 2010-02-17  Richard Guenther  <rguenther@suse.de>
12271
12272         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
12273         to loop PHI nodes.
12274
12275 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
12276
12277         PR debug/42918
12278         * caller-save.c (save_call_clobbered_regs): If BB ends with
12279         a DEBUG_INSN, move any notes in between last real insn and the last
12280         DEBUG_INSN after the last DEBUG_INSN.
12281
12282 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
12283
12284         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
12285         Fix return type.  Fix argument type.  Explain meaning of return value.
12286
12287 2010-02-16  Richard Guenther  <rguenther@suse.de>
12288
12289         PR tree-optimization/41043
12290         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
12291         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
12292         statements ...
12293         (vrp_visit_phi_node): ... but only for loop PHI nodes.
12294
12295 2010-02-16  Ira Rosen  <irar@il.ibm.com>
12296
12297         PR tree-optimization/43074
12298         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
12299         * tree-vect-loop.c (vect_analyze_loop_operations): Add
12300         vectorizable cycles in hybrid SLP check.
12301         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
12302
12303 2010-02-16  Richard Guenther  <rguenther@suse.de>
12304
12305         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
12306         (true_dependence): If memrefs_conflict_p computes must-alias
12307         trust it.  Move TBAA check after offset-based disambiguation.
12308         (canon_true_dependence): Likewise.
12309
12310 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
12311
12312         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
12313         * doc/invoke.texi: Document it.
12314         * var-tracking.c: Include toplev.h and params.h.
12315         (vt_find_locations): Return bool indicating success.  Compute
12316         hash sizes unconditionally.  Check new parameter, report.
12317         (variable_tracking_main_1): Check vt_find_locations results and
12318         retry.  Renamed from...
12319         (variable_tracking_main): ... this.  New wrapper to preserve
12320         flag_var_tracking_assignments.
12321         * Makefile.in (var-tracking.o): Adjust dependencies.
12322
12323 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
12324             Jakub Jelinek <jakub@redhat.com>
12325
12326         PR target/42854
12327         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
12328         if weak_import attribute is present.
12329         * config/darwin.c (machopic_select_section): Likewise.
12330
12331 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
12332
12333         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
12334         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
12335         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
12336         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
12337
12338         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
12339         types.
12340
12341         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
12342         Fix argument types.
12343
12344         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
12345         Rewrite text to refer to the names.
12346
12347 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
12348
12349         * config/i386/i386-builtin-types.def
12350         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
12351         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
12352         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
12353         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
12354         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
12355         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
12356         IX86_BUILTIN_VPERMIL2PS256.
12357         (MULTI_ARG_4_DF2_DI_I): Defined.
12358         (MULTI_ARG_4_DF2_DI_I1): Defined.
12359         (MULTI_ARG_4_SF2_SI_I): Defined.
12360         (MULTI_ARG_4_SF2_SI_I1): Defined.
12361         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
12362         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
12363         __builtin_ia32_vpermil2ps256.
12364         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
12365         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
12366         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
12367         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
12368         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
12369         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
12370         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
12371         CODE_FOR_xop_vpermil2v8sf3.
12372         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
12373         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
12374         * config/i386/xopintrin.h (_mm_permute2_pd): New.
12375         (_mm256_permute2_pd): New.
12376         (_mm_permute2_ps): New.
12377         (_mm256_permute2_ps): New.
12378
12379 2010-02-15  Nick Clifton  <nickc@redhat.com>
12380
12381         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
12382         boolean parameters.  Use emit_jump_insn when emitting a pop
12383         instruction containing a return insn.
12384         (push): Use 'true' rather than '1' as second parameter to F.
12385         (h8300_expand_prologue): Likewise.
12386         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
12387         (h8300_expand_epilogue): Likewise.
12388
12389 2010-02-15  Richard Guenther  <rguenther@suse.de>
12390
12391         PR middle-end/43068
12392         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
12393         if that is zero.
12394
12395 2010-02-15  Nick Clifton  <nickc@redhat.com>
12396
12397         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
12398         delta.
12399
12400 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
12401
12402         * intl.c (fake_ngettext): New function.
12403         * intl.h (fake_ngettext): Declare.
12404         (ngettext): Define macro.
12405         * collect2.c (notice_translated): New function.
12406         (main): Use notice_translated and ngettext.
12407         * collect2.h (notice_translated): Declare.
12408
12409 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
12410
12411         * reorg.c (delete_computation): Comment fixes.
12412         * caller-save.c (setup_save_areas): Idem.
12413         * sel-sched-dump.c (dump_lv_set): Idem.
12414         * rtl.def: Idem.
12415
12416 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12417
12418         * config/s390/s390.c (s390_sched_init): New function.
12419         (TARGET_SCHED_INIT): Target hook defined.
12420
12421 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
12422             Jack Howarth  <howarth@bromo.med.uc.edu>
12423             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
12424
12425         PR target/42982
12426         Partial revert of unintended change in fix for PR41605.
12427         * config/darwin.h: Fix typo.
12428         * config/darwin9.h: Same.
12429
12430 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
12431
12432         * c-pch.c (pch_init): Clear v.
12433
12434 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
12435
12436         PR middle-end/42930
12437         * graphite-scop-detection.c (graphite_can_represent_scev): Call
12438         graphite_can_represent_init for MULT_EXPR.
12439
12440 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
12441
12442         PR middle-end/42914
12443         PR middle-end/42530
12444         * graphite-sese-to-poly.c (remove_phi): New.
12445         (translate_scalar_reduction_to_array): Call remove_phi.
12446
12447 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
12448
12449         PR middle-end/42771
12450         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
12451         * graphite-clast-to-gimple.h (gloog): Update declaration.
12452         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
12453         * graphite-poly.h (struct poly_bb): Add missing comments.
12454         (struct scop): Add poly_scop_p field.
12455         (POLY_SCOP_P): New.
12456         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
12457         * graphite.c (graphite_transform_loops): Build the polyhedral
12458         representation for each scop before code generation.
12459         * sese.c (rename_variables_in_operand): Removed.
12460         (rename_variables_in_expr): Return the renamed expression.
12461         (rename_sese_parameters): New.
12462         * sese.h (rename_sese_parameters): Declared.
12463
12464 2010-02-11  Richard Guenther  <rguenther@suse.de>
12465
12466         PR tree-optimization/42998
12467         * tree-ssa-pre.c (create_expression_by_pieces): Treat
12468         POINTER_PLUS_EXPR properly.
12469
12470 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
12471             Changpeng Fang  <changpeng.fang@amd.com>
12472
12473         PR middle-end/40886
12474         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
12475         the cost of an IV candidate when the IV is used in a test against zero.
12476
12477         * gcc.dg/tree-ssa/ivopts-3.c: New.
12478
12479 2010-02-11  Richard Guenther  <rguenther@suse.de>
12480
12481         PR lto/41664
12482         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
12483         pointer-vs-decl case by swapping refs.  Handle some cases
12484         of pointer-vs-decl disambiguations more conservatively.
12485         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
12486         to false after expanding.
12487
12488 2010-02-11  Richard Guenther  <rguenther@suse.de>
12489
12490         PR driver/43021
12491         * gcc.c (process_command): Handle LTO file@offset case more
12492         appropriately.
12493
12494 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
12495
12496         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
12497         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
12498         of DEBUG_INSNs.
12499         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
12500
12501         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
12502         if MEM's mode size isn't DWARF2_ADDR_SIZE.
12503         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
12504         Optimize eq/ne comparisons when both arguments are known to be
12505         zero-extended.
12506         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
12507         Don't mask operands unnecessarily if they are known to be already
12508         zero-extended.
12509
12510 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
12511
12512         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
12513         instead of loop.
12514
12515 2010-02-10  Richard Guenther  <rguenther@suse.de>
12516
12517         PR tree-optimization/43017
12518         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
12519         for wrapping signed arithmetic.
12520
12521 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
12522
12523         PR debug/43010
12524         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
12525         if no debug info should be emitted for it.
12526
12527 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
12528
12529         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
12530         note when flag_exceptions is set.
12531
12532 2010-02-10  Duncan Sands  <baldrick@free.fr>
12533
12534         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
12535
12536 2010-02-10  Richard Guenther  <rguenther@suse.de>
12537
12538         PR c/43007
12539         * tree.c (get_unwidened): Handle constants.
12540         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
12541
12542 2010-02-10  Martin Jambor  <mjambor@suse.cz>
12543
12544         PR lto/42985
12545         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
12546         check for variable argument counts independently.
12547
12548 2010-02-10  Christian Bruel  <christian.bruel@st.com>
12549
12550         PR target/42841
12551         * config/sh/sh.c (find_barrier): Increase length for non delayed
12552         conditional branches.
12553
12554 2010-02-10  Christian Bruel  <christian.bruel@st.com>
12555
12556         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
12557
12558 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
12559
12560         * builtins.c (set_builtin_user_assembler_name): Also handle
12561         ffs if int is smaller than word.
12562
12563 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
12564
12565         PR middle-end/42973
12566         * ira-conflicts.c (get_dup): Remove.
12567         (process_reg_shuffles): Add new parameter.  Use it as an
12568         additional guard for copy generation.
12569         (add_insn_allocno_copies): Rewrite.
12570
12571 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
12572
12573         * common.opt (fsched2-use-traces): Preserved for backward
12574         compatibility.
12575         * doc/invoke.texi: Remove the documentation about option
12576         -fsched2-use-traces.
12577         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
12578         flag_sched2_use_traces.
12579         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
12580         the backward compatibility flag section.
12581
12582 2010-02-09  Richard Guenther  <rguenther@suse.de>
12583
12584         PR tree-optimization/43008
12585         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
12586         make HEAP variables initialized from global memory if they
12587         are not known builtin functions.
12588         (find_func_aliases): Adjust.
12589
12590 2010-02-09  Richard Guenther  <rguenther@suse.de>
12591
12592         PR tree-optimization/43000
12593         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
12594         arithmetic manually.
12595
12596 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
12597
12598         PR tree-optimization/42931
12599         * tree-loop-linear.c (try_interchange_loops): Don't call
12600         double_int_mul if estimated_loop_iterations failed.
12601
12602 2010-02-08  Martin Jambor  <mjambor@suse.cz>
12603
12604         PR middle-end/42898
12605         * tree-sra.c (build_accesses_from_assign): Do not mark in
12606         should_scalarize_away_bitmap if stmt has volatile ops.
12607         (sra_modify_assign): Do not process assigns piecemeal if if stmt
12608         has volatile ops.
12609
12610 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
12611
12612         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
12613
12614 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
12615
12616         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
12617         before the pattern.
12618
12619 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
12620
12621         PR middle-end/42946
12622         * df-core.c (df_finish_pass): Change type of saved_flags to int.
12623
12624 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
12625
12626         PR middle-end/42988
12627         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
12628         to unknown_dependence.
12629         (graphite_legal_transform_dr): Handle the unknown_dependence.
12630         (graphite_carried_dependence_level_k): Same.
12631
12632 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
12633
12634         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
12635
12636 2010-02-07  Richard Guenther  <rguenther@suse.de>
12637
12638         PR middle-end/42991
12639         * expr.c (get_inner_reference): Always initialize *pbitsize.
12640
12641 2010-02-07  Richard Guenther  <rguenther@suse.de>
12642
12643         PR middle-end/42956
12644         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
12645         new ARRAY_REFs on variable size element or minimal index arrays.
12646         Complete.
12647         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
12648         gimple_fold_indirect_ref.
12649
12650 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
12651
12652         PR target/42957
12653         * arm.c (arm_override_options): Just return if the user has specified
12654         an invalid fpu name.
12655
12656 2010-02-03  Jason Merrill  <jason@redhat.com>
12657
12658         PR c++/42870
12659         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
12660         i386_pe_maybe_record_exported_symbol.
12661
12662 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
12663
12664         PR target/42924
12665         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
12666         (pa_delegitimize_address): New function.
12667
12668 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
12669
12670         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
12671         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
12672
12673 2010-02-05  Richard Guenther  <rguenther@suse.de>
12674
12675         PR lto/42762
12676         * lto-streamer-in.c (get_resolution): Deal with references
12677         to undefined functions.
12678
12679 2010-02-05  Richard Guenther  <rguenther@suse.de>
12680
12681         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
12682         (fold_const_aggregate_ref): Likewise.
12683         (ccp_fold_stmt): Substitute loads.
12684         (maybe_fold_reference): Verify types before substituting.
12685         Unshare properly.
12686         (fold_gimple_assign): Unshare properly.
12687         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
12688
12689 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
12690
12691         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
12692         for rs6000_gen_cell_microcode.
12693
12694 2010-02-04  Richard Guenther  <rguenther@suse.de>
12695
12696         PR rtl-optimization/42952
12697         * dse.c (const_or_frame_p): Remove MEM handling.
12698
12699 2010-02-04  Nick Clifton  <nickc@redhat.com>
12700
12701         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
12702         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
12703         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
12704         (mn10300_asm_output_mi_thunk): New function.
12705         (mn10300_can_output_mu_thunk): New function.
12706         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
12707         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
12708         (FUNCTION_ARG): Delete incorrect comment.
12709
12710 2010-02-03  Jason Merrill  <jason@redhat.com>
12711
12712         PR c++/40138
12713         * fold-const.c (operand_equal_p): Handle erroneous types.
12714
12715 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
12716
12717         * config/h8300/h8300.md (can_delay): Fix attibute condition.
12718
12719 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
12720
12721         PR rtl-optimization/42941
12722         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
12723         of xmalloc.
12724
12725 2010-02-03  Jason Merrill  <jason@redhat.com>
12726
12727         PR c++/35652
12728         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
12729
12730 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
12731
12732         PR debug/42896
12733         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
12734         (cselib_reset_table): Renamed from...
12735         (cselib_reset_table_with_next_value): ... this.
12736         (cselib_get_next_uid): Renamed from...
12737         (cselib_get_next_unknown_value): ... this.
12738         * cselib.c (next_uid): Renamed from...
12739         (next_unknown_value): ... this.
12740         (cselib_clear_table): Adjust.
12741         (cselib_reset_table): Adjust.  Renamed from...
12742         (cselib_reset_table_with_next_value): ... this.
12743         (cselib_get_next_uid): Adjust.  Renamed from...
12744         (cselib_get_next_unknown_value): ... this.
12745         (get_value_hash): Use hash.
12746         (cselib_hash_rtx): Likewise.
12747         (new_cselib_val): Adjust.  Set and dump uid.
12748         (cselib_lookup_mem): Pass next_uid as hash.
12749         (cselib_subst_to_values): Likewise.
12750         (cselib_log_lookup): Dump uid.
12751         (cselib_lookup): Pass next_uid as hash.  Adjust.
12752         (cselib_process_insn): Adjust.
12753         (cselib_init): Initialize next_uid.
12754         (cselib_finish): Adjust.
12755         (dump_cselib_table): Likewise.
12756         * dse.c (canon_address): Dump value uid.
12757         * print-rtl.c (print_rtx): Print value uid.
12758         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
12759         (dvuid): New type.
12760         (dv_uid): New function, sort of renamed from...
12761         (dv_htab_hash): ... this, reimplemented in terms of it and...
12762         (dv_uid2hash): ... this.  New.
12763         (variable_htab_eq): Drop excess assertions.
12764         (tie_break_pointers): Removed.
12765         (canon_value_cmp): Compare uids.
12766         (variable_post_merge_New_vals): Print uids.
12767         (vt_add_function_parameters): Adjust.
12768         (vt_initialize): Reset table.  Adjust.
12769
12770 2010-02-03  Richard Guenther  <rguenther@suse.de>
12771
12772         PR tree-optimization/42944
12773         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
12774         (call_may_clobber_ref_p_1): Likewise.  Properly handle
12775         malloc and calloc clobbering errno.
12776
12777 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
12778
12779         * doc/invoke.texi: Fix name of sched1 dump.
12780
12781         * opts.c (decode_options): Set flag_tree_switch_conversion
12782         only conditionally on optimize >= 2.
12783
12784         * gcse.c: Assorted comment fixes in pass description.
12785
12786 2010-02-03  Anthony Green  <green@moxielogic.com>
12787
12788         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
12789         nop padding in order to maintain alignment of storage location of
12790         target function address.
12791         (moxie_trampoline_init): Store target function address at newly
12792         aligned location.
12793         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
12794         to 32.
12795         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
12796
12797 2010-02-03  Richard Guenther  <rguenther@suse.de>
12798
12799         PR middle-end/42927
12800         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
12801
12802 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12803
12804         * config.gcc: Reenable check for obsolete targets.
12805         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
12806         mips-sgi-irix6.[0-4]*.
12807
12808 2010-02-02  Nick Clifton  <nickc@redhat.com>
12809
12810         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
12811         constant size of 4 as being the same as 0.
12812         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
12813         can take values in the range 0..4.
12814
12815 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
12816
12817         PR java/41991
12818         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
12819         as _darwin10_Unwind_FindEnclosingFunction().
12820         * libgcc-libsystem.ver: New.
12821
12822 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
12823
12824         PR target/41399
12825         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
12826         implicitly set registers.
12827
12828 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
12829
12830         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
12831         (arm_override_options): Allow automatic selection of the thread
12832         pointer register if thumb2.
12833         (legitimize_pic_address): Improve code sequences for Thumb2.
12834         (arm_call_tls_get_addr): Likewise.
12835         (legitimize_tls_address): Likewise.
12836         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
12837         (pic_load_addr_32bit): ... this.  New named pattern.
12838         * thumb2.md (pic_load_addr_thumb2): Delete.
12839         (pic_load_dot_plus_four): Delete.
12840         (tls_load_dot_plus_four): New named pattern.
12841
12842 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12843
12844         PR libgomp/29986
12845         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
12846         Document fix for TLS bug.
12847
12848 2010-01-31  Richard Guenther  <rguenther@suse.de>
12849
12850         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
12851         conservatively correct.
12852
12853 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12854
12855         PR target/42850
12856         Revert:
12857         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12858
12859         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
12860
12861 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12862
12863         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
12864
12865 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
12866
12867         * config.gcc: Adjust order of makefile fragments for mingw targets.
12868
12869 2010-01-31  Richard Guenther  <rguenther@suse.de>
12870
12871         PR middle-end/42898
12872         * gimplify.c (gimplify_init_constructor): For volatile LHS
12873         initialize a temporary.
12874
12875 2010-01-31  Matthias Klose  <doko@ubuntu.com>
12876
12877         * configure.ac: Fix __stack_chk_fail check for cross builds configured
12878         --with-headers
12879         * configure: Regenerate.
12880
12881 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
12882
12883         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
12884         the same alias set and their sizes different constantness.
12885         (aliasing_component_refs_p): Revert 2009-10-24 change.
12886
12887 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12888
12889         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
12890         unused.
12891
12892 2010-01-29  Richard Guenther  <rguenther@suse.de>
12893
12894         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
12895         Assert we successfully updated the call.
12896
12897 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
12898
12899         PR rtl-optimization/42889
12900         * df.h (df_set_bb_dirty_nonlr): New prototype.
12901         * df-core.c (df_set_bb_dirty_nonlr): New function.
12902         * df-scan.c (df_insn_rescan): Call it instead of
12903         df_set_bb_dirty for DEBUG_INSNs.
12904
12905 2010-01-29  Richard Guenther  <rguenther@suse.de>
12906
12907         PR middle-end/37448
12908         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
12909         quadratic behavior in most cases.
12910
12911 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
12912
12913         PR target/42891
12914         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
12915         in the call to gen_x86_movsicc_0_m1.
12916
12917 2010-01-28  Richard Guenther  <rguenther@suse.de>
12918
12919         PR tree-optimization/42871
12920         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
12921
12922 2010-01-28  Richard Guenther  <rguenther@suse.de>
12923
12924         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
12925         into call arguments.
12926
12927 2010-01-28  Richard Guenther  <rguenther@suse.de>
12928
12929         PR middle-end/42883
12930         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
12931         the forwarder if the destination is an EH landing pad.
12932
12933 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
12934
12935         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
12936         block list passed to gimple_duplicate_sese_tail.
12937         (parallelize_loops): Avoid parallelization when the function
12938         has_nonlocal_label.
12939         Avoid parallelization when the preheader is IRREDUCIBLE.
12940         Try to optimize when estimated_loop_iterations_int is unresolved.
12941         Add the loop's location to the dump file.
12942         * tree-cfg.c (add_phi_args_after_redirect): Remove.
12943         (gimple_duplicate_sese_tail): Remove the check for the latch.
12944         Redirect nexits to the exit block.
12945         Remove handling of the incoming edges to the latch.
12946         Redirect the backedge from the copied latch to the exit bb.
12947
12948 2010-01-28  Michael Matz  <matz@suse.de>
12949
12950         PR target/42881
12951         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
12952         Wrap force_reg into a sequence, emit it before user.
12953
12954 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
12955
12956         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
12957         (arm_rev): New.
12958         (arm_legacy_rev): Likewise.
12959         (thumb_legacy_rev): Likewise.
12960
12961 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
12962
12963         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
12964         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
12965         on MEM's address failed, try avoid_constant_pool_reference and
12966         recurse if it returned something different.
12967         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
12968         address, try avoid_constant_pool_reference and recurse if it
12969         returned something different.
12970         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
12971         address and avoid_constant_pool_reference returned something
12972         different, don't set have_address.
12973
12974 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
12975
12976         PR debug/42861
12977         * var-tracking.c (val_store): Add modified argument, obey it.
12978         Adjust callers.
12979         (count_uses): Move down logging of main.
12980         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
12981         don't need resolution.
12982         (emit_notes_in_bb): Likewise.
12983
12984 2010-01-27  Richard Guenther  <rguenther@suse.de>
12985
12986         PR middle-end/42878
12987         * tree-inline.c (remap_decl): Delay remapping of SSA name
12988         default definitions until we need them.
12989
12990 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
12991
12992         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
12993         (rs6000_delegitimize_address): New function.
12994
12995         * config/s390/s390.c (s390_delegitimize_address): Call
12996         delegitimize_mem_from_attrs.
12997
12998         PR middle-end/42874
12999         * tree-inline.c (cannot_copy_type_1): Removed.
13000         (copy_forbidden): Don't forbid copying of functions containing
13001         records/unions with variable length fields.
13002
13003 2010-01-27  Christian Bruel  <christian.bruel@st.com>
13004
13005         Revert:
13006         PR target/42841
13007         * config/sh/sh.c (find_barrier): Increase length for non delayed
13008         conditional branches.
13009
13010 2010-01-27  Matthias Klose  <doko@ubuntu.com>
13011
13012         * configure.ac (gnu-unique-object): Fix ldd version check.
13013         * configure: Regenerate.
13014
13015 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13016
13017         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
13018         HAVE_GNU_AS value.
13019         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
13020         Test for HAVE_GNU_AS value.
13021
13022 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13023
13024         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
13025         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
13026         INT64_TYPE): Define.
13027         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
13028         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
13029         INT_LEAST64_TYPE): Define.
13030         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
13031         UINT_LEAST64_TYPE): Define.
13032         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
13033         INT_FAST64_TYPE): Define.
13034         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
13035         UINT_FAST64_TYPE): Define.
13036         (INTMAX_TYPE, UINTMAX_TYPE): Define.
13037         (INTPTR_TYPE, UINTPTR_TYPE): Define.
13038         (SIG_ATOMIC_TYPE): Define.
13039
13040 2010-01-26  Richard Guenther  <rguenther@suse.de>
13041
13042         * df-scan.c (df_scan_set_bb_info): Remove assert.
13043         (df_insn_rescan_debug_internal): Merge asserts.
13044         (df_install_ref): Likewise.
13045         (df_mark_reg): Use bitmap_set_range.
13046         (df_hard_reg_used_p): Remove assert.
13047         (df_hard_reg_used_count): Likewise.
13048
13049 2010-01-26  Richard Guenther  <rguenther@suse.de>
13050
13051         PR rtl-optimization/42685
13052         * web.c (web_main): Ignore DEBUG_INSNs.
13053
13054 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
13055
13056         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
13057
13058         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
13059         Fix types of fndecl and arglist parameters.
13060
13061 2010-01-26  Richard Guenther  <rguenther@suse.de>
13062
13063         PR middle-end/42806
13064         * tree-eh.c (unsplit_eh): Skip debug insns.
13065
13066 2010-01-26  Richard Guenther  <rguenther@suse.de>
13067
13068         PR tree-optimization/42250
13069         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
13070
13071 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
13072
13073         PR fortran/42866
13074         * omp-low.c (expand_omp_sections): Only use single_pred if
13075         l2_bb is single_pred_p.
13076
13077 2010-01-25  Christian Bruel  <christian.bruel@st.com>
13078
13079         PR target/42841
13080         * config/sh/sh.c (find_barrier): Increase length for non delayed
13081         conditional branches.
13082         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
13083
13084 2010-01-24  David S. Miller  <davem@davemloft.net>
13085
13086         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
13087         define if not using GAS.
13088         * config/sparc/sparc.c (sparc_elf_asm_named_section):
13089         Likewise.  Delete SECTION_MERGE code, which is only applicable
13090         when using GAS.
13091
13092 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
13093
13094         PR c++/42748
13095         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
13096         mangling of va_list in system headers.
13097
13098 2010-01-23  Toon Moene  <toon@moene.org>
13099
13100         * tree-predcom.c (combine_chains): Return NULL, not false.
13101
13102 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
13103
13104         * tree-loop-distribution.c (distribute_loop): Fix declaration and
13105         initialization of variable res to agree with return type.
13106
13107 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
13108
13109         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
13110         * tree-sra.c: Add include of expr.h.
13111
13112 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
13113
13114         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
13115         insert the debug stmt on the single non-EH edge from the stmt.
13116
13117 2010-01-22  Richard Henderson  <rth@redhat.com>
13118
13119         PR tree-opt/42833
13120         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
13121         the RHS until after generate_subtree_copies has insertted its
13122         code before the current statement.
13123
13124 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
13125
13126         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
13127
13128         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
13129
13130 2010-01-21  Martin Jambor  <mjambor@suse.cz>
13131
13132         PR tree-optimization/42585
13133         * tree-sra.c (struct access): New field grp_total_scalarization.
13134         (dump_access): Dump the new field.
13135         (should_scalarize_away_bitmap): New variable.
13136         (cannot_scalarize_away_bitmap): Likewise.
13137         (sra_initialize): Allocate new bitmaps.
13138         (sra_deinitialize): Free new bitmaps.
13139         (create_access_1): New function.
13140         (create_access): Parts moved to create_access_1.
13141         (type_consists_of_records_p): New function.
13142         (completely_scalarize_record): Likewise.
13143         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
13144         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
13145         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
13146         access.
13147         (analyze_all_variable_accesses): Completely scalarize small eligible
13148         records.
13149
13150 2010-01-21  Martin Jambor  <mjambor@suse.cz>
13151
13152         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
13153
13154 2010-01-21  Andrew Haley  <aph@redhat.com>
13155
13156         * gcc.c (process_command): Move lang_specific_driver before
13157         setting cc_libexec_prefix.
13158
13159 2010-01-21  Richard Guenther  <rguenther@suse.de>
13160
13161         PR middle-end/19988
13162         * fold-const.c (negate_expr_p): Pretend only negative
13163         real constants are easily negatable.
13164
13165 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
13166             Jason Merrill  <jason@redhat.com>
13167
13168         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
13169         (TYPE_TRANSPARENT_AGGR): this, for union and record.
13170         * calls.c (initialize argument_information): Handle it.
13171         * c-common.c (handle_transparent_union_attribute): Use new name.
13172         * c-decl.c (finish_struct): Ditto.
13173         * c-typeck.c (type_lists_compatible_p): Ditto.
13174         (convert_for_assignment): Use new name and also handle record.
13175         * function.c (aggregate_value_p): Handle it.
13176         (pass_by_reference): Ditto.
13177         (assign_parm_data_types): Ditto.
13178         * print-tree.c (print_node): Ditto.
13179         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
13180         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
13181         * tree.c (first_field): New fn.
13182
13183 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
13184
13185         PR target/42818
13186         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
13187         even when linking statically, for now.
13188
13189 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
13190
13191         PR debug/42715
13192         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
13193         without a cselib val.
13194         (count_uses): Accept MO_VAL_SET with no val on stores.
13195         (add_stores): Likewise.
13196
13197 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
13198
13199         * var-tracking.c (check_value_val): Add a compile time assertion.
13200         (dv_is_decl_p): Simplify.
13201         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
13202         gcc_assert if ENABLE_CHECKING.
13203
13204 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
13205
13206         PR debug/42782
13207         * var-tracking.c: Include tree-flow.h.
13208         (mem_dies_at_call): New.
13209         (dataflow_set_preserve_mem_locs): Use it.
13210         (dataflow_set_remove_mem_locs): Likewise.
13211         (dump_var): Renamed from dump_variable.  Adjust all callers.
13212         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
13213         * Makefile.in (var-tracking.o): Adjust deps.
13214
13215 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
13216
13217         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
13218
13219 2010-01-20  Richard Guenther  <rguenther@suse.de>
13220
13221         PR tree-optimization/42717
13222         * tree-ssa-dce.c (get_live_post_dom): Remove.
13223         (forward_edge_to_pdom): Take an arbitrary edge to copy
13224         degenerate PHI args from.
13225         (remove_dead_stmt): Use the first post-dominator even if it
13226         does not contain live statements as redirection destination.
13227
13228 2010-01-20  Richard Guenther  <rguenther@suse.de>
13229
13230         * tree-inline.c (estimate_num_insns): Handle EH builtins.
13231
13232 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
13233
13234         * sel-sched.c (create_speculation_check): Remove set but not used
13235         variable twin.
13236         (try_transformation_cache): Remove set but not used variable ds.
13237         (calculate_privileged_insns): Remove set but not used variables
13238         cur_insn and min_spec_insn.
13239         (find_best_expr): Remove set but not used variable avail_n.
13240         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
13241         variable e.
13242         * cgraphunit.c (assemble_thunk): Remove set but not used variable
13243         false_label.
13244         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
13245         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
13246         new_scop_exit_edge.
13247
13248 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
13249
13250         PR bootstrap/42786
13251         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
13252         cpu types.  Add support for *-sse3 cpu types.
13253         (x86_64-*-*): Ditto.
13254
13255 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
13256
13257         PR middle-end/42803
13258         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
13259         argument, call initializer_constant_valid_p_1 instead of
13260         initializer_constant_valid_p, pass CACHE to it, return NULL
13261         immediately if first call returns NULL.
13262         (initializer_constant_valid_p_1): New function.
13263         (initializer_constant_valid_p): Use it.
13264
13265 2010-01-20  Thomas Quinot  <quinot@adacore.com>
13266
13267         * tree.def (PLACEHOLDER_EXPR): Fix comment.
13268
13269 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
13270
13271         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
13272         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
13273         (loc_list_from_tree): Don't handle unsigned division.  Handle
13274         signed modulo using DW_OP_{over,over,div,mul,minus}.
13275         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
13276         modulo instead of signed.
13277
13278 2010-01-20  DJ Delorie  <dj@redhat.com>
13279
13280         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
13281         (Fpa): Pass it
13282         (h8300_emit_stack_adjustment): Propogate it.
13283         (push): Pass it.
13284         (h8300_expand_prologue): Likewise.
13285         (h8300_expand_epilogue): Likewise.
13286
13287 2010-01-19  Michael Matz  <matz@suse.de>
13288
13289         PR tree-optimization/41783
13290         * tree-data-ref.c (toplevel): Include flags.h.
13291         (dump_data_dependence_relation):  Also dump the inputs if the
13292         result will be unknown.
13293         (split_constant_offset_1): Look through some conversions.
13294         * tree-predcom.c (determine_roots_comp): Restart a new chain if
13295         the offset from last element is too large.
13296         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
13297         (reassociate_to_the_same_stmt): Handle vector registers.
13298         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
13299         (e.g. conversions).
13300         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
13301         wide_prolog_niters argument, emit widening instructions.
13302         (vect_do_peeling_for_alignment): Adjust caller, use widened
13303         variant of the iteration cound.
13304         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
13305
13306 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13307
13308         PR target/38697
13309         * config/arm/neon-testgen.m (emit_automatics): New parameter
13310         features. Adjust for Fixed_return_reg feature.
13311         (test_intrinsic): Call emit_automatics with new feature.
13312         * config/arm/neon.ml: Update copyright years.
13313         (features): New Fixed_return_reg feature.
13314         (ops): Update feature for Vget_low.
13315
13316 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
13317
13318         PR tree-optimization/42719
13319         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
13320         stmt uses.
13321
13322         PR debug/42728
13323         * fwprop.c (all_uses_available_at): Return false if def_set dest
13324         is a REG that is used in def_insn.
13325
13326 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
13327
13328         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
13329
13330         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
13331         Add argument names.
13332
13333         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
13334
13335         * target.h (struct gcc_target) <secondary_reload>: Change type
13336         of last argument to secondary_reload_info *.
13337
13338 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
13339
13340         PR target/42774
13341         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
13342         memory references with unaligned offsets.  Remove CQImode handling.
13343         (unaligned_memory_operand): Return 1 for memory references with
13344         unaligned offsets.  Remove CQImode handling.
13345
13346 2010-01-18  Richard Guenther  <rguenther@suse.de>
13347
13348         PR middle-end/39954
13349         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
13350         builtin calls.
13351
13352 2010-01-18  Richard Guenther  <rguenther@suse.de>
13353
13354         PR tree-optimization/42781
13355         * tree-ssa-structalias.c (find_what_var_points_to): Skip
13356         restrict processing only if the original variable was artificial.
13357
13358 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
13359
13360         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
13361         find number of popped argument bytes.
13362
13363         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
13364         Fix the text that describes the return value for invalid insns.
13365
13366         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
13367
13368         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
13369         Clarify what 'cost of the -dependence' is.  Fix quoting.
13370
13371         * toplev.c (default_get_pch_validity): Rename argument to "sz".
13372         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
13373
13374 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
13375
13376         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
13377         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
13378
13379 2010-01-17  Richard Guenther  <rguenther@suse.de>
13380
13381         PR middle-end/42248
13382         * function.c (split_complex_args): Take a VEC to modify.
13383         (assign_parms_augmented_arg_list): Build a VEC instead of
13384         a chain of PARM_DECLs.
13385         (assign_parms_unsplit_complex): Take a VEC of arguments.
13386         Do not fixup unmodified parms.
13387         (assign_parms): Deal with the VEC.
13388         (gimplify_parameters): Likewise.
13389
13390 2010-01-17  Richard Guenther  <rguenther@suse.de>
13391
13392         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
13393         node existence check.
13394         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
13395         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
13396         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
13397         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
13398         (gimple_execute_on_growing_pred): Likewise.
13399
13400 2010-01-17  Richard Guenther  <rguenther@suse.de>
13401
13402         PR tree-optimization/42773
13403         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
13404         (compute_antic_aux): Likewise.
13405         (compute_partial_antic_aux): Likewise.
13406
13407 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
13408
13409         PR debug/42767
13410         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
13411         and US_TRUNCATE.
13412
13413 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
13414
13415         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
13416         appearance.
13417
13418         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
13419         Fix markup for strict argument.
13420
13421         (TARGET_SCHED_REORDER2): Fix argument types.
13422
13423         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
13424         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
13425
13426         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
13427         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
13428
13429         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
13430         Add argument name.
13431
13432         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
13433         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
13434         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
13435         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
13436         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
13437
13438         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
13439
13440         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
13441
13442         (TARGET_ASM_RELOC_RW_MASK): Add return type.
13443         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
13444
13445         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
13446
13447         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
13448         Use prototype.
13449
13450         (TARGET_ASM_NAMED_SECTION): Fix argument list.
13451
13452         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
13453         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
13454
13455         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
13456
13457         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
13458
13459         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
13460         referring to it.  Fix language.
13461
13462         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
13463
13464         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
13465
13466         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
13467
13468         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
13469
13470         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
13471         '@var{stream}.  Remove stray 'and'.
13472
13473         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
13474
13475         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
13476
13477         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
13478
13479         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
13480         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
13481
13482         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
13483         Fix description of return value.
13484         Rename argument "sz" to "len."
13485
13486         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
13487         Clarify meaning of 'true' return value.
13488
13489         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
13490
13491         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
13492         rep_mode versus mode_rep.
13493
13494         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
13495
13496         (TARGET_BUILTIN_DECL): Fix name.
13497
13498         (TARGET_COMMUTATIVE_P): Fix type of first argument.
13499
13500         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
13501
13502         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
13503
13504         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
13505
13506         (TARGET_RELAXED_ORDERING): Use @deftypevr.
13507
13508         (TARGET_GET_DRAP_RTX): Note that this is a hook.
13509         Clarify language.
13510
13511         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
13512         Rename argument tm_fn to md_fn.
13513
13514         (TARGET_OPTION_PRINT): Fix argument list.
13515
13516 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
13517
13518         PR target/42664
13519         * config/i386/i386.c (ix86_fixup_binary_operands):
13520         Revert FMA4 fixup of operands.
13521
13522 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13523
13524         PR gcc/42525
13525         * Makefile.in (write_entries_to_file, install-plugin):
13526         Use \012 instead of \n with tr.
13527
13528 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
13529
13530         * configure.ac (HAVE_AS_REF): New C macro.
13531         * configure: Regenerate.
13532         * config.in: Likewise.
13533         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
13534         if HAVE_AS_REF.
13535         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
13536         if HAVE_AS_REF.
13537
13538 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
13539
13540         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
13541
13542         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
13543
13544         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
13545
13546         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
13547
13548         (TARGET_IN_SMALL_DATA_P): Fix argument type.
13549
13550         (TARGET_BINDS_LOCAL_P): Fix argument type.
13551
13552         (TARGET_ASM_FILE_END): Use prototype.
13553
13554         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
13555
13556         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
13557
13558         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
13559
13560         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
13561
13562         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
13563         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
13564
13565         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
13566         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
13567
13568         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
13569         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
13570         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
13571         (TARGET_ADDR_SPACE_CONVERT): Likewise.
13572
13573         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
13574
13575         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
13576
13577         (TARGET_INIT_BUILTINS): Use prototype.
13578
13579         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
13580         Put 'const char *' in braces.  Fix parameter types.
13581         (TARGET_INVALID_CONVERSION): Fix parameter types.
13582         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
13583         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
13584
13585         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
13586         Fix argument type.
13587
13588         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
13589
13590         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
13591
13592 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
13593
13594         * doc/tm.texi (TARGET_HELP): Fix return type.
13595
13596         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
13597         in braces.  Fix argument types.
13598
13599         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
13600
13601         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
13602
13603         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
13604
13605         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
13606         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
13607
13608         (TARGET_MANGLE_TYPE): Fix argument types.
13609
13610         (TARGET_IRA_COVER_CLASSES): Use prototype.
13611
13612         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
13613
13614         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
13615
13616         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
13617
13618         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
13619
13620         (TARGET_CALLEE_COPIES): Fix argument types.
13621
13622         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
13623
13624         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
13625
13626         (TARGET_FUNCTION_VALUE): Fix argument types.
13627
13628         (TARGET_RETURN_IN_MSB): Fix argument type.
13629
13630         (TARGET_RETURN_IN_MEMORY): Fix argument types.
13631
13632         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
13633
13634         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
13635
13636         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
13637         agree with return type.
13638
13639         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
13640
13641 2010-01-15  Jing Yu  <jingyu@google.com>
13642
13643         PR rtl-optimization/42691
13644         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
13645         a pseudo to a constant and are merged, and adjust comments.
13646
13647 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
13648
13649         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
13650
13651 2010-01-15  Richard Guenther  <rguenther@suse.de>
13652
13653         PR middle-end/42739
13654         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
13655         labels of computed or non-local gotos to the destination.
13656         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
13657         landing pad label is the first label.
13658
13659 2010-01-15  Richard Guenther  <rguenther@suse.de>
13660
13661         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
13662
13663 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
13664
13665         PR target/42747
13666         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
13667         to allow generation of the xssqrtdp instruction on power7.
13668         (sqrtdf2_fpr): Ditto.
13669
13670 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
13671
13672         PR middle-end/42674
13673         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
13674         functions with noreturn attribute.
13675
13676         PR c++/42608
13677         * varasm.c (declare_weak): Add weak attribute to decl if it
13678         doesn't have one already.
13679         (assemble_external): Only add decls to weak_decls if they also
13680         have weak attribute.
13681
13682 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
13683
13684         * var-tracking.c (var_reg_delete): Don't delete the association
13685         between REGs and values or one-part variables if the register
13686         isn't clobbered.
13687
13688 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
13689
13690         PR debug/42657
13691         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
13692         because its first operand is a non-localized variable.
13693
13694 2010-01-14  Martin Jambor  <mjambor@suse.cz>
13695
13696         PR tree-optimization/42706
13697         * tree-sra.c (encountered_recursive_call): New variable.
13698         (encountered_unchangable_recursive_call): Likewise.
13699         (sra_initialize): Initialize both new variables.
13700         (callsite_has_enough_arguments_p): New function.
13701         (scan_function): Call decl and flags check only for IPA-SRA, check
13702         whether there is a recursive call and whether it has enough arguments.
13703         (all_callers_have_enough_arguments_p): New function.
13704         (convert_callers): Look for recursive calls only when
13705         encountered_recursive_call is set.
13706         (ipa_early_sra): Bail out either if
13707         !all_callers_have_enough_arguments_p or
13708         encountered_unchangable_recursive_call.
13709
13710 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13711
13712         * sel-sched.c: Add 2010 to copyright years.
13713         * sel-sched-ir.c: Likewise.
13714         * sel-sched-ir.h: Likewise.
13715
13716 2010-01-14  Martin Jambor  <mjambor@suse.cz>
13717
13718         PR tree-optimization/42714
13719         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
13720         constructors specially.
13721
13722 2010-01-14  Andi Kleen  <ak@linux.intel.com>
13723
13724         * config/i386/drivers-i386.c (detect_caches_intel):
13725         Add l2sizekb parameter and fill in.
13726         (host_detect_local_cpu): Add l2sizekb, fill in.
13727         Add Atom small cache heuristic.
13728
13729 2010-01-14  Andi Kleen  <ak@linux.intel.com>
13730
13731         * config/i386/drivers-i386.c (detect_caches_cpuid4):
13732         Add level3 parameter and fill in.
13733         (detect_caches_intel): Handle level3 cache.
13734
13735 2010-01-14  Andi Kleen  <ak@linux.intel.com>
13736
13737         * config/i386/drivers-i386.c (host_detect_local_cpu):
13738         Fix core duo detection.
13739
13740 2010-01-14  Andi Kleen  <ak@linux.intel.com>
13741
13742         * config/i386/drivers-i386.c (host_detect_local_cpu):
13743         Fix Atom detection.
13744
13745 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13746
13747         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
13748         (rs6000_variable_issue_1): this.  Use...
13749         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
13750
13751 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13752
13753         * sel-sched-ir.c (sel_restore_other_notes): Rename to
13754         sel_restore_notes.  Update all callers.  Call reemit_notes
13755         for all insns.
13756
13757 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13758
13759         PR rtl-optimization/42246
13760         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
13761         loops.
13762
13763 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13764
13765         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
13766         all successors is the same as number of successors in current region.
13767
13768 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13769
13770         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
13771         to rename is not separable.  Otherwise check that its LHS is not NULL.
13772
13773 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13774
13775         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
13776
13777 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13778
13779         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
13780         available registers when failed to discover LHS register class.
13781         Fix indentation.  Update comment.
13782
13783 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13784             Alexander Monakov  <amonakov@ispras.ru>
13785
13786         PR rtl-optimization/42389
13787         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
13788         to can_issue_more.
13789         (advance_state_on_fence): Likewise.
13790         (sel_target_adjust_priority): Print debug output only when
13791         sched_verbose >= 4, not 2.
13792         (get_expr_cost): Do not issue all unique insns on the next cycle.
13793         (fill_insns): Initialize can_issue_more from the value saved
13794         with the fence.
13795         * sel-sched-ir.c (flist_add): New parameter issue_more.
13796         Init FENCE_ISSUE_MORE with it.
13797         (merge_fences): Likewise.
13798         (init_fences): Update call to flist_add.
13799         (add_to_fences, add_clean_fence_to_fences)
13800         (add_dirty_fence_to_fences): Likewise.
13801         (move_fence_to_fences): Update call to merge_fences.
13802         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
13803         sched groups.
13804         * sel-sched-ir.h (struct _fence): New field issue_more.
13805         (FENCE_ISSUE_MORE): New accessor macro.
13806
13807 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13808
13809         PR rtl-optimization/42388
13810         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
13811         that have no predecessors nor successors.  Do not call move_bb_info
13812         for empty blocks outside of current region.
13813
13814 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13815
13816         PR rtl-optimization/42294
13817         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
13818         * sel-sched.c (move_exprs_to_boundary): Transitively add all
13819         originators' originators.
13820
13821 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13822
13823         PR rtl-optimization/39453
13824         PR rtl-optimization/42246
13825         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
13826         for pipelining_p.
13827         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
13828
13829 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13830             Alexander Monakov  <amonakov@ispras.ru>
13831
13832         PR middle-end/42245
13833         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
13834         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
13835         argument.  Update all callers.
13836         (tidy_control_flow): ... and here.  Recompute topological order
13837         of basic blocks in region if necessary.
13838         (sel_redirect_edge_and_branch): Change return type.  Return true
13839         if topological order might have been invalidated.
13840         (purge_empty_blocks): Export and move from...
13841         * sel-sched.c (purge_empty_blocks): ... here.
13842         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
13843         (maybe_tidy_empty_bb): Delete prototype.
13844         (purge_empty_blocks): Declare.
13845
13846 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
13847
13848         PR rtl-optimization/42249
13849         * sel-sched.c (try_replace_dest_reg): When chosen register
13850         and original register is the same, do not bail out early, but
13851         still check all original insns for validity of replacing destination
13852         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
13853         in this case.
13854
13855 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
13856
13857         PR c/42721
13858         Port from no-undefined-overflow branch:
13859         2009-03-09  Richard Guenther  <rguenther@suse.de>
13860
13861         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
13862
13863 2010-01-14  Richard Guenther  <rguenther@suse.de>
13864
13865         PR lto/42665
13866         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
13867
13868 2010-01-14  Ira Rosen  <irar@il.ibm.com>
13869
13870         PR tree-optimization/42709
13871         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
13872         as scalar type in creation of constant vector operand.
13873
13874 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13875
13876         PR testsuite/42414
13877         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
13878         (check-parallel-%): Match `testsuite' directory component only
13879         at the end.
13880
13881 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
13882
13883         PR translation/39521
13884         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
13885         strings with _().
13886
13887 2010-01-13  Richard Guenther  <rguenther@suse.de>
13888
13889         PR tree-optimization/42730
13890         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
13891         offset zero.
13892
13893 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
13894
13895         PR target/pr42542
13896         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
13897         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
13898         them signed.
13899
13900 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
13901
13902         * config/bfin/libgcc-bfin.ver: Regenerate based on current
13903         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
13904         ___umulsi3_highpart.
13905
13906         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
13907         rather than schedule_insns if the pass is enabled.
13908
13909 2010-01-13  Martin Jambor  <mjambor@suse.cz>
13910
13911         PR tree-optimization/42704
13912         * tree-sra.c (sra_modify_assign): Do not delete assignments to
13913         SSA_NAMEs.
13914
13915 2010-01-13  Martin Jambor  <mjambor@suse.cz>
13916
13917         PR tree-optimization/42703
13918         * tree-sra.c (analyze_access_subtree): Check that we can build a
13919         reference to the original data within the aggregate.
13920
13921 2010-01-13  Richard Guenther  <rguenther@suse.de>
13922
13923         PR tree-optimization/42705
13924         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
13925
13926 2010-01-13  Richard Guenther  <rguenther@suse.de>
13927
13928         PR middle-end/42716
13929         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
13930
13931 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
13932
13933         PR debug/41371
13934         * var-tracking.c (values_to_unmark): New variable.
13935         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
13936         values_to_unmark vector.  Moved body to...
13937         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
13938         instead queue it into values_to_unmark vector.
13939         (vt_find_locations): Free values_to_unmark vector.
13940
13941 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
13942
13943         * config/s390/s390.c (override_options): Set
13944         default of max-pending-list-length to 256
13945
13946 2010-01-13  Richard Guenther  <rguenther@suse.de>
13947
13948         PR lto/42678
13949         * tree-pass.h (PROP_gimple_lcx): New.
13950         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
13951         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
13952         before the final cleanup_eh.
13953         (dump_properties): Dump PROP_gimple_lcx.
13954         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
13955         (tree_lower_complex_O0): Remove.
13956         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
13957         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
13958         tree_lower_complex, schedule TODO_update_ssa.
13959         * lto-streamer-out.c (output_function): Stream the functions
13960         properties.
13961         * lto-streamer-in.c (input_function): Likewise.
13962         (lto_read_body): Do not override them here.
13963
13964 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
13965
13966         PR c/42708
13967         * c-typeck.c (build_c_cast): Fold value cast to union type before
13968         wrapping it in a CONSTRUCTOR.
13969
13970 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
13971
13972         PR rtl-optimization/42699
13973         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
13974         involved.
13975
13976 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13977
13978         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
13979         SUBTARGET_WARN_UNUSED_SPEC): Move ...
13980         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
13981         SUBTARGET_WARN_UNUSED_SPEC): ... here
13982         * config/mips/iris5.h (LIBGCC_SPEC): Define.
13983
13984 2010-01-12  Julian Brown  <julian@codesourcery.com>
13985
13986         * config/arm/neon-schedgen.ml (Utils): Don't try to
13987         open missing module.
13988         (find_with_result): New.
13989
13990 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
13991
13992         PR debug/42662
13993         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
13994         sharing when canonicalizing ({lt,ge}u (plus a b) b).
13995
13996         PR tree-optimization/42645
13997         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
13998         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
13999         decl_map, set processing_debug_stmt to -1 and return name without
14000         any remapping.
14001
14002 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
14003
14004         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
14005         binutils version, and reword target configuration description.
14006
14007 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
14008
14009         * config/avr/avr.h (LINKER_NAME): Remove.
14010
14011 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
14012
14013         PR target/42416
14014         * config/rs6000/rs6000.c (rs6000_override_options): On targets
14015         that support VSX, warn for -mno-altivec if vsx is not disabled,
14016         and disable vsx.
14017
14018 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
14019             Shujing Zhao  <pearly.zhao@oracle.com>
14020
14021         PR translation/42469
14022         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
14023         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
14024         character between option name and help text.
14025         * c.opt (imultilib): Likewise.
14026
14027 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
14028
14029         * lto-streamer-out.c (output_unreferenced_globals): Output static
14030         variables.
14031
14032 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
14033
14034         PR rtl-optimization/42621
14035         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
14036         optimizing for size.
14037         (duplicate_computed_gotos): Remove now-redundant check.
14038
14039 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
14040
14041         PR target/37454
14042         * configure.ac: Save and restore LDFLAGS and LIBS
14043         * configure: Regenerate.
14044
14045 2010-01-10  Richard Guenther  <rguenther@suse.de>
14046
14047         PR middle-end/42667
14048         * builtins.c (fold_builtin_strlen): Add type argument and
14049         convert the resulting length to it.
14050         (fold_builtin_1): Adjust.
14051
14052 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
14053
14054         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
14055         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
14056         1 insn.
14057         (num_insns_constant_wide): Adjust for that change.
14058
14059 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14060
14061         PR debug/42631
14062         * web.c (union_defs): Add used argument, to combine uses of
14063         uninitialized regs.
14064         (entry_register): Adjust type and tests of used argument.
14065         (web_main): Widen used for new use.  Pass it to union_defs.
14066         * df.h (union_defs): Adjust prototype.
14067
14068 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14069
14070         PR debug/42630
14071         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
14072         uses in new incoming argument.  Free body.
14073         (reset_debug_uses_in_loop): New.
14074         (analyze_insn_to_expand_var): Call the latter if the former found
14075         anything.  Fix whitespace.  Reject invalid dest overlaps before
14076         going through all insns in the loop.
14077
14078 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14079
14080         PR debug/42629
14081         * haifa-sched.c (dying_use_p): Debug insns don't count.
14082
14083 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14084
14085         PR middle-end/42363
14086         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
14087         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
14088         (verify_gimple_call): Reject LHS in noreturn calls.
14089
14090 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14091
14092         PR debug/42604
14093         PR debug/42395
14094         * tree-vect-loop-manip.c (adjust_info): New type.
14095         (adjust_vec): New pointer to vector.
14096         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
14097         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
14098         (slpeel_update_phis_for_duplicate_loop): Use them.
14099         (slpeel_update_phi_nodes_for_guard1): Likewise.
14100         (slpeel_update_phi_nodes_for_guard2): Likewise.
14101         (slpeel_tree_peel_loop_to_edge): Likewise.
14102         (vect_update_ivs_after_vectorizer): Likewise.
14103
14104 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14105
14106         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
14107         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
14108
14109 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14110
14111         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
14112         bogus uninitialized warning.
14113
14114 2010-01-09  Richard Guenther  <rguenther@suse.de>
14115
14116         PR middle-end/42512
14117         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
14118         the evolution is compatible with the initial condition.
14119
14120 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
14121
14122         * gcc.c (process_command): Update copyright notice dates.
14123         * gcov.c (print_version): Likewise.
14124         * gcov-dump.c (print_version): Likewise.
14125         * mips-tfile.c (main): Likewise.
14126         * mips-tdump.c (main): Likewise.
14127
14128 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
14129
14130         PR target/41885
14131         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
14132         (rotlhi3): Delete.
14133         (rotlhi3_8): Delete.
14134         (rotlsi3): Delete.
14135         (rotlsi3_8): Delete.
14136         (rotlsi3_16): Delete.
14137         (rotlsi3_24): Delete.
14138         (rotl<mode>3): New.
14139         (*rotw<mode>3): New.
14140         (*rotb<mode>3): New.
14141         * config/avr/avr.c (avr_rotate_bytes): New function.
14142         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
14143
14144 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
14145
14146         PR target/37454
14147         * configure.ac: Modify -rdynamic check.
14148         * configure: Regenerate.
14149
14150 2010-01-08  DJ Delorie  <dj@redhat.com>
14151
14152         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
14153         register popping order.
14154
14155 2010-01-08  Richard Guenther  <rguenther@suse.de>
14156
14157         PR lto/42528
14158         * c.opt (fsigned-char): Also let LTO handle this option.
14159         (funsigned-char): Likewise.
14160
14161 2010-01-07  Richard Guenther  <rguenther@suse.de>
14162
14163         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
14164         (gimple_op): Likewise.
14165         (gimple_op_ptr): Likewise.
14166         (gimple_assign_set_lhs): Remove gcc_assert.
14167         (gimple_assign_set_rhs1): Likewise.
14168         (gimple_assign_set_rhs2): Likewise.
14169         (gimple_call_set_lhs): Likewise.
14170         (gimple_call_set_fn): Likewise.
14171         (gimple_call_set_fndecl): Likewise.
14172         (gimple_call_fndecl): Likewise.
14173         (gimple_call_return_type): Likewise.
14174         (gimple_call_set_chain): Likewise.
14175         (gimple_call_num_args): Likewise.
14176         (gimple_call_set_arg): Likewise.
14177         (gimple_cond_set_code): Likewise.
14178         (gimple_cond_set_lhs): Likewise.
14179         (gimple_cond_set_rhs): Likewise.
14180         (gimple_cond_set_true_label): Likewise.
14181         (gimple_cond_set_false_label): Likewise.
14182         (gimple_label_set_label): Likewise.
14183         (gimple_goto_set_dest): Likewise.
14184         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
14185         (gimple_debug_bind_get_value): Likewise.
14186         (gimple_debug_bind_get_value_ptr): Likewise.
14187         (gimple_debug_bind_set_var): Likewise.
14188         (gimple_debug_bind_set_value): Likewise.
14189         (gimple_debug_bind_reset_value): Likewise.
14190         (gimple_debug_bind_has_value_p): Likewise.
14191         (gimple_return_retval_ptr): Remove gcc_assert.
14192         (gimple_return_retval): Likewise.
14193         (gimple_return_set_retval): Likewise.
14194         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
14195         (safe_referenced_var_iterator): Remove.
14196         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
14197         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
14198         (fill_referenced_var_vec): Remove.
14199         (first_readonly_imm_use): Remove redundant gcc_assert.
14200         (phi_arg_index_from_use): Combine gcc_asserts.
14201         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
14202         (first_imm_use_stmt): Remove redundant gcc_assert.
14203         * tree-cfg.c (verify_gimple_call): Verify function and chain
14204         operands.  Verify arguments.
14205         (verify_types_in_gimple_stmt): Verify condition code and labels.
14206
14207 2010-01-07  Richard Guenther  <rguenther@suse.de>
14208
14209         PR tree-optimization/42641
14210         * sese.c (rename_map_elt_info): Use the SSA name version, do
14211         not hash pointers.
14212
14213 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
14214
14215         PR tree-optimization/42625
14216         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
14217         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
14218
14219 2010-01-07  Duncan Sands  <baldrick@free.fr>
14220
14221         * Makefile.in (PLUGIN_HEADERS): Add version.h.
14222
14223 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
14224
14225         PR target/42511
14226         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
14227         note itself is not function_invariant_p.
14228
14229 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
14230
14231         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
14232         Do not add the DF_NOTE problem.
14233         * store-motion.c (execute_rtl_store_motion): Likewise.
14234
14235 2010-01-07  Martin Jambor  <mjambor@suse.cz>
14236
14237         PR tree-optimization/42157
14238         * tree-sra.c (compare_access_positions): Stabilize sort if both
14239         accesses have integer types, return zero immediately if they are the
14240         same.
14241
14242 2010-01-06  Richard Henderson  <rth@redhat.com>
14243
14244         PR middle-end/41883
14245         * haifa-sched.c (add_to_note_list): Merge into ...
14246         (concat_note_lists): ... here, and ...
14247         (unlink_other_notes, rm_other_notes): Merge into...
14248         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
14249         NOTE_INSN_EPILOGUE_BEG.
14250
14251 2010-01-06  Richard Guenther  <rguenther@suse.de>
14252
14253         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
14254         not inline regular functions into always-inline functions.
14255
14256 2010-01-06  Nick Clifton  <nickc@redhat.com>
14257
14258         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
14259         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
14260         used together.
14261         (OVERRIDE_OPTIONS): Delete.
14262         (OPTIMIZATION_OPTIONS): Define.
14263         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
14264         * config/rx/rx.c (rx_handle_option): Issue an error message if
14265         -mcpu=rx200 and -fpu are used together.
14266         (rx_set_optimization_options): New function.  Issue an error
14267         message if an optimization attribute attempts to reset the FPU/
14268         math optimization pairing.
14269         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
14270         * config/rx/rx.opt: Set the default to 32-bit doubles.
14271         * config/rx/t-rx: Add multilibs for -nofpu option.
14272         * doc/invoke.texi: Update documentation of RX options.
14273
14274 2010-01-06  Richard Guenther  <rguenther@suse.de>
14275
14276         * tree-ssa-pre.c (name_to_id): New global.
14277         (alloc_expression_id): Simplify SSA name handling.
14278         (lookup_expression_id): Likewise.
14279         (init_pre): Zero name_to_id.
14280         (fini_pre): Free it.
14281
14282 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
14283
14284         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
14285
14286 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
14287
14288         PR target/42542
14289         * config/i386/sse.md (smaxv2di3): New.
14290         (umaxv2di3): Likewise.
14291         (sminv2di3): Likewise.
14292         (uminv2di3): Likewise.
14293
14294 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
14295
14296         PR target/42564
14297         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
14298         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
14299         (legitimize_tls_address): Likewise.
14300         (sparc_tls_referenced_p): Likewise.
14301         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
14302         and adjust calls to legitimize_pic_address.
14303         (legitimate_constant_p) Use sparc_tls_referenced_p.
14304         (legitimate_pic_operand_p): Likewise.
14305         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
14306         (sparc_tls_symbol_ref_1): Delete.
14307         (sparc_tls_referenced_p): Make static, recognize specific patterns.
14308         (legitimize_tls_address): Make static, handle CONST patterns.
14309         (legitimize_pic_address): Make static, remove unused parameter and
14310         adjust recursive calls.
14311         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
14312         and adjust call to legitimize_pic_address.
14313         (sparc_output_mi_thunk): Likewise.
14314
14315 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
14316             H.J. Lu  <hongjiu.lu@intel.com>
14317
14318         PR target/42542
14319         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
14320         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
14321         operands to make them signed.
14322
14323         Revert:
14324         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
14325
14326         PR target/42542
14327         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
14328         GTU to GT for V4SI and V2DI.
14329
14330         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
14331         (umin<mode>3): Removed.
14332         (uminv8hi3): New.
14333         (uminv4si3): Likewise.
14334
14335 2010-01-05  Martin Jambor  <mjambor@suse.cz>
14336
14337         PR tree-optimization/42462
14338         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
14339         current_function_decl to helper functions and macros.
14340
14341 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14342
14343         PR bootstrap/41771
14344         * flags.h: Don't include real.h.
14345         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
14346         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
14347         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
14348         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
14349         * dominance.c: Update copyright.
14350         * gimple.c (walk_gimple_op): Remove inline.
14351         * tree-ssa-reassoc.c: Include real.h.
14352         * Makefile.in (FLAGS_H): Remove $(REAL_H).
14353         (tree-ssa-reassoc.o): Depend on $(REAL_H).
14354
14355 2010-01-05  Nick Clifton  <nickc@redhat.com>
14356
14357         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
14358         register to push into the stack frame when the accumulator has to
14359         be saved during interrupts.
14360
14361 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
14362
14363         * doc/invoke.texi: Remove the documentation about option
14364         -Wunreachable-code.
14365         * common.opt (Wunreachable-code):  Preserved for backward
14366         compatibility.
14367         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
14368         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
14369         the backward compatibility flag section.
14370
14371 2010-01-05  Richard Guenther  <rguenther@suse.de>
14372
14373         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
14374
14375 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
14376
14377         PR other/42611
14378         * cfgexpand.c (expand_one_var): Diagnose too large variables.
14379
14380         PR tree-optimization/42508
14381         * tree-sra.c (convert_callers): Check for recursive call
14382         by comparing cgraph nodes instead of decls.
14383         (modify_function): Call ipa_modify_formal_parameters also
14384         on all same_body aliases.
14385
14386         * cgraphunit.c (cgraph_materialize_all_clones): Compare
14387         cgraph nodes when checking for same_body aliases.
14388
14389 2010-01-05  Richard Guenther  <rguenther@suse.de>
14390
14391         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
14392         allocation and lookup.
14393         (get_or_alloc_expr_for_constant): Likewise.
14394         (phi_translate): Sink allocation.
14395
14396 2010-01-04  Richard Guenther  <rguenther@suse.de>
14397
14398         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
14399         a new entry only if needed.
14400         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
14401         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
14402         hashtable lookup.
14403         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
14404         the result array.
14405         (phi_translate): Handle CONSTANTs early.
14406
14407 2010-01-04  Martin Jambor  <mjambor@suse.cz>
14408
14409         PR tree-optimization/42398
14410         * tree-sra.c (struct access): Removed flag grp_different_types.
14411         (dump_access): Do not dump the removed flag.
14412         (sort_and_splice_var_accesses): Do not set the removed flag.
14413         (sra_modify_expr): Check for type compatibility directly.
14414
14415 2010-01-04  Martin Jambor  <mjambor@suse.cz>
14416
14417         PR tree-optimization/42366
14418         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
14419         edges with variable number of parameters.
14420         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
14421         flag instead of asserting it.
14422         (ipa_read_node_info): Read uses_analysis_done flag.
14423
14424 2010-01-04  Richard Guenther  <rguenther@suse.de>
14425
14426         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
14427         iterative_hash_* as intended.
14428         (vn_reference_compute_hash): Likewise.  Simplify hashing
14429         SSA names.
14430         (vn_reference_lookup_2): Likewise.
14431         (vn_nary_op_compute_hash): Likewise.
14432         (vn_phi_compute_hash): Likewise.
14433         (expressions_equal_p): Remove strange code.
14434         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
14435         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
14436         (bitmap_insert_into_set_1): Take value-id as parameter.
14437         (add_to_value): Pass it.
14438         (bitmap_insert_into_set): Likewise.
14439         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
14440
14441 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
14442
14443         PR driver/42442
14444         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
14445         (do_self_spec): For switches with SWITCH_IGNORE set set also
14446         SWITCH_IGNORE_PERMANENTLY.
14447         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
14448         of SWITCH_IGNORE.
14449
14450 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
14451
14452         * lto-streamer-out.c (output_unreferenced_globals): Output the full
14453         tree of an unreferenced global var.
14454
14455 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
14456
14457         PR target/42542
14458         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
14459         GTU to GT for V4SI and V2DI.
14460
14461         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
14462         (umin<mode>3): Removed.
14463         (uminv8hi3): New.
14464         (uminv4si3): Likewise.
14465
14466 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
14467
14468         PR lto/42581
14469         * collect2.c (main): Turn on trace in collect2 if -v is passed
14470         to gcc with LTO.
14471
14472 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
14473
14474         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
14475         description of expression operand.
14476
14477 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
14478
14479         * configure.ac: Add install-html to target_list for Make-hooks.
14480         * configure: Regenerate.
14481         * fortran/Make-lang.in (F95_HTMLFILES): New.
14482         (fortran.html): Use it.
14483         (fortran.install-html): New.
14484         * Makefile.in (install-html): Add lang.install-html.
14485         * java/Make-lang.in (JAVA_HTMLFILES): New.
14486         (java.html): Use it.
14487         (java.install-html): New.
14488         * objc/Make-lang.in (objc.install-html): New.
14489         * objcp/Make-lang.in (obj-c++.install-html): New.
14490         * cp/Make-lang.in (c++.install-html): New.
14491         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
14492         * lto/Make-lang.in (lto.install-html): New.
14493
14494 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
14495
14496         PR lto/42520
14497         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
14498
14499 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
14500
14501         PR rtl-optimization/41862
14502         * store-motion.c (store_killed_in_insn, compute_store_table,
14503         remove_reachable_equiv_notes, replace_store_insn,
14504         build_store_vectors): Ignore all DEBUG_INSNs.
14505
14506 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
14507
14508         PR lto/41564
14509         * common.opt: Add dumpdir.
14510
14511         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
14512         isn't specified.
14513         (option_map): Add --dumpdir.
14514
14515         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
14516
14517         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
14518
14519         * opts.c (decode_options): Try dump_dir_name first if
14520         dump_base_name isn't an absolute path.
14521         (common_handle_option): Handle OPT_dumpdir.
14522
14523         * toplev.c (dump_dir_name): New.
14524         (print_switch_values): Also ignore -dumpdir.
14525
14526         * toplev.h (dump_dir_name): New.
14527
14528 2010-01-03  Richard Guenther  <rguenther@suse.de>
14529
14530         PR tree-optimization/42589
14531         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
14532         double-word expansion of bswap32.
14533
14534 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
14535
14536         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
14537         with BLOCK_FOR_INSN.
14538         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
14539         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
14540         noce_process_if_block): Likewise.
14541         * gcse.c (compute_local_properties, insert_expr_in_table,
14542         insert_set_in_table, canon_list_insert, find_avail_set,
14543         pre_insert_copy_insn): Likewise.
14544
14545         * basic-block.h (BLOCK_NUM): Move from here...
14546         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
14547
14548 2010-01-03  Richard Guenther  <rguenther@suse.de>
14549
14550         PR tree-optimization/42438
14551         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
14552         contains_may_not_return_call flag.
14553         (BB_MAY_NOTRETURN): New.
14554         (valid_in_sets): Trapping nary operations are not valid
14555         in blocks that may not return.
14556         (insert_into_preds_of_block): Remove check for trapping expressions.
14557         (compute_avail): Compute also BB_MAY_NOTRETURN.
14558
14559 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
14560
14561         * doc/invoke.texi: Add 2010 to copyright years.
14562
14563 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
14564
14565         * config/sparc/sparc.c: Fix formatting nits.
14566
14567 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
14568             Alexander Monakov  <amonakov@ispras.ru>
14569
14570         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
14571
14572 2010-01-02  Richard Guenther  <rguenther@suse.de>
14573
14574         PR middle-end/42577
14575         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
14576         (simplify_switch_using_ranges): Mark to be removed edges
14577         as non-executable.
14578
14579 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14580
14581         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
14582
14583         * collect2.c (scan_libraries): Add missing argument in call to
14584         scan_prog_file.
14585
14586 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
14587
14588         PR target/42448
14589         * config/alpha/predicates.md (aligned_memory_operand): Return false
14590         for CQImode.
14591         (unaligned_memory_operand): Return true for CQImode.
14592         * config/alpha/alpha.c (get_aligned_mem): Assert that location
14593         doesn not cross aligned SImode word boundary.
14594
14595 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
14596
14597         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
14598         Remove.
14599         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
14600         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
14601
14602 2010-01-02  Richard Guenther  <rguenther@suse.de>
14603
14604         PR lto/41597
14605         * toplev.c (compile_file): Emit LTO marker properly.  Change
14606         it to __gnu_lto_v1.
14607         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
14608
14609 2010-01-01  Richard Guenther  <rguenther@suse.de>
14610
14611         PR debug/42455
14612         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
14613
14614 2010-01-01  Richard Guenther  <rguenther@suse.de>
14615
14616         PR c/42570
14617         * c-decl.c (grokdeclarator): For zero-size arrays force
14618         structural equality checks as layout_type does.
14619
14620 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
14621
14622         * builtins.c: Update copyright to 2010.
14623
14624 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
14625
14626         PR lto/42531
14627         * lto-streamer-out.c (produce_asm): Revert the last change.
14628         (copy_function): Likewise.
14629
14630         * lto-streamer.c (lto_get_section_name): Skip any leading
14631         asterisk in name.
14632
14633 2010-01-01  Richard Guenther  <rguenther@suse.de>
14634
14635         PR middle-end/42559
14636         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
14637         for LABEL_DECLs.
14638
14639 \f
14640 Copyright (C) 2010 Free Software Foundation, Inc.
14641
14642 Copying and distribution of this file, with or without modification,
14643 are permitted in any medium without royalty provided the copyright
14644 notice and this notice are preserved.