]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
md.texi (define_c_enum, [...]): Document.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
2
3 * doc/md.texi (define_c_enum, define_enum): Document.
4 * read-md.h (md_constant): Add a parent_enum field.
5 (enum_value, enum_type): New structures.
6 (upcase_string, traverse_enum_types): Declare.
7 * read-md.c (enum_types): New variable.
8 (upcase_string, add_constant): New functions.
9 (handle_constants): Don't create the hash table here.
10 Use add_constant.
11 (traverse_md_constants): Don't check for a null md_constants.
12 (decimal_string, handle_enum, traverse_enum_types): New functions.
13 (read_md_files): Initialize md_constants and md_enums.
14 * genconstants.c (print_md_constant): Ignore info argument.
15 Only print constants that belong to no enum.
16 (print_enum_type): New function.
17 (main): Don't pass stdout to print_md_constant. Call print_enum_type
18 for each defined enum type.
19 * config/mips/mips.md (processor): New define_enum.
20 (unspec): New define_c_enum.
21 (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
22 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
23 (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
24 (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
25 (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
26 (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
27 (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
28 (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
29 (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
30 (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
31 (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
32 (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
33 (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
34 (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
35 (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
36 (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
37 (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
38 (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
39 (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
40 (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
41 (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
42 (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
43 (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
44 (UNSPEC_RDDSP): Move to mips-dsp.md.
45 (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
46 (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
47 (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
48 (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
49 (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
50 (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
51 (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
52 (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
53 (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
54 (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
55 (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
56 (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
57 (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
58 Moved to mips-dspr2.md.
59 (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
60 (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
61 (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
62 (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Moved from mips-ps-3d.md.
63 (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
64 (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
65 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
66 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
67 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
68 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
69 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD, UNSPEC_LOONGSON_PSADBH)
70 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
71 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
72 (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
73 (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
74 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
75 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
76 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved to mips-loongson2ef.md.
77 (cpu): Update comment.
78 * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
79 (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
80 (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
81 (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
82 * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ)
83 (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
84 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
85 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
86 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
87 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
88 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD, UNSPEC_LOONGSON_PSADBH)
89 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
90 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
91 (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
92 * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
93 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
94 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
95 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
96 * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
97 (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
98 (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
99 (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
100 (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
101 (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
102 (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
103 (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
104 (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
105 (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
106 (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
107 (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
108 (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
109 (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
110 (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
111 (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
112 (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
113 (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
114 (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
115 (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
116 (UNSPEC_RDDSP): Moved from mips.md.
117 * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
118 (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
119 (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
120 (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
121 (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
122 (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
123 (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
124 (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
125 (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
126 (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
127 (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
128 (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
129 (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
130 (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
131 * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
132 (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
133 (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
134 (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
135 (UNSPEC_SCC): Moved from mips.md.
136 * config/mips/mips.c (mips_arch, mips_tune): Change enum from
137 "processor_type" to "processor".
138 (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
139 * config/mips/mips.h (processor_type): Delete.
140 (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
141 "processor_type" to "processor".
142
143 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
144
145 * configure.ac (tm_include_list): Add insn-constants.h.
146 * configure: Regenerate.
147 * Makefile.in (GTM_H): Move insn-constants.h here from...
148 (TM_H): ...here.
149 * mkconfig.sh: Remove special handling for insn-constants.h.
150
151 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
152
153 * Makefile.in (BUILD_RTL): Move build/read-md.o to...
154 (BUILD_MD): ...this new variable.
155 (simple_generated_rtl_h, simple_generated_rtl_c): New variables
156 that include the old contents of simple_generated_h and
157 simple_generated_c.
158 (simple_generated_h, simple_generated_c): Include them. Add
159 insn-constants.h.
160 (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
161 and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
162 Remove these dependencies from the main rule and include
163 insn-conditions.md in the command line only if it appears
164 in the dependency list.
165 (insn-constants.h, s-constants): Delete.
166 (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
167 or gensupport.h.
168 (build/genmddeps.o): Likewise.
169 (genprogrtl): New variable that contains everything from genprogmd
170 except mddeps and constants.
171 (genprogmd): Redefine in terms of genprogrtl. Make these programs
172 depend on $(BUILD_MD)
173 (genprog): New variable. Make these programs depend on
174 $(BUILD_ERRORS).
175 * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
176 (main): Use read_md_files instead of init_rtx_reader_args.
177 * genconstants.c: As for genmddeps.c.
178 * read-md.h (read_skip_construct): Declare.
179 * read-md.c (read_skip_construct): New function.
180 (handle_file): Allow a null handle_directive, skipping the
181 construct if so.
182 (parse_include): Update the comment accordingly.
183
184 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
185
186 * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
187 * genmddeps.c: Include read-md.h.
188 (main): Call init_rtx_reader_args instead of init_md_reader_args.
189 * genattr.c (main): Likewise.
190 * genattrtab.c (main): Likewise.
191 * genautomata.c (main): Likewise.
192 * gencodes.c (main): Likewise.
193 * genconditions.c (main): Likewise.
194 * genconfig.c (main): Likewise.
195 * genconstants.c (main): Likewise.
196 * genemit.c (main): Likewise.
197 * genextract.c (main): Likewise.
198 * genflags.c (main): Likewise.
199 * genopinit.c (main): Likewise.
200 * genoutput.c (main): Likewise.
201 * genpeep.c (main): Likewise.
202 * genrecog.c (main): Likewise.
203 * genpreds.c (main): Likewise.
204 * gensupport.h (in_fname): Move to read-md.h.
205 (init_md_reader_args_cb): Rename to...
206 (init_rtx_reader_args_cb): ...this and return a bool.
207 (init_md_reader_args): Rename to...
208 (init_rtx_reader_args): ...this and return a bool.
209 (include_callback): Move to read-md.h.
210 * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
211 (file_name_list, first_dir_md_include): Move to read-md.c
212 (first_bracket_include): Delete unused variable.
213 (last_dir_md_include): Move to read-md.c.
214 (process_include): Delete, moving code to read-md.c:handle_include.
215 (process_rtx): Don't handle INCLUDE.
216 (save_string): Delete.
217 (rtx_handle_directive): New function.
218 (init_md_reader_args_cb): Rename to...
219 (init_rtx_reader_args_cb): ...this and return a boolean success value.
220 Use read_md_args.
221 (init_md_reader_args): Rename to...
222 (init_rtx_reader_args): ...this and return a boolean success value.
223 * rtl.def (INCLUDE): Delete.
224 * rtl.h (read_rtx): Remove "int *" argument. Add "const char *"
225 argument.
226 * read-rtl.c (read_conditions): Don't gobble ')' here.
227 (read_mapping): Likewise.
228 (read_rtx): Remove LINENO argument. Add RTX_NAME argument.
229 Handle top-level non-rtx constructs here rather than in read_rtx_1.
230 Store the whole queue in *X. Remove call to init_md_reader.
231 (read_rtx_1): Rename to...
232 (read_rtx_code): ...this. Call read_nested_rtx to read subrtxes.
233 Don't handle top-level non-rtx constructs here. Don't handle (nil)
234 here.
235 (read_nested_rtx): New function. Handle (nil) here rather than
236 in read_rtx_code.
237 (read_rtx_variadic): Call read_nested_rtx to read subrtxes. Don't
238 gobble ')' here.
239 * read-md.h (directive_handler_t): New type.
240 (in_fname, include_callback): Moved from read-md.h.
241 (read_constants, init_md_reader): Delete.
242 (read_md_files): Declare.
243 * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
244 (last_dir_md_include_ptr, include_callback, max_include_len): Moved
245 from gensupport.c.
246 (read_constants): Rename to...
247 (handle_constants): ...this. Don't gobble ')' here.
248 (handle_include, handle_file, handle_toplevel_file)
249 (parse_include): New functions, mostly taken from gensupport.c.
250 (init_md_reader): Subsume into...
251 (read_md_files): ...this new function.
252
253 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
254
255 * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
256 (unread_char): Decrement read_md_lineno after putting back '\n'.
257 * read-md.c (fatal_with_file_and_line): Push back any characters
258 that we decide not to add to the context.
259 (read_skip_spaces): Don't increment read_md_lineno here. Avoid using
260 fatal_expected_char in cases where '/' ends a line (for example).
261 (read_name): Don't increment read_md_lineno here.
262 (read_escape): Likewise.
263 (read_quoted_string): Likewise.
264 (read_braced_string): Likewise.
265
266 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
267
268 * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
269 (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
270 * genconstants.c: Include read-md.h.
271 * read-rtl.c (md_constants): Move to read-md.c.
272 (md_name): Move to read-md.h.
273 (initialize_iterators): Use leading_string_hash instead of def_hash
274 and leading_string_eq_p instead of def_name_eq_p.
275 (read_name): Move to read-md.c.
276 (def_hash, def_name_eq_p): Delete.
277 (read_constants, traverse_md_constants): Move to read-md.c.
278 * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
279 * read-md.h: Include hashtab.h.
280 (md_name): Moved from read-rtl.c.
281 (md_constant): Moved from read-md.h.
282 (leading_string_hash, leading_string_eq_p, read_name)
283 (read_constants, traverse_md_constants): Declare.
284 * read-md.c (md_constants): Moved from read-rtl.c.
285 (leading_string_hash, leading_string_eq_p): New functions.
286 (read_name, read_constants, traverse_md_constants): Moved from
287 read-rtl.c.
288
289 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
290
291 * read-rtl.c (md_name): New structure.
292 (read_name): Take an md_name instead of a buffer pointer.
293 Use the "string" field instead of strcpy when expanding constants.
294 (read_constants): Remove the tmp_char argument. Update the calls
295 to read_name, using two local name buffers instead of the tmp_char
296 argument. Merge the constant-creation code.
297 (read_conditions): Remove the tmp_char argument. Update the calls
298 to read_name, using a local name buffer instead of the tmp_char
299 argument.
300 (read_mapping): Replace tmp_char variable with a local name buffer.
301 Update the calls to read_name.
302 (read_rtx_1): Likewise. Update the calls to read_constants and
303 read_conditions.
304
305 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
306
307 * Makefile.in (build/read-md.o): Depend on errors.h.
308 * read-md.h (error_with_line): Declare.
309 * read-md.c: Include errors.h.
310 (message_with_line_1): New function, extracted from...
311 (message_with_line): ...here.
312 (error_with_line): New function.
313 * genattrtab.c: If a call to message_with_line is followed by
314 "have_error = 1;", replace both statements with a call to
315 error_with_line.
316 * genoutput.c: Likewise.
317 * genpreds.c: Likewise.
318 * genrecog.c: If a call to message_with_line is followed by
319 "error_count++;", replace both statements with a call to
320 error_with_line.
321 (errorcount): Delete.
322 (main): Don't check it.
323 * gensupport.c: If a call to message_with_line is followed by
324 "errors = 1;", replace both statements with a call to error_with_line.
325 (errors): Delete.
326 (process_define_cond_exec): Check have_error instead of errors.
327 (init_md_reader_args_cb): Likewise. Don't set errors.
328
329 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
330
331 * read-md.h (read_md_file): Declare.
332 (read_char, unread_char): New functions.
333 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
334 (read_quoted_string, read_string): Remove FILE * argument.
335 * read-md.c (read_md_file): New variable.
336 (read_md_filename, read_md_lineno): Update comments and remove
337 unnecessary initialization.
338 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
339 (read_escape, read_quoted_string, read_braced_string, read_string):
340 Remove FILE * argument. Update calls accordingly, using read_char
341 and unread_char instead of getc and ungetc.
342 * rtl.h (read_rtx): Remove FILE * argument.
343 * read-rtl.c (iterator_group): Remove FILE * argument from
344 "find_builtin".
345 (iterator_traverse_data): Remove "infile" field.
346 (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
347 (add_mapping, read_name, read_constants, read_conditions)
348 (validate_const_int, find_iterator, read_mapping, check_code_iterator)
349 (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
350 Remove file arguments from all calls, using read_char and unread_char
351 instead of getc and ungetc.
352 * gensupport.c (process_include): Preserve read_md_file around
353 the include. Set read_md_file to the handle of the included file.
354 Update call to read_rtx.
355 (init_md_reader_args_cb): Set read_md_file to the handle of the file
356 and remove local FILE *. Update calls to read_rtx.
357
358 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
359
360 * read-md.h (read_rtx_lineno): Rename to...
361 (read_md_lineno): ...this.
362 (read_rtx_filename): Rename to...
363 (read_md_filename): ...this.
364 (copy_rtx_ptr_loc): Rename to...
365 (copy_md_ptr_loc): ...this.
366 (print_rtx_ptr_loc): Rename to...
367 (print_md_ptr_loc): ...this.
368 * read-md.c: Likewise. Update references after renaming.
369 (string_obstack): Replace RTL with MD in comment.
370 (set_rtx_ptr_loc): Rename to...
371 (set_md_ptr_loc): ...this.
372 (get_rtx_ptr_loc): Rename to...
373 (get_md_ptr_loc): ...this.
374 * genconditions.c: Update references after renaming.
375 * genemit.c: Likewise.
376 * genoutput.c: Likewise.
377 * genpreds.c: Likewise.
378 * gensupport.c: Likewise.
379 * read-rtl.c: Likewise.
380
381 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
382
383 * Makefile.in (READ_MD_H): New variable.
384 (BUILD_RTL): Add build/read-md.o.
385 (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
386 (build/gensupport.o, build/read-rtl.o, build/genattr.o)
387 (build/genattrtab.o, build/genconditions.o build/genemit.o)
388 (build/genextract.o, build/genflags.o, build/genoutput.o)
389 (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
390 (build/read-md.o): New rule.
391 * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
392 (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
393 * coretypes.h: ...here.
394 * lto-wrapper.c: Include coretypes.h instead of defaults.h.
395 * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
396 * genattr.c: Include read-md.h.
397 * genattrtab.c: Likewise.
398 * genconditions.c: Likewise.
399 * genemit.c: Likewise.
400 * genextract.c: Likewise.
401 * genflags.c: Likewise.
402 * genoutput.c: Likewise.
403 * genpreds.c: Likewise.
404 * genrecog.c: Likewise.
405 * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
406 (join_c_conditions, print_c_condition, read_rtx_filename)
407 (read_rtx_lineno): Move to read-md.h.
408 * read-rtl.c: Include read-md.h.
409 (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
410 (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
411 (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
412 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
413 (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
414 (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
415 (read_braced_string, read_string): Move to read-md.c.
416 (read_rtx): Move some initialization to init_md_reader and call
417 init_md_reader here.
418 * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
419 Move to read-md.h.
420 * gensupport.c: Include read-md.h.
421 (message_with_line, n_comma_elts, scan_comma_elt): Move to
422 read-md.c.
423 * read-md.h, read-md.c: New files.
424
425 2010-06-10 Anatoly Sokolov <aesok@post.ru>
426
427 * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
428 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
429 * config/moxie/moxie-protos.h (moxie_function_value): Remove.
430 * config/moxie/moxie.c (moxie_function_value): Make static.
431 (moxie_libcall_value, moxie_function_value_regno_p): New functions.
432 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
433
434 2010-06-10 Martin Jambor <mjambor@suse.cz>
435
436 * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
437 * dbgcnt.def (tree_sra): New counter.
438 * tree-sra.c: Include dbgcnt.h.
439 (gate_intra_sra): Check tree_sra debug counter.
440
441 2010-06-10 Martin Jambor <mjambor@suse.cz>
442
443 PR tree-optimization/44258
444 * tree-sra.c (build_access_subtree): Return false iff there is a
445 partial overlap.
446 (build_access_trees): Likewise.
447 (analyze_all_variable_accesses): Disqualify candidates if
448 build_access_trees returns true for them.
449
450 2010-06-10 Alexandre Oliva <aoliva@redhat.com>
451
452 PR debug/41371
453 * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
454 tail-recurse into canonical node. Fast-forward over
455 non-canonical VALUEs.
456
457 2010-06-10 H.J. Lu <hongjiu.lu@intel.com>
458
459 PR boostrap/44470
460 * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
461 (*addsi_1_zext) <TYPE_LEA>: Likewise.
462 (add lea splitter): Likewise.
463 (add_zext lea splitter): Likewise.
464
465 2010-06-10 Joseph Myers <joseph@codesourcery.com>
466
467 * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
468
469 2010-06-10 Jan Hubicka <jh@suse.cz>
470
471 * df-problems.c (df_live_problem_data): Add live_bitmaps.
472 (df_live_alloc): Initialize problem data and live_osbtacks.
473 (df_live_finalize): Remove obstack, problem data; do not
474 clear all bitmaps.
475 (df_live_top_dump, df_live_bottom_dump): Do not dump old
476 data when not allocated.
477 (df_live_verify_solution_start): Do not allocate problem data.
478 (df_live_verify_solution_end): Check if out is allocated.
479 (struct df_md_problem_data): New structure.
480 (df_md_alloc): Allocate problem data.
481 (df_md_free): Free problem data; do not clear bitmaps.
482
483 2010-06-10 Jan Beulich <jbeulich@novell.com>
484
485 * configure.ac: Replace $() with ${} when intending to expand
486 variables rather than invoking commands.
487 * configure: Re-generate.
488
489 2010-06-10 Jan Hubicka <jh@suse.cz>
490
491 PR rtl-optimization/44460
492 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove TYPE_NEEDS_CONSTRUCTING
493 sanity check.
494
495 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
496
497 * doc/include/fdl.texi: Move to GFDL version 1.3.
498
499 * doc/cpp.texi: Move to GFDL version 1.3.
500 * doc/gcc.texi: Move to GFDL version 1.3. Fix copyright years.
501 * doc/gccint.texi: Move to GFDL version 1.3.
502 * doc/gcov.texi: Move to GFDL version 1.3. Update copyright years.
503 * doc/install.texi: Move to GFDL version 1.3. Fix copyright years.
504 * doc/invoke.texi: Move to GFDL version 1.3.
505
506 2010-06-09 Jan Hubicka <jh@suse.cz>
507
508 * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
509 Break out from ...
510 (propagate) ... here; swap the order.
511
512 2010-06-09 Jan Hubicka <jh@suse.cz>
513
514 * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
515 bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
516 bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
517 bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
518
519 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
520
521 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
522 Do not the gather memory reference in the outer loop if the step
523 is not a constant.
524
525 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
526
527 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
528 Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
529 8 to 4. Minor change of the related comments.
530
531 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
532
533 * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
534 the scev analysis when the variable is not used outside the loop
535 in a close phi node: call compute_overall_effect_of_inner_loop.
536
537 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
538
539 * graphite-sese-to-poly.c (single_pred_cond): Renamed
540 single_pred_cond_non_loop_exit. Return NULL for loop exit edges.
541 (build_sese_conditions_before): Renamed call to single_pred_cond.
542 (build_sese_conditions_after): Same.
543
544 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
545
546 * graphite-poly.h: Fix comments and indentation.
547 * graphite-sese-to-poly.c: Same.
548 (build_sese_conditions_before): Compute stmt and gbb only when needed.
549 * tree-chrec.c: Fix comments and indentation.
550 (tree-ssa-loop-niter.c): Same.
551
552 2010-06-09 Eric Botcazou <ebotcazou@adacore.com>
553
554 PR rtl-optimization/42461
555 * dce.c (deletable_insn_p): Return true for const or pure calls again.
556 * except.c (insn_could_throw_p): Return false if !flag_exceptions.
557
558 2010-06-09 Jan Hubicka <jh@suse.cz>
559
560 * bitmap.c (bitmap_and): Walk array forward.
561 (bitmap_and_compl_into): Likewise.
562 (bitmap_xor): Likewise.
563 (bitmap_xor_into): Likewise.
564 (bitmap_equal_p): Likewise.
565 (bitmap_intersect_p): Likewise.
566 (bitmap_intersect_compl_p): Likewise.
567 (bitmap_ior_and_into): Likewise.
568 (bitmap_elt_copy): Likewise.
569 (bitmap_and_compl): Likewise.
570 (bitmap_elt_ior): Likewise.
571
572 2010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
573
574 * opts-common.c (prune_options): Ensure replacement argv array
575 is correctly terminated by a NULL entry.
576
577 2010-06-09 Jan Hubicka <jh@suse.cz>
578
579 * cgraph.h (varpool_first_static_initializer,
580 varpool_next_static_initializer): Make checking only when
581 checking enabled.
582 * tree-vectorizer.h (vinfo_for_stmt): Remove check.
583 (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
584 gcc_assert to gcc_checking_assert.
585 * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use, phi_nodes
586 set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
587 op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
588 op_iter_init_phiuse, op_iter_init_phidef, array_ref_contains_indirect_ref,
589 ref_contains_array_ref): Use gcc_checking_assert.
590 * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
591 * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
592 partition_is_global, live_on_entry, live_on_exit,
593 live_merge_and_clear): Likewise.
594 * system.h (gcc_checking_assert): New macro.
595 * gimple.h (set_bb_seq): Use gcc_checking_assert.
596
597 2010-06-09 Jason Merrill <jason@redhat.com>
598
599 * Makefile.in (TAGS): Collect tags info from c-family.
600
601 2010-06-09 Jan Hubicka <jh@suse.cz>
602
603 * gimple.h (gcc_gimple_checking_assert): New macro.
604 (gimple_set_def_ops, gimple_set_use_ops,
605 gimple_set_vuse, gimple_set_vdef,
606 gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
607 gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
608 gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
609 gimple_asm_output_op, gimple_asm_output_op_ptr,
610 gimple_asm_set_output_op, gimple_asm_clobber_op,
611 gimple_asm_set_clobber_op, gimple_asm_label_op,
612 gimple_asm_set_label_op, gimple_try_set_kind, gimple_try_catch_is_cleanup
613 gimple_try_set_catch_is_cleanup, gimple_phi_arg,
614 gimple_switch_num_labels, gimple_switch_set_index, gimple_switch_label,
615 gimple_switch_set_label, gimple_omp_for_index, gimple_omp_for_index_ptr,
616 gimple_omp_for_set_index, gimple_omp_for_initial, gimple_omp_for_initial_ptr,
617 gimple_omp_for_set_initial, gimple_omp_for_final, gimple_omp_for_final_ptr,
618 gimple_omp_for_set_final, gimple_omp_for_incr, gimple_omp_for_incr_ptr,
619 gimple_omp_for_set_incr, gimple_omp_for_set_cond, gimple_omp_for_cond): Make
620 checking conditional with ENABLE_GIMPLE_CHECKING.
621 (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
622
623 2010-06-09 Sandra Loosemore <sandra@codesourcery.com>
624
625 * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
626 (get_computation_cost_at): Use it.
627 (determine_use_iv_cost_condition): Likewise.
628 (determine_iv_cost): Likewise.
629
630 2010-06-09 Richard Guenther <rguenther@suse.de>
631
632 * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
633 replace constants.
634
635 2010-06-09 Kai Tietz <kai.tietz@onevision.com>
636
637 * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
638
639 2010-06-09 Martin Jambor <mjambor@suse.cz>
640
641 PR tree-optimization/44423
642 * tree-sra.c (dump_access): Dump also grp_assignment_read.
643 (analyze_access_subtree): Pass negative allow_replacements to children
644 if the current type is scalar.
645
646 2010-06-09 Joern Rennecke <amylaar@spamcop.net>
647
648 PR testsuite/42843
649 * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
650 * doc/plugins.texi (Plugin license check): Update information
651 on type of plugin_is_GPL_compatible.
652 * Makefile.in (PLUGINCC): Define as $(COMPILER).
653 (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
654
655 2010-06-09 Bernd Schmidt <bernds@codesourcery.com>
656
657 * config/arm/arm.c (thumb2_reorg): New function.
658 (arm_reorg): Call it.
659 * config/arm/thumb2.md (define_peephole2 for flag clobbering
660 arithmetic operations): Delete.
661
662 2010-06-09 Edmar Wienskoski <edmar@freescale.com>
663
664 PR target/44067
665 * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
666 e500v2 target.
667
668 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
669
670 PR plugins/44459
671 * gcc-plugin.h: Encapsulate all declarations in extern "C".
672
673 2010-06-08 Jan Hubicka <jh@suse.cz>
674
675 * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
676 ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
677
678 2010-06-08 Sandra Loosemore <sandra@codesourcery.com>
679
680 PR tree-optimization/39874
681 PR middle-end/28685
682 * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
683 Declare.
684 * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
685 same_bool_result_p): New.
686 (and_var_with_comparison, and_var_with_comparison_1,
687 and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
688 (or_var_with_comparison, or_var_with_comparison_1,
689 or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
690 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
691 maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
692 of combine_comparisons.
693 * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
694
695 2010-06-08 Anatoly Sokolov <aesok@post.ru>
696
697 * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
698 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
699 * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
700 pdp11_function_value_regno_p): New functions.
701 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
702 TARGET_FUNCTION_VALUE_REGNO_P): Define.
703
704 2010-06-08 Kazu Hirata <kazu@codesourcery.com>
705
706 * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
707 Thumb-2 in the MINUS case.
708
709 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
710
711 * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
712
713 * doc/gty.texi (GTY Options): Document typed GC allocation and
714 variable_size GTY option.
715
716 * ggc-internal.h: New.
717
718 * ggc.h: Update copyright year.
719 (digit_string): Move to stringpool.c.
720 (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
721 (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
722 (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
723 (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
724 (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
725 (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
726 (ggc_force_collect, ggc_get_size, ggc_statistics)
727 (ggc_print_common_statistics): Move to ggc-internal.h.
728 (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
729 (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
730 (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
731 (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
732 (ggc_min_heapsize_heuristic, ggc_alloc_zone)
733 (ggc_alloc_zone_pass_stat): Remove.
734 (ggc_internal_alloc_stat, ggc_internal_alloc)
735 (ggc_internal_cleared_alloc_stat): New.
736 (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
737 (ggc_internal_vec_alloc_stat)
738 (ggc_internal_cleared_vec_alloc_stat)
739 (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
740 (ggc_alloc_atomic_stat, ggc_alloc_atomic)
741 (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
742 (ggc_cleared_alloc_ptr_array_two_args): New.
743 (htab_create_ggc, splay_tree_new_ggc): Redefine.
744 (ggc_splay_alloc): Change the type of the first argument to
745 enum gt_types_enum.
746 (ggc_alloc_string): Make macro.
747 (ggc_alloc_string_stat): New.
748 (ggc_strdup): Redefine.
749 (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
750 (ggc_alloc_rtvec_sized): New.
751 (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
752 (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
753 (ggc_internal_cleared_alloc_zone_stat)
754 (ggc_internal_zone_alloc_stat)
755 (ggc_internal_zone_cleared_alloc_stat)
756 (ggc_internal_zone_vec_alloc_stat)
757 (ggc_alloc_zone_rtx_def_stat)
758 (ggc_alloc_zone_tree_node_stat)
759 (ggc_alloc_zone_cleared_tree_node_stat)
760 (ggc_alloc_cleared_gimple_statement_d_stat): New.
761
762 * ggc-common.c: Include ggc-internal.h.
763 (ggc_internal_cleared_alloc_stat): Rename from
764 ggc_alloc_cleared_stat.
765 (ggc_realloc_stat): Use ggc_internal_alloc_stat.
766 (ggc_calloc): Remove.
767 (ggc_cleared_alloc_htab_ignore_args): New.
768 (ggc_cleared_alloc_ptr_array_two_args): New.
769 (ggc_splay_alloc): Add obj_type parameter.
770 (init_ggc_heuristics): Formatting fixes.
771
772 * ggc-none.c: Update copyright year.
773 (ggc_alloc_stat): Rename to ggc_alloc_stat.
774 (ggc_alloc_cleared_stat): Rename to
775 ggc_internal_cleared_alloc_stat.
776 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
777
778 * ggc-page.c: Update copyright year. Include ggc-internal.h.
779 Remove references to ggc_alloc in comments.
780 (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
781 (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
782 (new_ggc_zone, destroy_ggc_zone): Remove.
783 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
784
785 * ggc-zone.c: Include ggc-internal.h. Remove references to
786 ggc_alloc in comments.
787 (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
788 (ggc_internal_alloc_zone_pass_stat): New.
789 (ggc_internal_cleared_alloc_zone_stat): New.
790 (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
791 (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
792 (new_ggc_zone, destroy_ggc_zone): Remove.
793
794 * stringpool.c: Update copyright year. Include ggc-internal.h
795 (digit_vector): Make static.
796 (digit_string): Moved from ggc.h.
797 (stringpool_ggc_alloc): Use ggc_alloc_atomic.
798 (ggc_alloc_string): Rename to ggc_alloc_string_stat.
799
800 * Makefile.in (GGC_INTERNAL_H): New.
801 (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
802 $(GGC_INTERNAL_H) to dependencies.
803
804 * gentype.c: Update copyright year.
805 (walk_type): Accept variable_size GTY option.
806 (USED_BY_TYPED_GC_P): New macro.
807 (write_enum_defn): Use USED_BY_TYPED_GC_P. Do not output
808 whitespace at the end of strings.
809 (get_type_specifier, variable_size_p): New functions.
810 (alloc_quantity, alloc_zone): New enums.
811 (write_typed_alloc_def): New function.
812 (write_typed_struct_alloc_def): Likewise.
813 (write_typed_typed_typedef_alloc_def): Likewise.
814 (write_typed_alloc_defns): Likewise.
815 (output_typename, write_splay_tree_allocator_def): Likewise.
816 (write_splay_tree_allocators): Likewise.
817 (main): Call write_typed_alloc_defns and
818 write_splay_tree_allocators.
819
820 * lto-streamer.h (lto_file_decl_data_ptr): New.
821
822 * passes.c (order): Define using cgraph_node_ptr.
823
824 * strinpool.c (struct string_pool_data): Declare nested_ptr using
825 ht_identifier_ptr.
826
827 * gimple.h (union gimple_statement_d): Likewise.
828
829 * rtl.h (struct rtx_def): Likewise.
830 (struct rtvec_def): Likewise.
831
832 * tree.h (union tree_node): Likewise.
833
834 * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
835
836 * cfgloop.c (record_loop_exits): Use htab_create_ggc.
837
838 * tree-scalar-evolution.c (scev_initialize): Likewise.
839
840 * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
841
842 * dwarf2asm.c (dw2_force_const_mem): Likewise.
843
844 * omp-low.c (lower_omp_critical): Likewise.
845
846 * bitmap.h (struct bitmap_head_def): Update comment to not
847 reference ggc_alloc.
848
849 * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
850
851 * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
852
853 * ipa-prop.c (duplicate_ggc_array): Rename to
854 duplicate_ipa_jump_func_array. Use typed GC allocation.
855 (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
856
857 * gimple.c (gimple_alloc_stat): Use
858 ggc_alloc_cleared_gimple_statement_d_stat.
859
860 * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
861
862 * tree.c (make_node_stat): Use
863 ggc_alloc_zone_cleared_tree_node_stat.
864 (make_tree_vec_stat): Likewise.
865 (build_vl_exp_stat): Likewise.
866 (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
867 (make_tree_binfo_stat): Likewise.
868 (tree_cons_stat): Likewise.
869
870 * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
871 (shallow_copy_rtx_stat): Likewise.
872 (make_node_stat): Likewise.
873
874 * lto-symtab.c: Fix comment.
875
876 * tree-cfg.c (create_bb): Update comment to not reference
877 ggc_alloc_cleared.
878 * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is
879 value.
880
881 * varpool.c (varpool_node): Use typed GC allocation.
882 (varpool_extra_name_alias): Likewise.
883
884 * varasm.c (emutls_decl): Likewise.
885 (get_unnamed_section): Likewise.
886 (get_noswitch_section): Likewise.
887 (get_section): Likewise.
888 (get_block_for_section): Likewise.
889 (build_constant_desc): Likewise.
890 (create_constant_pool): Likewise.
891 (force_const_mem): Likewise.
892
893 * tree.c (build_vl_exp_stat): Likewise.
894 (build_real): Likewise.
895 (build_string): Likewise.
896 (decl_debug_expr_insert): Likewise.
897 (decl_value_expr_insert): Likewise.
898 (type_hash_add): Likewise.
899 (build_omp_clause): Likewise.
900
901 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
902
903 * tree-ssa.c (init_tree_ssa): Likewise.
904
905 * tree-ssa-structalias.c (heapvar_insert): Likewise.
906
907 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
908
909 * tree-ssa-loop-niter.c (record_estimate): Likewise.
910
911 * tree-ssa-alias.c (get_ptr_info): Likewise.
912
913 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
914
915 * tree-phinodes.c (allocate_phi_node): Likewise.
916
917 * tree-iterator.c (tsi_link_before): Likewise.
918 (tsi_link_after): Likewise.
919
920 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
921
922 * tree-dfa.c (create_var_ann): Likewise.
923
924 * tree-cfg.c (create_bb): Likewise.
925
926 * toplev.c (alloc_for_identifier_to_locale): Likewise.
927 (general_init): Likewise.
928
929 * stringpool.c (stringpool_ggc_alloc): Likewise.
930 (gt_pch_save_stringpool): Likewise.
931
932 * sese.c (if_region_set_false_region): Likewise.
933
934 * passes.c (do_per_function_toporder): Likewise.
935
936 * optabs.c (set_optab_libfunc): Likewise.
937 (set_conv_libfunc): Likewise.
938
939 * lto-symtab.c (lto_symtab_register_decl): Likewise.
940
941 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
942 (input_eh_region): Likewise.
943 (input_eh_lp): Likewise.
944 (make_new_block): Likewise.
945 (unpack_ts_real_cst_value_fields): Likewise.
946
947 * lto-section-in.c (lto_new_in_decl_state): Likewise.
948
949 * lto-cgraph.c (input_node_opt_summary): Likewise.
950
951 * loop-init.c (loop_optimizer_init): Likewise.
952
953 * lambda.h (lambda_vector_new): Likewise.
954
955 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
956
957 * ira.c (update_equiv_regs): Likewise.
958
959 * ipa.c (cgraph_node_set_new): Likewise.
960 (cgraph_node_set_add): Likewise.
961 (varpool_node_set_new): Likewise.
962 (varpool_node_set_add): Likewise.
963
964 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
965 (duplicate_ipa_jump_func_array): Likewise.
966 (ipa_read_node_info): Likewise.
967
968 * ipa-cp.c (ipcp_create_replace_map): Likewise.
969
970 * integrate.c (get_hard_reg_initial_val): Likewise.
971
972 * gimple.c (gimple_alloc_stat): Likewise.
973 (gimple_build_omp_for): Likewise.
974 (gimple_seq_alloc): Likewise.
975 (gimple_copy): Likewise.
976
977 * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
978 (gsi_insert_after_without_update): Likewise.
979
980 * function.c (add_frame_space): Likewise.
981 (insert_temp_slot_address): Likewise.
982 (assign_stack_temp_for_type): Likewise.
983 (allocate_struct_function): Likewise.
984 (types_used_by_var_decl_insert): Likewise.
985
986 * except.c (init_eh_for_function): Likewise.
987 (gen_eh_region): Likewise.
988 (gen_eh_region_catch): Likewise.
989 (gen_eh_landing_pad): Likewise.
990 (add_call_site): Likewise.
991
992 * emit-rtl.c (get_mem_attrs): Likewise.
993 (get_reg_attrs): Likewise.
994 (start_sequence): Likewise.
995 (init_emit): Likewise.
996
997 * dwarf2out.c (new_cfi): Likewise.
998 (queue_reg_save): Likewise.
999 (dwarf2out_frame_init): Likewise.
1000 (new_loc_descr): Likewise.
1001 (find_AT_string): Likewise.
1002 (new_die): Likewise.
1003 (add_var_loc_to_decl): Likewise.
1004 (clone_die): Likewise.
1005 (clone_as_declaration): Likewise.
1006 (break_out_comdat_types): Likewise.
1007 (new_loc_list): Likewise.
1008 (loc_descriptor): Likewise.
1009 (add_loc_descr_to_each): Likewise.
1010 (add_const_value_attribute): Likewise.
1011 (tree_add_const_value_attribute): Likewise.
1012 (add_comp_dir_attribute): Likewise.
1013 (add_name_and_src_coords_attributes): Likewise.
1014 (lookup_filename): Likewise.
1015 (store_vcall_insn): Likewise.
1016 (dwarf2out_init): Likewise.
1017
1018 * dbxout.c (dbxout_init): Likewise.
1019
1020 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
1021
1022 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
1023
1024 * config/score/score7.c (score7_output_external): Likewise.
1025
1026 * config/score/score3.c (score3_output_external): Likewise.
1027
1028 * config/s390/s390.c (s390_init_machine_status): Likewise.
1029
1030 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
1031 (rs6000_init_machine_status): Likewise.
1032 (output_toc): Likewise.
1033
1034 * config/pa/pa.c (pa_init_machine_status): Likewise.
1035 (get_deferred_plabel): Likewise.
1036
1037 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
1038
1039 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
1040
1041 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
1042
1043 * config/mep/mep.c (mep_init_machine_status): Likewise.
1044 (mep_note_pragma_flag): Likewise.
1045
1046 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
1047
1048 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
1049
1050 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
1051
1052 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
1053 (i386_pe_maybe_record_exported_symbol): Likewise.
1054
1055 * config/i386/i386.c (get_dllimport_decl): Likewise.
1056 (ix86_init_machine_status): Likewise.
1057 (assign_386_stack_local): Likewise.
1058
1059 * config/frv/frv.c (frv_init_machine_status): Likewise.
1060
1061 * config/darwin.c (machopic_indirection_name): Likewise.
1062
1063 * config/cris/cris.c (cris_init_machine_status): Likewise.
1064
1065 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
1066
1067 * config/avr/avr.c (avr_init_machine_status): Likewise.
1068
1069 * config/arm/arm.c (arm_init_machine_status): Likewise.
1070
1071 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
1072 (alpha_need_linkage): Likewise.
1073 (alpha_use_linkage): Likewise.
1074
1075 * cgraph.c (cgraph_allocate_node): Likewise.
1076 (cgraph_create_edge_1): Likewise.
1077 (cgraph_create_indirect_edge): Likewise.
1078 (cgraph_add_asm_node): Likewise.
1079
1080 * cfgrtl.c (init_rtl_bb_info): Likewise.
1081
1082 * cfgloop.c (alloc_loop): Likewise.
1083 (rescan_loop_exit): Likewise.
1084
1085 * cfg.c (init_flow): Likewise.
1086 (alloc_block): Likewise.
1087 (unchecked_make_edge): Likewise.
1088
1089 * c-parser.c (c_parse_init): Likewise.
1090 (c_parse_file): Likewise.
1091
1092 * c-decl.c (bind): Likewise.
1093 (record_inline_static): Likewise.
1094 (push_scope): Likewise.
1095 (make_label): Likewise.
1096 (lookup_label_for_goto): Likewise.
1097 (finish_struct): Likewise.
1098 (finish_enum): Likewise.
1099 (c_push_function_context): Likewise.
1100
1101 * bitmap.c (bitmap_element_allocate): Likewise.
1102 (bitmap_gc_alloc_stat): Likewise.
1103
1104 * alias.c (record_alias_subset): Likewise.
1105 (init_alias_analysis): Likewise.
1106
1107 2010-06-08 Shujing Zhao <pearly.zhao@oracle.com>
1108
1109 * fold-const.c (fold_comparison): Remove redundant parenthesis.
1110 * tree-inline.c (expand_call_inline): Pass translated return value of
1111 cgraph_inline_failed_string to diagnostic function.
1112
1113 2010-06-08 Andrew Pinski <pinskia@gmail.com>
1114 Shujing Zhao <pearly.zhao@oracle.com>
1115
1116 PR c/37724
1117 * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
1118 implicit bad conversions is initialization.
1119 (error_init): Use gmsgid instead of msgid for argument name and change
1120 the call for error.
1121 (pedwarn_init): Use gmsgid instead of msgid for argument name and
1122 change the call for pedwarn.
1123 (warning_init): Use gmsgid instead of msgid for argument name and
1124 change the call for warning.
1125
1126 2010-06-07 Nathan Froyd <froydnj@codesourcery.com>
1127
1128 * config/mips/mips-protos.h (mips_print_operand): Delete.
1129 (mips_print_operand_address): Delete.
1130 * config/mips/mips.h (mips_print_operand_punct): Delete.
1131 (PRINT_OPERAND): Delete.
1132 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1133 (PRINT_OPERAND_ADDRESS): Delete.
1134 * config/mips/mips.c (mips_print_operand_punct): Make static.
1135 (mips_print_operand_address): Make static.
1136 (mips_print_operand): Make static. Call
1137 mips_print_operand_punct_valid_p.
1138 (mips_print_operand_punct_valid_p): New function.
1139 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
1140 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1141
1142 2010-06-07 Jan Hubicka <jh@suse.cz>
1143
1144 PR middle-end/44454
1145 (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
1146 are allocated.
1147
1148 2010-06-07 Kaz Kojima <kkojima@gcc.gnu.org>
1149
1150 * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
1151 name of RECORD.
1152
1153 2010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1154
1155 * doc/sourcebuild.texi (Effective-Target Keywords, Other
1156 attributes): Document gas.
1157
1158 2010-06-07 Uros Bizjak <ubizjak@gmail.com>
1159
1160 * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
1161 <TYPE_LEA>: Split instruction.
1162 <default>: Remove alternative 2 handling.
1163 (*addsi_1_zext) <TYPE_LEA>: Split instruction.
1164 (add lea splitter): Generate SImode lea for mode sizes <= SImode.
1165 (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
1166
1167 (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
1168 (ashift_zext lea splitter): Use DImode for multiplication.
1169
1170 * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
1171 to generate addition.
1172
1173 2010-06-07 Joseph Myers <joseph@codesourcery.com>
1174
1175 * common.opt (fira-verbose): Use Var.
1176 (fpcc-struct-return): Use Init instead of VarExists.
1177 * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
1178 toplev.c.
1179 * flags.h (flag_signed_char, flag_short_enums,
1180 flag_pcc_struct_return, flag_ira_verbose,
1181 flag_detailed_statistics, flag_remove_unreachable_functions):
1182 Remove.
1183 * toplev.c (flag_detailed_statistics, flag_signed_char,
1184 flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
1185 (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
1186 * toplev.h (flag_crossjumping, flag_if_conversion,
1187 flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
1188 flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
1189 flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
1190 flag_cprop_registers, time_report, flag_ira_loop_pressure,
1191 flag_ira_coalesce, flag_ira_move_spills,
1192 flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
1193
1194 2010-06-07 Jan Hubicka <jh@suse.cz>
1195
1196 * df-core.c (df_analyze_problem): Do verification after allocation.
1197
1198 * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
1199 (df_lr_alloc): Initialize problem data; move bitmaps to
1200 lr_bitmaps obstack.
1201 (df_lr_finalize): Free problem data; do not bother to free bitmaps.
1202 (df_lr_verify_solution_start): Do not initialize problem data;
1203 allocate bitmaps in lr_bitmaps.
1204 (df_lr_verify_solution_end): Do not free problem data.
1205
1206 2010-06-07 Jan Hubicka <jh@suse.cz>
1207
1208 * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
1209 if caller is noreturn.
1210 * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
1211 * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
1212 * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
1213 * ipa-pure-const.c (check_decl): Add IPA parameter.
1214 (state_from_flags): New function.
1215 (better_state, worse_state): New functions.
1216 (check_call): When in IPA mode, do not care about callees.
1217 (check_load, check_store): Update.
1218 (check_ipa_load, check_ipa_store): New.
1219 (check_stmt): When in IPA mode, use IPA checkers.
1220 (analyze_function): Use state_from_flags.
1221 (propagate): Check indirect edges and references.
1222
1223 2010-06-07 Kazu Hirata <kazu@codesourcery.com>
1224
1225 PR rtl-optimization/44404
1226 * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
1227 of count_occurrences to see if it's safe to modify mem_insn.insn.
1228
1229 2010-06-07 Richard Guenther <rguenther@suse.de>
1230
1231 * gimplify.c (gimplify_cleanup_point_expr): For empty body
1232 and EH-only cleanup drop the cleanup instead of inserting it
1233 unconditionally.
1234
1235 2010-06-07 Ira Rosen <irar@il.ibm.com>
1236
1237 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
1238 documentation.
1239 * targhooks.c (default_builtin_vectorization_cost): New function.
1240 * targhooks.h (default_builtin_vectorization_cost): Declare.
1241 * target.h (enum vect_cost_for_stmt): Define.
1242 (builtin_vectorization_cost): Change argument and comment.
1243 * tree-vectorizer.h: Remove cost model macros.
1244 * tree-vect-loop.c: Include target.h.
1245 (vect_get_cost): New function.
1246 (vect_estimate_min_profitable_iters): Replace cost model macros with
1247 calls to vect_get_cost.
1248 (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
1249 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
1250 default implementation.
1251 * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
1252 calls to target hook builtin_vectorization_cost.
1253 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
1254 Likewise.
1255 * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
1256 * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
1257 implementation to return costs.
1258 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
1259 * config/spu/spu.h: Remove vectorizer cost model macros.
1260 * config/i386/i386.h: Likewise.
1261 * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
1262 a call to target hook builtin_vectorization_cost.
1263
1264 2010-06-06 Sriraman Tallam <tmsriram@google.com>
1265
1266 PR target/44319
1267 * config/i386/i386.c (override_options): Turn zee pass on for level 2
1268 and above and defer till target is known.
1269 (optimization_options): Turn on zee pass if TARGET_64BIT is set and
1270 turn off otherwise.
1271
1272 2010-05-25 Jan Hubicka <jh@suse.cz>
1273
1274 * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
1275 (df_compact_blocks): Likewise.
1276 * df.h (struct df): Turn hardware_regs_used,
1277 regular_block_artificial_uses, eh_block_artificial_uses,
1278 insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
1279 bitmap_head.
1280 * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
1281 df_byte_lr_alloc, df_simulate_fixup_sets): Update.
1282 * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
1283 df_scan_blocks, df_insn_delete, df_insn_rescan,
1284 df_insn_rescan_debug_internal, df_insn_rescan_all,
1285 df_process_deferred_rescans, df_process_deferred_rescans,
1286 df_notes_rescan, df_get_call_refs, df_get_call_refs,
1287 regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
1288 df_record_entry_block_defs, df_record_exit_block_uses,
1289 df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
1290 df_scan_verify): Update.
1291
1292 2010-05-25 Dodji Seketeli <dodji@redhat.com>
1293
1294 PR c++/44188
1295 * c-common.c (is_typedef_decl): Move this definition ...
1296 * tree.c (is_typedef_decl): ... here.
1297 (typdef_variant_p): Move definition here from gcc/cp/tree.c.
1298 * c-common.h (is_typedef_decl): Move this declaration ...
1299 * tree.h (is_typedef_decl): ... here.
1300 (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
1301 * dwarf2out.c (is_naming_typedef_decl): New function.
1302 (gen_tagged_type_die): Split out of ...
1303 (gen_type_die_with_usage): ... this function. When an anonymous
1304 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
1305 is emitted for the typedef.
1306 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
1307 anonymous tagged types.
1308
1309 2010-06-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
1310
1311 PR c/20000
1312 * c-decl.c (grokdeclarator): Delete warning.
1313
1314 2010-06-06 Eric Botcazou <ebotcazou@adacore.com>
1315
1316 * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
1317 newly built CALL_EXPR.
1318 * tree-profile.c (tree_profiling): Don't profile functions produced
1319 for built-in stuff.
1320
1321 2010-06-06 Segher Boessenkool <segher@kernel.crashing.org>
1322
1323 PR bootstrap/44427
1324 PR bootstrap/44428
1325 * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
1326 endianness-independent.
1327
1328 2010-06-05 Steven Bosscher <steven@gcc.gnu.org>
1329
1330 * c-common.c: Move to c-family/.
1331 * c-common.def: Likewise.
1332 * c-common.h: Likewise.
1333 * c-cppbuiltin.c: Likewise.
1334 * c-dump.c: Likewise.
1335 * c-format.c: Likewise.
1336 * c-format.h : Likewise.
1337 * c-gimplify.c: Likewise.
1338 * c-lex.c: Likewise.
1339 * c-omp.c: Likewise.
1340 * c.opt: Likewise.
1341 * c-opts.c: Likewise.
1342 * c-pch.c: Likewise.
1343 * c-ppoutput.c: Likewise.
1344 * c-pragma.c: Likewise.
1345 * c-pragma.h: Likewise.
1346 * c-pretty-print.c: Likewise.
1347 * c-pretty-print.h: Likewise.
1348 * c-semantics.c: Likewise.
1349 * stub-objc.c: Likewise.
1350
1351 * gengtype.c (get_file_langdir): Special-case files in c-family/.
1352 (get_output_file_with_visibility): Fix name for c-common.h.
1353 * c-config-lang.in: Update paths in gtfiles for files in c-family/.
1354
1355 * c-tree.h: Update include path for moved files.
1356 * c-lang.c: Likewise.
1357 * c-lang.h: Likewise.
1358 * c-parser.c: Likewise.
1359 * c-convert.c: Likewise.
1360 * c-decl.c: Likewise.
1361 * c-objc-common.c: Likewise.
1362 * configure.ac: Make sure c-family/ exists in the build directory.
1363 * configure: Regenerate.
1364 * Makefile.in: Update paths for moved files. Regroup files per
1365 location and update dependencies. Move generated_files down after
1366 ALL_GTFILES_H.
1367
1368 * config/spu/spu-c.c: Update paths for moved files.
1369 * config/mep/mep-pragma.c: Likewise.
1370 * config/darwin-c.c: Likewise.
1371 * config/i386/msformat-c.c: Likewise.
1372 * config/i386/i386-c.c: Likewise.
1373 * config/avr/avr-c.c: Likewise.
1374 * config/sol2-c.c: Likewise.
1375 * config/ia64/ia64-c.c: Likewise.
1376 * config/rs6000/rs6000-c.c: Likewise.
1377 * config/arm/arm.c: Likewise.
1378 * config/arm/arm-c.c: Likewise.
1379 * config/h8300/h8300.c: Likewise.
1380 * config/v850/v850-c.c: Likewise.
1381
1382 * config/t-darwin: Fix dependencies for moved files.
1383 * config/t-sol2: Fix dependencies for moved files.
1384 * config/mep/t-mep: Fix dependencies for moved files.
1385 * config/ia64/t-ia64: Fix dependencies for moved files.
1386 * config/rs6000/t-rs6000: Fix dependencies for moved files.
1387 * config/v850/t-v850: Fix dependencies for moved files.
1388 * config/v850/t-v850e: Fix dependencies for moved files.
1389
1390 * config/m32c/m32c-pragma.c
1391
1392 * po/exgettext: Look in c-family/ also.
1393
1394 2010-06-05 Eric Botcazou <ebotcazou@adacore.com>
1395
1396 * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
1397 (mark_control_dependent_edges_necessary): Call it instead of marking
1398 the last statement manually.
1399 (propagate_necessity): Likewise.
1400
1401 2010-06-05 Jan Hubicka <jh@suse.cz>
1402
1403 * basic-block.h (compute_dominance_frontiers): Updated.
1404 (compute_idf): Likewise.
1405
1406 * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
1407 for dominance frontiers.
1408 (rewrite_into_ssa): Update for bitmap heads in dominance
1409 frontiers.
1410 (insert_updated_phi_nodes_for): Likewise.
1411 (update_ssa): Likewise.
1412 * cfganal.c (compute_dominance_frontiers_1): Likewise.
1413 (compute_dominance_frontiers): Likewise.
1414 (compute_idf): Likewise.
1415 * df-problems.c (df_md_local_compute): Likewise.
1416
1417 2010-06-05 Anatoly Sokolov <aesok@post.ru>
1418
1419 * target.h (struct gcc_target): Add memory_move_cost field.
1420 * target-def.h (TARGET_MEMORY_MOVE_COST): New.
1421 (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
1422 * targhooks.c (default_memory_move_cost): New function.
1423 * targhooks.h (default_memory_move_cost): Declare function.
1424 * reload.h (memory_move_cost): Declare.
1425 (memory_move_secondary_cost): Change type of 'in' argument to bool.
1426 * reginfo.c (memory_move_cost): New function.
1427 (memory_move_secondary_cost): Change type of 'in' argument to bool.
1428 * ira.h (ira_memory_move_cost): Update comment.
1429 * ira.c: (ira_memory_move_cost): Update comment.
1430 (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
1431 with memory_move_cost.
1432 * postreload.c (reload_cse_simplify_set): (Ditto.).
1433 * reload1.c (choose_reload_regs): (Ditto.).
1434 * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
1435 (MEMORY_MOVE_COST): Revise documentation.
1436
1437 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
1438 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
1439 * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
1440 type of 'in' argument to bool.
1441 (TARGET_MEMORY_MOVE_COST): Define.
1442
1443 2010-06-05 Jan Hubicka <jh@suse.cz>
1444
1445 * ipa-pure-const.c (propagate): Fix typo in handling of functions
1446 that cannot return. Be more careful when merging the results with
1447 previously known ones.
1448
1449 2010-06-05 Matthias Klose <doko@ubuntu.com>
1450
1451 * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
1452 function to add the -iplugindir option.
1453 (find_plugindir_spec_function): Add new declaration and function.
1454 (static_spec_func): Use it for "find-plugindir".
1455
1456 2010-06-05 Jakub Jelinek <jakub@redhat.com>
1457
1458 PR c++/44361
1459 * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
1460 * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
1461 statement expression.
1462
1463 2010-06-05 Jan Hubicka <jh@suse.cz>
1464
1465 * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
1466 (df_rd_problem_data): Convert sparse_invalidated_by_call,
1467 dense_invalidated_by_call to bitmap head.
1468 (df_rd_alloc, df_rd_bb_local_compute_process_def,
1469 df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
1470 df_rd_start_dump, df_lr_verify_transfer_functions,
1471 df_live_verify_transfer_functions, df_chain_create_bb,
1472 df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
1473 df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
1474 df_simulate_one_insn_forwards, df_md_alloc,
1475 df_md_bb_local_compute_process_def,
1476 df_md_bb_local_compute_process_def, df_md_local_compute,
1477 df_md_transfer_function df_md_free): Update.
1478
1479 2010-06-05 Joseph Myers <joseph@codesourcery.com>
1480
1481 PR c/44322
1482 * c-typeck.c (build_unary_op): Merge qualifiers into pointer
1483 target type for ADDR_EXPR; require no changes to qualifiers except
1484 for function types.
1485 * c-tree.h (c_build_type_variant): Remove.
1486
1487 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
1488
1489 * genautomata.c (get_excl_set): Do work per element, not per char.
1490 (check_presence_pattern_sets): Similar.
1491 (check_absence_pattern_sets): Similar.
1492
1493 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
1494
1495 * genautomata.c (curr_state_pass_num): Delete.
1496 (min_issue_delay_pass_states): Delete.
1497 (min_issue_delay): Delete.
1498 (initiate_min_issue_delay_pass_states): Delete.
1499 (output_min_issue_delay_table): Compute min_issue_delay_vect
1500 using a breadth-first search variant.
1501 (output_tables): Don't call initiate_min_issue_delay_pass_states.
1502
1503 2010-06-04 H.J. Lu <hongjiu.lu@intel.com>
1504
1505 PR boostrap/44421
1506 * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
1507 (df_byte_lr_bb_local_compute): Likewise.
1508
1509 2010-06-03 Jason Merrill <jason@redhat.com>
1510
1511 Implement noexcept operator (5.3.7)
1512 * c-common.c (c_common_reswords): Add noexcept.
1513 * c-common.h (enum rid): Add RID_NOEXCEPT.
1514
1515 2010-06-04 Joseph Myers <joseph@codesourcery.com>
1516
1517 * config/darwin-driver.c (darwin_default_min_version): Use
1518 GCC-specific formats in diagnostics.
1519 * cppspec.c (lang_specific_driver): Use GCC-specific formats in
1520 diagnostics.
1521 * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
1522 execute, process_command, end_going_arg, do_self_spec, do_spec_1,
1523 eval_spec_function, handle_braces, process_brace_body, main,
1524 perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
1525 getenv_spec_function, compare_version_strings,
1526 version_compare_spec_function): Use GCC-specific formats in
1527 diagnostics.
1528
1529 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
1530
1531 * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
1532 that operand 0 and operand 1 are equal.
1533 (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
1534 (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
1535 and operand 1 are equal.
1536 <default>: Ditto. Remove ??? comment.
1537 (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
1538 and operand 1 are equal.
1539 <default>: Ditto. Remove ??? comment.
1540 (*adddi_4) <default>: Remove assert that operand 0 and operand 1
1541 are equal.
1542 (*add<mode>_4) <default>: Ditto.
1543 (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
1544
1545 2010-06-04 Nathan Froyd <froydnj@codesourcery.com>
1546
1547 * config/i386/i386-protos.h (ix86_print_operand): Declare.
1548 * config/i386/i386.c (ix86_print_operand): Make non-static.
1549 * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
1550 * output.h (output_operand): Declare.
1551 * final.c (output_operand): Make non-static.
1552
1553 2010-06-04 Alexandre Oliva <aoliva@redhat.com>
1554
1555 PR rtl-optimization/44013
1556 * sched-deps.c (add_dependence_list_and_free): Don't free lists
1557 when processing debug insns.
1558
1559 PR debug/41371
1560 * var-tracking.c (find_loc_in_1pdv): Mark initial value before
1561 recursing. Check that recursion is bounded. Rename inner var
1562 to avoid hiding incoming argument.
1563
1564 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
1565
1566 * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
1567 operands[2] == 255.
1568 (*addqi_3): Ditto.
1569 (*addqi_4): Ditto.
1570 (*addqi_5): Ditto.
1571 (*addqi_ext_1_rex64): Ditto.
1572 (*addqi_ext_1): Ditto.
1573
1574 (*addqi_4): Check for incdec_operand in QImode.
1575
1576 (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
1577 using SWI mode iterator.
1578 (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
1579 (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
1580 mode iterator.
1581 (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
1582 using SWI mode iterator.
1583
1584 2010-06-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
1585
1586 PR c/25880
1587 * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
1588 * c-format.c (gcc_diag_flag_specs): Add hash.
1589 (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
1590 (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
1591 * c-pretty-print.c (pp_c_cv_qualifier): Rename as
1592 pp_c_cv_qualifiers. Handle qualifiers spelling here.
1593 (pp_c_type_qualifier_list): Call the function above.
1594 * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
1595 * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
1596 (WARN_FOR_QUALIFIERS): New macro.
1597 (convert_for_assignment): Use it.
1598
1599 2010-06-04 Kai Tietz <kai.tietz@onevision.com>
1600
1601 * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
1602
1603 2010-06-04 Jan Hubicka <jh@suse.cz>
1604
1605 * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
1606 df_byte_lr_bb_info): Embedd bitmap_head into the structure.
1607 (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
1608 DF_BYTE_LR_OUT): Update for embedded bitmaps.
1609 * fwprop.c (single_def_use_enter_block): Likewise.
1610 * ddg.c (create_ddg_dep_from_intra_loop_link,
1611 add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
1612 * loop-iv.c (latch_dominating_def): Likewise.
1613 * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
1614 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
1615 df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
1616 df_rd_transfer_function, df_rd_top_dump,
1617 df_rd_bottom_dump): Update.
1618 (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
1619 df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
1620 df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
1621 df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
1622 df_lr_verify_solution_start, df_lr_verify_solution_end,
1623 df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
1624 df_live_free_bb_info, df_live_alloc, df_live_reset,
1625 df_live_bb_local_compute, df_live_init, df_live_transfer_function,
1626 df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
1627 df_live_verify_solution_start, df_live_verify_solution_end,
1628 df_live_verify_transfer_functions, df_chain_create_bb,
1629 df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
1630 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
1631 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
1632 df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
1633 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
1634 df_byte_lr_transfer_function, df_byte_lr_top_dump,
1635 df_byte_lr_bottom_dump, df_create_unused_note,
1636 df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
1637 df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
1638 df_md_transfer_function, df_md_init, df_md_confluence_0,
1639 df_md_confluence_n,
1640 df_md_top_dump, df_md_bottom_dump): Update.
1641 (struct df_lr_problem_data): Embedd bitmap headers.
1642
1643 2010-06-04 Jan Hubicka <jh@suse.cz>
1644
1645 * dce.c (dce_process_block): Do not re-scan already marked
1646 instructions.
1647
1648 2010-06-04 Bernd Schmidt <bernds@codesourcery.com>
1649
1650 PR rtl-optimization/39871
1651 PR rtl-optimization/40615
1652 PR rtl-optimization/42500
1653 PR rtl-optimization/42502
1654 * ira.c (init_reg_equiv_memory_loc: New function.
1655 (ira): Call it twice.
1656 * reload.h (calculate_elim_costs_all_insns): Declare.
1657 * ira-costs.c: Include "reload.h".
1658 (regno_equiv_gains): New static variable.
1659 (init_costs): Allocate it.
1660 (finish_costs): Free it.
1661 (ira_costs): Call calculate_elim_costs_all_insns.
1662 (find_costs_and_classes): Take estimated elimination costs
1663 into account.
1664 (ira_adjust_equiv_reg_cost): New function.
1665 * ira.h (ira_adjust_equiv_reg_cost): Declare it.
1666 * reload1.c (init_eliminable_invariants, free_reg_equiv,
1667 elimination_costs_in_insn, note_reg_elim_costly): New static functions.
1668 (elim_bb): New static variable.
1669 (reload): Move code out of here into init_eliminable_invariants and
1670 free_reg_equiv. Call them.
1671 (calculate_elim_costs_all_insns): New function.
1672 (eliminate_regs_1): Declare. Add extra arg FOR_COSTS;
1673 all callers changed. If FOR_COSTS is true, don't call alter_reg,
1674 but call note_reg_elim_costly if we turned a valid memory address
1675 into an invalid one.
1676 * Makefile.in (ira-costs.o): Depend on reload.h.
1677
1678 2010-06-04 Julian Brown <julian@codesourcery.com>
1679
1680 * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
1681 for pool ranges.
1682
1683 2010-06-04 Richard Guenther <rguenther@suse.de>
1684
1685 PR lto/41584
1686 * cgraph.h (struct varpool_node): Add lto_file_data field.
1687 * lto-cgraph.c (input_varpool_node): Initialize it.
1688
1689 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
1690
1691 * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
1692 * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
1693 predicate in "type" attribute calculation.
1694 (*addsi_1_zext): Ditto.
1695 (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
1696 (*addsi_2_zext): Ditto.
1697 (*add<mode>_3): Ditto.
1698 (*addsi_3_zext): Ditto.
1699 (*add<mode>_5): Ditto.
1700
1701 2010-06-03 Jan Hubicka <jh@suse.cz>
1702
1703 * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
1704 of bitmap_bit_p.
1705 * cfganal.c (compute_dominance_frontiers_1): Likewise.
1706
1707 2010-06-03 Jan Hubicka <jh@suse.cz>
1708
1709 * df-problems.c (df_create_unused_note, df_note_bb_compute):
1710 micro-optimize the checks when to add new note.
1711
1712 2010-06-03 Nathan Froyd <froydnj@codesourcery.com>
1713
1714 * final.c (output_asm_insn): Call
1715 targetm.asm_out.print_operand_punct_valid_p. Update comments.
1716 (output_operand): Call targetm.asm_out.print_operand. Update comments.
1717 (output_address): Call targetm.asm_out.print_operand_address.
1718 Update comments.
1719 * target.h (struct gcc_target): Add print_operand,
1720 print_operand_address, and print_operand_punct_valid_p fields.
1721 * targhooks.h (default_print_operand): Declare.
1722 (default_print_operand_address): Declare.
1723 (default_print_operand_punct_valid_p): Declare.
1724 * targhooks.c (default_print_operand): Define.
1725 (default_print_operand_address): Define.
1726 (default_print_operand_punct_valid_p): Define.
1727 * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
1728 (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
1729 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
1730 (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
1731 TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
1732 * vmsdbgout.c (addr_const_to_string): Update comment.
1733 * config/i386/i386.c (print_operand): Rename to...
1734 (ix86_print_operand): ...this. Make static.
1735 (print_operand_address): Rename to...
1736 (ix86_print_operand_address): ...this. Make static. Call
1737 ix86_print_operand instead of PRINT_OPERAND.
1738 (ix86_print_operand_punct_valid_p): New function.
1739 (TARGET_PRINT_OPERAND): Define.
1740 (TARGET_PRINT_OPERAND_ADDRESS): Define.
1741 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1742 * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
1743 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1744 (PRINT_OPERAND): Delete.
1745 (PRINT_OPERAND_ADDRESS): Delete.
1746 * config/i386/i386-protos.h (print_operand): Delete prototype.
1747 (print_operand_address): Delete prototype.
1748
1749 2010-06-03 Richard Guenther <rguenther@suse.de>
1750
1751 PR tree-optimization/44403
1752 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
1753 Preserve pointer qualifiers.
1754 (vect_create_data_ref_ptr): Likewise.
1755
1756 2010-06-03 H.J. Lu <hongjiu.lu@intel.com>
1757
1758 PR c++/44294
1759 * defaults.h (MAX_FIXED_MODE_SIZE): New.
1760
1761 * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
1762
1763 2010-06-03 Jakub Jelinek <jakub@redhat.com>
1764
1765 PR debug/44375
1766 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
1767 return false if merging the bbs would lead to goto_locus
1768 location being lost from the IL.
1769
1770 2010-06-03 Jan Hubicka <jh@suse.cz>
1771 Jakub Jelinek <jakub@redhat.com>
1772
1773 * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
1774 set->regs[i] is NULL or has just one entry.
1775
1776 2010-06-03 Jan Hubicka <jh@suse.cz>
1777
1778 * lto-cgraph.c (lto_varpool_encoder_size): Remove.
1779 * lto-streamer.h (lto_varpool_encoder_size): New inline function.
1780
1781 2010-06-03 Paul Brook <paul@codesourcery.com>
1782
1783 * config/arm/arm.c (FL_TUNE): Define.
1784 (arm_default_cpu, arm_cpu_select): Remove.
1785 (all_cores): Populate core field.
1786 (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
1787 (arm_find_cpu): New function.
1788 (arm_handle_option): Lookup cpu/architecture names.
1789 (arm_override_options): Cleanup mcpu/march/mtune handling.
1790 (arm_file_start): Ditto.
1791
1792 2010-06-03 Alan Modra <amodra@gmail.com>
1793
1794 PR target/44169
1795 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
1796 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
1797 rtx to gen_load_toc_v4_PIC_1b. Tidy.
1798 (rs6000_emit_load_toc_table): Likewise.
1799
1800 2010-06-02 Jan Hubicka <jh@suse.cz>
1801
1802 * passes.c (init_optimization_passes): Put ipa reference
1803 after ipa pure-const.
1804
1805 2010-06-02 Jan Hubicka <jh@suse.cz>
1806
1807 * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
1808 calls_read_all and calls_write_all.
1809 (get_reference_optimization_summary): Fix formatting.
1810 (is_proper_for_analysis): Check that decl is not readonly.
1811 (propagate_bits): Check CONST/PURE/noreturn flags.
1812 (ipa_init): Move all_module_statics to optimization_summary_obstack.
1813 (analyze_function): Ignore indirect edges.
1814 (copy_global_bitmap): For all module statics, do nothing.
1815 (generate_summary): Do not print calls_read_all/calls_write_all.
1816 (read_write_all_from_decl): Take node as argument; check
1817 cgraph_node_cannot_return.
1818 (propagate): Reorganize read_all/write_all computation;
1819 check indirect edges; check ecf flags; use all_module_statics
1820 in the results; do not free all_module_statics.
1821 (stream_out_bitmap): Handle all_module_statics.
1822 (ipa_reference_write_optimization_summary): Likewise; use
1823 varpool/cgraph encoders to get boundaries.
1824 (ipa_reference_read_optimization_summary): Read in all_module_statics;
1825 use it when possible.
1826
1827 2010-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
1828
1829 PR target/44218
1830 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
1831 -mswdiv option. Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
1832
1833 * doc/extend.texi (powerpc builtins): Document vec_recip,
1834 vec_rsqrt, vec_rsqrte altivec/vsx builtins.
1835
1836 * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
1837 (rs6000_emit_swrsqrt): Ditto.
1838 (rs6000_emit_swdivsf): Delete.
1839 (rs6000_emit_swdivdf): Ditto.
1840 (rs6000_emit_swrsqrtsf): Ditto.
1841
1842 * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
1843 describe the reciprocal estimate support for each type.
1844 (recip_options): Map -mrecip=<opt> into option bits.
1845 (gen_2arg_fn_t): New typedef for binary rtx gen function.
1846 (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
1847 reciprocal estimate instructions.
1848 (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
1849 debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
1850 Set up rs6000_recip_bits based on the -mrecip* options. Print the
1851 cost information if -mdebug=cost or -mdebug=reg.
1852 (rs6000_override_options): Set -mrecip-precision for power6, and
1853 power7 machines. If -mvsx or -mdfp, enable various options that
1854 came in previous instruction set ISAs, unless the option was
1855 explicitly disabled by the command line option. Parse
1856 -mrecip=<opt> options.
1857 (rs6000_builtin_vectorized_function): Add support for vectorizing
1858 the reciprocal estimate builtins and expansions.
1859 (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
1860 (bdesc_2arg): Add reciprocal estimate builtins.
1861 (bdesc_1arg): Add reciprocal square root estimate builtins.
1862 (rs6000_expand_builtin): Rewrite to use a switch statement,
1863 instead of multiple if/then/elses. Add reciprocal estimate builtins.
1864 (rs6000_init_builtins): Create declarations for reciprocal
1865 estimate builtins.
1866 (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
1867 sized, prefer traditional floating point registers, if integer
1868 vector types, prefer altivec registers. Don't actually look at
1869 the memory address any more.
1870 (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
1871 builtins.
1872 (rs6000_load_constant_and_splat): New helper function to load up
1873 the constant for reciprocal estimate instructions.
1874 (rs6000_emit_madd): New helper function for generating
1875 multiply/add type instructions, based on the current switches.
1876 (rs6000_emit_msub): Ditto.
1877 (rs6000_emit_mnsub): Ditto.
1878 (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
1879 replace a divide with a reciprocal estimate and fixup, adding
1880 support for machines with high precision and vectors.
1881 (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
1882 low precision machines.
1883 (rs6000_emit_swdiv): New common function to be called to replace a
1884 division with reciprocal estimate and fixup.
1885 (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf. Add support
1886 for double and vector types. Add support for high precision machines.
1887
1888 * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
1889 the reciprocal estimate instructions can be generated.
1890 (TARGET_FRE): Ditto.
1891 (TARGET_FRSQRTES): Ditto.
1892 (TARGET_FRSQRTE): Ditto.
1893 (RS6000_RECIP_*): New macros for reciprocal estimate support.
1894
1895 * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
1896 square root estimate on vectors.
1897 (re<mode>2): New insn for reciprocal division estimate on vectors.
1898
1899 * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
1900 New builtin.
1901 (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
1902 (ALTIVEC_BUITLIN_VEC_RE): Ditto.
1903 (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
1904 (VSX_BUILTIN_RSQRT_V4SF): Ditto.
1905 (VSX_BUITLIN_RSQRT_V2DF): Ditto.
1906 (RS6000_BUILTIN_RSQRT): Ditto.
1907 (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
1908 floating point builtin.
1909
1910 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1911 macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
1912 __RECIP_PRECISION__ based on the command line switches.
1913 (altivec_overloaded_builtins): Add reciprocal estimate builtins.
1914
1915 * config/rs6000/rs6000.opt (-mrecip): Document add support for
1916 replacing division instructions with reciprocal estimate and fixup.
1917 (-mrecip=<opt>): New option.
1918 (-mrecip-precision): Ditto.
1919
1920 * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
1921 (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
1922 (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
1923 precision scalar.
1924
1925 * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
1926 (UNSPEC_VREFP): Ditto.
1927 (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
1928 conterparts with regard to support of -mno-fused-madd and -ffast-math.
1929 (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
1930 reciprocal estimate instructions to be generated.
1931 (altivec_vrefp): Ditto.
1932
1933 * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
1934 estimate support.
1935 (rreg): New mode attribute for reciprocal estimate support.
1936 (recip<mode>3): New insn for division using reciprocal estimate
1937 and fixup builtins.
1938 (divide define_split): New define_split to convert floating point
1939 division to use reciprocal estimate if the user used the
1940 appropriate options and the split is run when we can add new
1941 pseudo registers for the fixup.
1942 (rsqrt<mode>2): New insn for reciprocal square root support.
1943 (recipsf3): Move into recip<mode>3.
1944 (recipdf3): Ditto.
1945 (fres): Use TARGET_FRES.
1946 (rsqrtsf2): Move into rsqrt<mode>2.
1947 (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
1948 (copysignsf3): Add support for VSX.
1949 (fred): Use TARGET_FRE.
1950 (fred_fpr): Ditto.
1951 (rsqrtdf_internal1): New function for frsqrte instruciton.
1952
1953 * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
1954 (vec_rsqrt): Ditto.
1955
1956 2010-06-03 Richard Guenther <rguenther@suse.de>
1957
1958 PR middle-end/44291
1959 * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
1960 (set_user_assembler_libfunc): Likewise.
1961
1962 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
1963
1964 * mkconfig.sh: Include insn-flags.h and insn-constants.h before
1965 defaults.h.
1966 * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
1967 to defaults.h
1968 * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
1969 DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
1970 FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
1971 STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
1972 STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
1973 STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
1974 STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
1975 STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
1976 * defaults.h: Updated for above mentioned changes.
1977
1978 2010-06-02 Kai Tietz <kai.tietz@onevision.com>
1979
1980 * c-common.c: Remove header include of tm_p.h.
1981 * Makefile.in (c-common.o): Remove TM_P_H dependency.
1982
1983 2010-06-02 Jakub Jelinek <jakub@redhat.com>
1984
1985 * tree.h (struct tree_decl_map): New type.
1986 (tree_decl_map_eq, tree_decl_map_marked_p): Define.
1987 (tree_decl_map_hash): New prototype.
1988 (debug_expr_for_decl, value_expr_for_decl): Change into
1989 tree_decl_map hashtab from tree_map.
1990 (init_ttree): Adjust initialization.
1991 (tree_decl_map_hash): New function.
1992 (decl_debug_expr_lookup, decl_debug_expr_insert,
1993 decl_value_expr_lookup, decl_value_expr_insert): Adjust.
1994
1995 2010-06-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1996
1997 * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
1998 linker emulations.
1999 * configure: Regenerate.
2000 * config.in: Regenerate.
2001
2002 * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
2003 (X86_64_EMULATION): Define.
2004 (TARGET_LD_EMULATION): Use them.
2005
2006 * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
2007 (SPARC64_EMULATION): Define.
2008 (LINK_ARCH_SPEC): Use them.
2009
2010 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
2011
2012 * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
2013 smallest_mode_for_size for computing the precision types of new
2014 graphite IVs. Do not call lang_hooks.types.type_for_size.
2015
2016 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
2017
2018 * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
2019 information.
2020 (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
2021
2022 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
2023
2024 PR middle-end/44363
2025 * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
2026 return false instead.
2027
2028 2010-06-02 Jan Hubicka <jh@suse.cz>
2029
2030 PR middle-end/44295
2031 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
2032 create new cgraph node to check callee.
2033
2034 2010-06-02 Richard Guenther <rguenther@suse.de>
2035
2036 * lto-streamer-in.c (input_gimple_stmt): Fix typo.
2037
2038 2010-06-02 Richard Guenther <rguenther@suse.de>
2039
2040 * lto-wrapper.c (lto_wrapper_exit): Rename to ...
2041 (lto_wrapper_cleanup): ... this. Do not exit.
2042 (fatal): Adjust. Exit here.
2043 (fatal_perror): Likewise.
2044 (fatal_signal): New function.
2045 (main): Set up signal handlers to cleanup temporary files.
2046 * Makefile.in (lto-wrapper.o): Adjust dependencies.
2047
2048 2010-06-02 Richard Guenther <rguenther@suse.de>
2049
2050 PR tree-optimization/44377
2051 * tree-ssa-structalias.c (find_func_aliases): Fix typo.
2052
2053 2010-06-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2054
2055 * config/s390/2097.md (z10_fhex): Remove insn reservation.
2056 * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
2057 (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
2058 *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
2059 instruction.
2060 * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
2061
2062 2010-06-02 Jan Hubicka <jh@suse.cz>
2063
2064 * bitmap.c (bitmap_descriptor): Add search_iter.
2065 (bitmap_find_bit): Increment it.
2066 (print_statistics): Print it.
2067
2068 2010-06-02 Nathan Froyd <froydnj@codesourcery.com>
2069
2070 * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
2071 instead of gimple_build_call_vec. Delete unnecessary local variable.
2072
2073 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
2074
2075 * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
2076 change from yesterday.
2077
2078 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
2079
2080 * c-ada-spec.c: Clean up redundant includes.
2081
2082 2010-06-01 Steven Bosscher <steven@gcc.gnu.org>
2083
2084 * gimplify.c: Do not include except.h and optabs.h.
2085 (gimplify_body): Do not initialize RTL profiling.
2086 * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
2087 langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
2088 * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
2089 output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
2090 langhooks.h.
2091
2092 * tree-pretty-print.h: Include pretty-print.h.
2093 * gimple-pretty-print.h: Include pretty-print.h.
2094
2095 * tree-pretty-print.c: Do not include diagnostic.h.
2096 * tree-vrp.c: Likewise.
2097 * tree-tailcall.c: Likewise
2098 * tree-scalar-evolution.c: Likewise
2099 * tree-ssa-dse.c: Likewise
2100 * tree-chrec.c: Likewise
2101 * tree-ssa-sccvn.c: Likewise
2102 * tree-ssa-copyrename.c: Likewise
2103 * tree-nomudflap.c: Likewise
2104 * tree-call-cdce.c: Likewise
2105 * tree-stdarg.c: Likewise
2106 * tree-ssa-math-opts.c: Likewise
2107 * tree-nrv.c: Likewise
2108 * tree-ssa-sink.c: Likewise
2109 * tree-browser.c: Likewise
2110 * tree-ssa-loop-ivcanon.c: Likewise
2111 * tree-ssa-loop.c: Likewise
2112 * tree-parloops.c: Likewise
2113 * tree-ssa-address.c: Likewise
2114 * tree-ssa-ifcombine.c: Likewise
2115 * tree-if-conv.c: Likewise
2116 * tree-data-ref.c: Likewise
2117 * tree-affine.c: Likewise
2118 * tree-ssa-phiopt.c: Likewise
2119 * tree-ssa-coalesce.c: Likewise
2120 * tree-ssa-pre.c: Likewise
2121 * tree-ssa-live.c: Likewise
2122 * tree-predcom.c: Likewise
2123 * tree-ssa-forwprop.c: Likewise
2124 * tree-ssa-dce.c: Likewise
2125 * tree-ssa-ter.c: Likewise
2126 * tree-ssa-loop-prefetch.c: Likewise
2127 * tree-optimize.c: Likewise
2128 * tree-ssa-phiprop.c: Likewise
2129 * tree-object-size.c: Likewise
2130 * tree-outof-ssa.c: Likewise
2131 * tree-ssa-structalias.c: Likewise
2132 * tree-switch-conversion.c: Likewise
2133 * tree-ssa-reassoc.c: Likewise
2134 * tree-ssa-operands.c: Likewise
2135 * tree-vectorizer.c: Likewise
2136 * tree-vect-data-refs.c: Likewise
2137 * tree-vect-generic.c: Likewise
2138 * tree-vect-stmts.c: Likewise
2139 * tree-vect-patterns.c: Likewise
2140 * tree-vect-slp.c: Likewise
2141 * tree-vect-loop.c: Likewise
2142 * tree-ssa-loop-ivopts.c: Likewise
2143 * tree-ssa-loop-im.c: Likewise
2144 * tree-ssa-loop-niter.c: Likewise
2145 * tree-ssa-loop-unswitch.c: Likewise
2146 * tree-ssa-loop-manip.c: Likewise
2147 * tree-ssa-loop-ch.c: Likewise
2148 * tree-dump.c: Likewise
2149 * tree-complex.c: Likewise
2150
2151 * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
2152 * tree-ssa-uninit.c: Likewise
2153 * tree-ssa-threadupdate.c: Likewise
2154 * tree-ssa-uncprop.c: Likewise
2155 * tree-ssa-ccp.c: Likewise
2156 * tree-ssa-dom.c: Likewise
2157 * tree-ssa-propagate.c: Likewise
2158 * tree-ssa-alias.c: Likewise
2159 * tree-dfa.c: Likewise
2160 * tree-cfgcleanup.c: Likewise
2161 * tree-sra.c: Likewise
2162 * tree-ssa-copy.c: Likewise
2163 * tree-ssa.c: Likewise
2164 * tree-profile.c: Likewise
2165 * tree-cfg.c: Likewise
2166 * tree-ssa-threadedge.c: Likewise
2167 * tree-vect-loop-manip.c: Likewise
2168
2169 * tree-inline.c: Do not include diagnostic.h and expr.h.
2170 Include rtl.h.
2171 (copy_decl_for_dup_finish): Do not use NULL_RTX.
2172
2173 * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
2174 * tree-loop-distribution.c: Likewise.
2175
2176 2010-06-01 Jan Hubicka <jh@suse.cz>
2177
2178 * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
2179
2180 2010-06-01 Jan Hubicka <jh@suse.cz>
2181
2182 * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
2183 remove return value.
2184 (split_bbs_on_noreturn_calls) .... here.
2185 * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
2186 * tree-flow.h (fixup_noreturn_call): New.
2187
2188 2010-06-01 Jan Hubicka <jh@suse.cz>
2189
2190 * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
2191
2192 2010-06-01 Nathan Froyd <froydnj@codesourcery.com>
2193
2194 * tree.h (build_nt_call_list): Delete.
2195 * tree.c (build_nt_call_list): Delete.
2196
2197 2010-06-01 Jan Hubicka <jh@suse.cz>
2198
2199 * fwprop.c: Make emit-rtl.h include last.
2200 * rtlanal.c: Include emit-rtl.h.
2201 * genautomata.c: Output emit-rtl include into insn-automata.c
2202 * df-scan.c: Include emit-rtl.h.
2203 * haifa-sched.c: Indlude emit-rtl.h.
2204 * mode-switching.c: Indlude emit-rtl.h.
2205 * graph.c: Indlude emit-rtl.h.
2206 * sel-sched.c: Include emit-rtl.h.
2207 * sel-sched-ir.c: Include emit-rtl.h.
2208 * ira-build.c: Include emit-rtl.h.
2209 * emit-rtl.c: (first_insn, last_insn): Remove defines.
2210 (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
2211 Move to emit-rtl.h.
2212 (set_new_first_and_last_insn, get_last_insn_anywhere,
2213 get_first_nonnote_insn, get_last_nonnote_insn, try_split,
2214 make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
2215 delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
2216 emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
2217 push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
2218 Use accessor functions.
2219 * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
2220 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
2221 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
2222 mem_expr_equal_p): Move here from rtl.h.
2223 (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
2224 Move here from emit-rtl.c; make inline.
2225 * cfglayout.h: Include emit-rtl.h.
2226 * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
2227 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
2228 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
2229 mem_expr_equal_p, get_insns, set_first-insn,
2230 get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
2231 * reg-stack.c: Include emit-rtl.h.
2232 * dce.c: Likewise.
2233
2234 2010-06-01 Jan Hubicka <jh@suse.cz>
2235
2236 * cgraph.h (tree_function_versioning): Update prototype.
2237 (cgraph_function_versioning): Update prototype.
2238 * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
2239 bitmap.
2240 (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
2241 (cgraph_materialize_clone, save_inline_function_body): Update use of
2242 tree_function_versioning.
2243 * tree-inline.c (copy_bb): Look for previous copied block to link
2244 after; fix debug output.
2245 (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
2246 (copy_body): Likewise.
2247 (expand_call_inline): Update use of copy_body.
2248 (tree_function_versioning): Update use of copy body; accept
2249 blocks_to_copy and new_entry.
2250
2251 2010-06-01 Jan Hubicka <jh@suse.cz>
2252
2253 * gegenrtl.c: Remove unnecesary prototypes.
2254 (gendecl): Remove.
2255 (gendef): Produce static inline.
2256 (gencode): Remove.
2257 (main): Do not decode parameters; generate header only.
2258 * Makefile.in (genrtl.c): Remove.
2259
2260 2010-06-01 Jan Hubicka <jh@suse.cz>
2261
2262 * tree-switch-conversion.c (build_one_array): Make it readonly.
2263
2264 2010-06-01 Richard Guenther <rguenther@suse.de>
2265
2266 * optabs.c (init_optabs): Guard all accesses to reinit.
2267 * ipa-pure-const.c (propagate): Fix another typo.
2268 * opts.c (common_handle_option): Split assignment to bool.
2269 * c-opts.c (c_common_handle_option): Likewise.
2270
2271 2010-06-01 Arnaud Charlet <charlet@adacore.com>
2272 Matthew Gingell <gingell@adacore.com>
2273
2274 * doc/invoke.texi: Mention -fdump-ada-spec.
2275 * tree-dump.c (dump_files): Add ada-spec.
2276 (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
2277 * tree-pass.h (tree_dump_index): Add TDI_ada.
2278 * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
2279 (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
2280 (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
2281 * c-decl.c: Include c-ada-spec.h.
2282 (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
2283 functions.
2284 (c_write_global_declarations): Add handling of -fdump-ada-spec.
2285 * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
2286 * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
2287 * c-ada-spec.h, c-ada-spec.c: New files.
2288
2289 2010-06-01 Richard Guenther <rguenther@suse.de>
2290
2291 PR lto/43853
2292 * ipa-pure-const.c (get_function_state): Hand back varying state
2293 if we do not have one.
2294 (has_function_state): New function.
2295 (duplicate_node_data): Adjust.
2296 (remove_node_data): Likewise.
2297 (pure_const_write_summary): Likewise.
2298 (propagate): Likewise. Fix typo.
2299
2300 2010-06-01 Jan Hubicka <jh@suse.cz>
2301
2302 * tree-cfg.c (verify_stmt): Do not skip could_throw test.
2303 * passes.c (execute_function_todo): Do not make implicit verify_ssa.
2304 (execute_all_ipa_transforms): Do not play with the states.
2305
2306 2010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2307
2308 * config/arm/t-linux-androideabi: New.
2309 * config.gcc (arm*-*-linux-androideabi): Include multilib config.
2310
2311 2010-06-01 Jan Hubicka <jh@suse.cz>
2312
2313 * tree-inline.c (estimate_num_insns): For stdarg functions look
2314 into call statement to count cost of argument passing.
2315
2316 2010-06-01 Kai Tietz <kai.tietz@onevision.com>
2317
2318 * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
2319 argument for fprintf.
2320 (ix86_output_addr_diff_elt): Likewise.
2321 (x86_function_profiler): Likewise.
2322 * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
2323 (LPREFIX): Likewise.
2324 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2325
2326 2010-05-31 Jakub Jelinek <jakub@redhat.com>
2327
2328 PR target/44338
2329 * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
2330 fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
2331 fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
2332 fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
2333 fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
2334 fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
2335 fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
2336 Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
2337 TARGET_FUSED_MADD.
2338
2339 2010-05-31 Jan Hubicka <jh@suse.cz>
2340
2341 * tree.h (tree_range_check_failed): Declare noreturn.
2342
2343 2010-05-31 Jan Hubicka <jh@suse.cz>
2344
2345 * gimple.c (gimple_call_builtin_p): New function.
2346 * gimple.h (gimple_call_builtin_p): Declare.
2347 * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
2348 to exit.
2349 (execute_warn_function_return): BUILT_IN_RETURN is return.
2350 (split_critical_edges): Return edges are not critical.
2351 (is_ctrl_altering_stmt): Builtin_in_return is altering.
2352 (gimple_verify_flow_info): Handle built_in_return.
2353 (execute_warn_function_return): Handle built_in_return.
2354 * ipa-pure-const.c (check_call): Ignore builtin_return.
2355
2356 2010-05-31 Jakub Jelinek <jakub@redhat.com>
2357
2358 PR middle-end/44337
2359 * expr.c (expand_assignment): Don't store anything for out-of-bounds
2360 array accesses with non-MEM.
2361
2362 PR tree-optimization/44182
2363 * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
2364 newly needs to end a bb is followed by debug stmts, instead return
2365 true from the function at the end.
2366 (maybe_move_debug_stmts_to_successors): New function.
2367 (copy_cfg_body): Call it if copy_edges_for_bb returned true.
2368
2369 2010-05-31 Kai Tietz <kai.tietz@onevision.com>
2370
2371 PR target/44161
2372 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
2373
2374 2010-05-31 Eric Botcazou <ebotcazou@adacore.com>
2375
2376 * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
2377 for nested functions in non-optimized compilation.
2378
2379 2010-05-31 Richard Guenther <rguenther@suse.de>
2380
2381 * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
2382
2383 2010-05-30 Jan Hubicka <jh@suse.cz>
2384
2385 * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
2386
2387 2010-05-30 Richard Guenther <rguenther@suse.de>
2388
2389 PR lto/42975
2390 * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
2391 (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
2392 no longer needed.
2393
2394 2010-05-30 Iain Sandoe <iains@gcc.gnu.org>
2395
2396 * config/darwin.c (output_objc_section_asm_op): Add comment.
2397 (name_needs_quotes): Add '_' to list of valid comment chars.
2398 (machopic_output_function_base_name): Remove unneeded quotes.
2399 (darwin_encode_section_info): Adjust asm whitespace.
2400 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
2401 (ASM_OUTPUT_LOCAL): Ditto.
2402 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
2403 * config/darwin.h (GLOBAL_ASM_OP): Ditto.
2404 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
2405
2406 2010-05-30 Eric Botcazou <ebotcazou@adacore.com>
2407
2408 * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
2409 RS6000_OUTPUT_BASENAME unconditionally.
2410 (rs6000_output_function_epilogue): Likewise.
2411
2412 2010-05-30 Jan Hubicka <jh@suse.cz>
2413
2414 * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
2415 nodes.
2416
2417 2010-05-30 Richard Guenther <rguenther@suse.de>
2418
2419 * tree-cfg.c (verify_gimple_assign_single): Implement
2420 verification for COND_EXPR rhs.
2421
2422 2010-05-30 Jan Hubicka <jh@suse.cz>
2423
2424 * cgraph.h (cgraph_dump_file): Declare.
2425 * cgraphunit.c (cgraph_dump_file): Export.
2426 * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
2427
2428 2010-05-30 Jan Hubicka <jh@suse.cz>
2429
2430 * dwarf2out.c (reference_to_unused,
2431 premark_types_used_by_global_vars_helper): Avoid creation of new
2432 varpool nodes.
2433
2434 2010-05-30 Jan Hubicka <jh@suse.cz>
2435
2436 * cgraph.h (cgraph_node_cannot_return,
2437 cgraph_edge_cannot_lead_to_return): New functions.
2438 * cgraph.c (cgraph_node_cannot_return,
2439 cgraph_edge_cannot_lead_to_return): Use them.
2440 * ipa-pure-const.c (pure_const_names): New static var.
2441 (check_call): Handle calls not leading to return.
2442 (pure_const_read_summary): Dump info read.
2443 (propagate): Dump info about propagation process; ignore side effects
2444 of functions not leading to exit; fix handling of pure functions.
2445
2446 2010-05-30 Jan Hubicka <jh@suse.cz>
2447
2448 * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
2449 for tail call epilogues.
2450
2451 2010-05-30 Jan Hubicka <jh@suse.cz>
2452
2453 * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
2454 ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
2455 dump files.
2456
2457 2010-05-29 Jan Hubicka <jh@suse.cz>
2458
2459 * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
2460 node; remove references in node we no longer keep in cgrpah but need
2461 body of.
2462
2463 2010-05-29 Jan Hubicka <jh@suse.cz>
2464
2465 * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
2466
2467 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2468
2469 PR target/44165
2470 * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
2471
2472 2010-05-29 Jan Hubicka <jh@suse.cz>
2473
2474 * tree-vrp.c (debug_value_range, debug_all_value_ranges,
2475 debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
2476 * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
2477 debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
2478 debug_names_replaced_by, debug_update_ssa): Likewise.
2479 * sbitmap.c (debug_sbitmap): Likewise.
2480 * genrecog.c (debug_decision, debug_decision_list): Likewise.
2481 * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
2482 debug_tree_chain): Likewise.
2483 * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
2484 * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
2485 * optabs.c (debug_optab_libfuncs): Likewise.
2486 (verify_loop_closed_ssa): Likewise.
2487 * value-prof.c (verify_histograms): Likewise.
2488 * reload.c (debug_reload_to_stream, debug_reload): Likewise.
2489 * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
2490 * cfghooks.c (verify_flow_info): Likewise.
2491 * fold-const.c (debug_fold_checksum): Likewise.
2492 * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
2493 * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
2494 Likewise.
2495 * omega.c (debug_omega_problem): Likewise.
2496 * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
2497 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
2498 * dominance.c (verify_dominators, debug_dominance_info,
2499 debug_dominance_tree): Likewise.
2500 * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
2501 * df_regno_debug, df_ref_debug,
2502 debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
2503 debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
2504 * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
2505 * sel-sched.c (debug_state): Likewise.
2506 * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
2507 Likewise.
2508 * cfganal.c (print_edge_list, verify_edge_list): Likewise.
2509 * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
2510 * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
2511 * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
2512 Likewise.
2513 * c-pretty-print.c (debug_c_tree): Likewise.
2514 * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
2515 debug_av_set, debug_lv_set, debug_ilist, debug_blist,
2516 debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
2517 * ebitmap.c (debug_ebitmap): Likewise.
2518 * function.c (debug_find_var_in_block_tree): Likewise.
2519 * print-rtl.c (debug_rtx): Likewise.
2520 (debug_rtx_count): Likewise.
2521 (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
2522 * stor-layout.c (debug_rli): Likewise.
2523 * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
2524 * tree-data-ref.c (debug_data_references,
2525 debug_data_dependence_relations, debug_data_reference,
2526 debug_data_dependence_relation, debug_rdg_vertex,
2527 debug_rdg_component, debug_rdg): Likewise.
2528 * tree-affine.c (debug_aff): Likewise.
2529 * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
2530 Likewise.
2531 * except.c (debug_eh_tree, verify_eh_tree): Likewise.
2532 * emit-rtl.c (verify_rtl_sharing): Likewise.
2533 * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
2534 debug_value_expressions): Likewise.
2535 * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
2536 * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
2537 * print-tree.c (debug_tree, debug_vec_tree): Likewise.
2538 * cfglayout.c (verify_insn_chain): Likewise.
2539 * graphite-clast-to-gimple.c (debug_clast_name_indexes,
2540 debug_clast_stmt, debug_generated_program): Likewise.
2541 * ggc-page.c (debug_print_page_list): Likewise.
2542 * tree-ssa-ter.c (debug_ter): Likewise.
2543 * graphite-dependences.c (debug_pddr): Likewise.
2544 * sched-deps.c (debug_ds): Likewise.
2545 * tree-ssa.c (verify_ssa): Likewise.
2546 * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
2547 debug_scattering_functions, debug_iteration_domains, debug_pdr,
2548 debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
2549 debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
2550 * tree-inline.c (debug_find_tree): Likewise.
2551 * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
2552 debug_ppl_powerset_matrix): Likewise.
2553 * var-tracking.c (debug_dv): Likewise.
2554 * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
2555 * cfgloop.c (verify_loop_structure): Likewise.
2556 * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
2557 * c-common.c (verify_sequence_points): Likewise.
2558 * sched-rgn.c (debug_regions, debug_region, debug_candidate,
2559 debug_candidates, debug_rgn_dependencies): Likewise.
2560 * tree-ssa-structalias.c (debug_constraint, debug_constraints,
2561 * debug_constraint_graph, debug_solution_for_var,
2562 debug_sa_points_to_info): Likewise.
2563 * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
2564 Likewie.
2565 * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
2566 debug_loops, debug_loop, debug_loop_num): Likewise.
2567 * passes.c (debug_pass): Likewise.
2568 (dump_properties): Likewise; add cfglayout property.
2569 (debug_properties): Likewise.
2570 * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
2571 * varpool.c (debug_varpool): Likewise.
2572 * regcprop.c (debug_value_data): Likewise.
2573 * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
2574 debug_immediate_uses_for): Likewise.
2575
2576 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
2577
2578 PR bootstrap/44315
2579 * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
2580 Filter out insn-flags.h.
2581
2582 2010-05-29 Jan Hubicka <jh@suse.cz>
2583
2584 * cgraph.h (struct varpool_node_set_def,
2585 struct cgraph_node_set_def): Remove unused AUX pointer.
2586 (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
2587 VEC_empty macro.
2588
2589 2010-05-29 Jan Hubicka <jh@suse.cz>
2590
2591 PR middle-end/44324
2592 * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
2593
2594 2010-05-29 Richard Guenther <rguenther@suse.de>
2595
2596 * lto-streamer.c (cached_bp): New global variable.
2597 (bitpack_create): Return the cached bitpack, if available.
2598 (bitpack_delete): Clear and cache the bitpack, if appropriate.
2599 (bp_pack_value): Remove redundant asserts.
2600
2601 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
2602
2603 PR middle-end/44306
2604 * tree-if-conv.c (is_true_predicate): New.
2605 (is_predicated): Use is_true_predicate.
2606 (add_to_predicate_list): Same. Do not use unshare_expr.
2607 (add_to_dst_predicate_list): Same.
2608
2609 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
2610
2611 * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
2612 field on edges.
2613 (predicate_bbs): Same.
2614 (clean_predicate_lists): Same.
2615 (find_phi_replacement_condition): Do not AND the predicate from
2616 edge->aux.
2617
2618 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
2619
2620 PR bootstrap/44315
2621 * Makefile.in (build/gencondmd.o): Add a missing `\'.
2622
2623 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2624
2625 PR target/44261
2626 config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
2627 (negdf2): Adjust expander pattern and use negdf2_slow.
2628 (negsf2): Likewise.
2629
2630 2010-05-29 Nathan Froyd <froydnj@codesourcery.com>
2631
2632 * basic-block.h (struct control_flow_graph): Move last_label_uid field
2633 up.
2634 * df.h (struct df_base_ref): Move regno field up.
2635 * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
2636 * expr.h (struct separate_ops): Move location field up.
2637 * optabs.h (struct optab_d): Move libcall_basename field down.
2638 * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
2639 * config/i386/i386.h (struct machine_function): Convert call_abi field
2640 into a bitfield. Move cfa field to the end of the structure.
2641
2642 2010-05-29 Jan Hubicka <jh@suse.cz>
2643
2644 * varpool.c (varpool_get_node): Fix lookup.
2645
2646 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
2647
2648 * config/spu/spu-protos.h: Do not include rtl.h. Protect
2649 RTL specific prototypes with #ifdef RTX_CODE.
2650 * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
2651 * config/spu/t-spu-elf: Fix dependencies.
2652
2653 * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
2654
2655 2010-05-29 Mike Stump <mikestump@comcast.net>
2656
2657 PR bootstrap/44315
2658 * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
2659 TM_H when building to avoid dependency loops.
2660
2661 2010-05-29 Jan Hubicka <jh@suse.cz>
2662
2663 * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
2664 refs and body; not the whole node for masters of materialized
2665 clones.
2666
2667 2010-05-29 Mike Stump <mikestump@comcast.net>
2668
2669 * config/rs6000/rs6000-c.c: Remove c-tree.h include.
2670
2671 2010-05-29 Jan Hubicka <jh@suse.cz>
2672
2673 * cgraph.c (clone_function_name): Take SUFFIX argument; export.
2674 (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
2675 use of clone_function_name.
2676 * cgraph.h (cgraph_create_virtual_clone,
2677 cgraph_function_versioning): update prototypes.
2678 (clone_function_name): Declare.
2679 * ipa-cp.c (ipcp_insert_stage): Update call of
2680 cgraph_create_virtual_clone.
2681 * omp-low.c (create_omp_child_function_name): Use
2682 cgraph_create_virtual_clone.
2683 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
2684 (cgraph_function_versioning): Take SUFFIX argument; produce new name
2685 and make decl local.
2686
2687 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
2688
2689 * vec.h: Include statistics.h
2690 * Makefile.in: Introduce VEC_H. Replace all vec.h dependencies
2691 with VEC_H.
2692
2693 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
2694
2695 * c-lex.c: Do not include c-tree.h.
2696 * c-pretty-print.c: Likewise.
2697 * c-opts.c: Likewise.
2698 * c-gimplify.c: Likewise.
2699 * c-common.c: Likewise.
2700 * c-dump.c: Likewise. Include c-common.h.
2701
2702 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
2703
2704 * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
2705 before including diagnostic-core.h.
2706 (c_cpp_error): New prototype moved from c-tree.h.
2707 Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
2708 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
2709 (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
2710 (c_cpp_error): Prototype moved to c-common.h.
2711 * Makefile.in: Update dependency for C_COMMON_H.
2712
2713 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
2714
2715 * c-common.h: Add FIXME for awkward split of c_register_addr_space.
2716 * c-common.c (c_register_addr_space): Remove here.
2717 * c-decl.c (c_register_addr_space): Re-add here.
2718
2719 2010-05-28 Mike Stump <mikestump@comcast.net>
2720
2721 * config/darwin-c.c: Remove c-tree.h include.
2722
2723 2010-05-28 Joseph Myers <joseph@codesourcery.com>
2724
2725 * gcc.c: Include diagnostic.h.
2726 (error_count): Remove. All users changed to use errorcount.
2727 (programname): Remove. All users changed to use progname.
2728 (fancy_abort, internal_error, fatal_error, error, warning, inform,
2729 fnotice): Remove.
2730 (execute): Don't include "Internal error" and bug reporting
2731 information in argument of internal_error call.
2732 (process_command): Don't increment error_count after calling
2733 perror_with_name.
2734 (input_filename): Rename to gcc_input_filename. All users
2735 changed.
2736 (main): Call diagnostic_initialize. Register delete_temp_files
2737 with atexit. Use seen_error to test for errors.
2738 * gcc.h: Include diagnostic-core.h.
2739 (fatal_error, error, warning): Remove.
2740 * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
2741 (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
2742 (gcc.o): Update dependencies.
2743
2744 2010-05-28 Jeff Law <law@redhat.com>
2745
2746 * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
2747 functions.
2748 * ira.h (ira_bad_reload_regno): Declare
2749 * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
2750
2751 * ira-color.c (update_curr_costs): Free updated hard reg costs.
2752 (ira_reassign_conflict_allocnos): Remove bogus asserts.
2753 (allocno_reload_assign): Likewise.
2754
2755 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
2756
2757 * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
2758 build1_stat.
2759
2760 2010-05-28 Richard Guenther <rguenther@suse.de>
2761
2762 PR lto/44312
2763 * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
2764 Stream fixed-point constants mode.
2765 (unpack_ts_type_value_fields): Fix width of TYPE_MODE
2766 and TYPE_PRECISION.
2767 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
2768 Stream fixed-point constants mode.
2769 (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
2770 and TYPE_PRECISION.
2771
2772 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
2773
2774 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
2775 only place it was called from.
2776 (number_of_latch_executions): Do not return chrec_dont_know when the
2777 may_be_zero is a runtime condition: instead, return a COND_EXPR
2778 including the may_be_zero condition.
2779 * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
2780 of nb_iterations.
2781 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
2782 COND_EXPRs.
2783
2784 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
2785
2786 * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
2787 generate COND_EXPRs for degenerate_phi_result.
2788
2789 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
2790
2791 PR middle-end/44293
2792 * tree-if-conv.c (if_convertible_loop_p): Check the
2793 if-convertibility of phi nodes in non predicated BBs.
2794
2795 2010-05-28 Joseph Myers <joseph@codesourcery.com>
2796
2797 * gcc.c (error, warning, inform): Remove duplicate ": " in output.
2798
2799 2010-05-28 Joseph Myers <joseph@codesourcery.com>
2800
2801 PR driver/15303
2802 * gcc.c (inform, warning, inform): New functions.
2803 (fatal_ice): Rename to internal_error; change cmsgid parameter to
2804 gmsgid. All callers changed.
2805 (notice): Rename to fnotice; add parameter fp. All callers
2806 changed.
2807 (fatal_error): Rename to fatal_signal. All users changed.
2808 (fatal): Rename to fatal_error; change cmsgid parameter to
2809 gmsgid. All callers changed.
2810 (process_command): Use warning instead of error for warnings.
2811 (end_going_arg): Don't use _() around argument of error.
2812 (do_spec_1): Use inform for message from %n specs. Use warning
2813 instead of error for warnings.
2814 (main): Use inform for comparison messages. Use warning for
2815 message about unused linker input.
2816 (error): Increment error_count. Print "error: ".
2817 * gcc.h (fatal): Change to fatal_error.
2818 (warning): Declare.
2819 * config/darwin-driver.c (darwin_default_min_version): Use warning
2820 instead of fprintf for warnings.
2821 * cppspec.c (lang_specific_driver): Use fatal_error instead of
2822 fatal.
2823
2824 2010-05-28 Julian Brown <julian@codesourcery.com>
2825
2826 * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
2827 (*thumb2_addsi3_compare0_scratch): New.
2828 * config/arm/constraints.md (Pv): New.
2829 * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
2830 for ARM mode only.
2831 (*addsi3_compare0_scratch): Likewise.
2832
2833 2010-05-28 Jan Hubicka <jh@suse.cz>
2834
2835 * ipa-reference.c (add_static_var): Remove redundant all_module_statics
2836 check.
2837 (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
2838 only on local statics.
2839
2840 2010-05-28 Iain Sandoe <iains@gcc.gnu.org>
2841
2842 * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
2843
2844 2010-05-28 Maxim Kuvyrkov <maxim@codesourcery.com>
2845
2846 PR bootstrap/44314
2847 * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
2848 (OPTION_GLIBC): Define.
2849
2850 2010-05-28 Jakub Jelinek <jakub@redhat.com>
2851
2852 PR debug/41048
2853 * dwarf2out.c (double_int_type_size_in_bits): New function.
2854 (round_up_to_align): Change first argument and return value to
2855 double_int.
2856 (field_byte_offset): Work internally on double_ints.
2857
2858 PR target/43636
2859 * builtins.c (expand_movstr): Use a temporary pseudo instead
2860 of target even when target is not NULL and not const0_rtx, but
2861 fails movstr predicate.
2862 * config/m32c/blkmov.md (movstr): Add predicate to first operand.
2863
2864 2010-05-28 Joseph Myers <joseph@codesourcery.com>
2865
2866 * final.c (rest_of_clean_state): Use %m in errors instead of
2867 strerror (errno).
2868 * gengtype.c (read_input_list, close_output_files): Use xstrerror
2869 instead of strerror.
2870 * toplev.c (process_options): Use %m in errors instead of strerror
2871 (errno).
2872 * tree-dump.c (dump_begin): Use %m in errors instead of strerror
2873 (errno).
2874
2875 2010-05-28 Uros Bizjak <ubizjak@gmail.com>
2876
2877 * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
2878 (ix86_canonical_va_list_type): Make static. Add declaration.
2879 (ix86_enum_va_list): Make static. Reindent.
2880 * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
2881 (ix86_canonical_va_list_type): Ditto.
2882 (ix86_enum_va_list): Ditto.
2883
2884 2010-05-28 Richard Guenther <rguenther@suse.de>
2885
2886 * lto-wrapper.c (run_gcc): With -save-temps generate a
2887 user-visible ltrans filename. Fixup ltrans unit numbering.
2888
2889 2010-05-28 Kai Tietz <kai.tietz@onevision.com>
2890
2891 * c-common.c (c_common_nodes_and_builtins): Replace use
2892 of TARGET_ENUM_VA_LIST by target hook enum_va_list.
2893 * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
2894 to ix86_enum_va_list.
2895 * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
2896 * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
2897 (TARGET_ENUM_VA_LIST_P): Add hook description.
2898 * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
2899 * target.h (gcc_target): Add enum_va_list hook.
2900
2901 PR bootstrap/44299
2902 * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
2903 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
2904 * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
2905
2906 2010-05-28 Alan Modra <amodra@gmail.com>
2907
2908 PR target/44266
2909 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2910 emit_library_call machinery to set up __tls_get_addr calls.
2911
2912 2010-05-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2913
2914 * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
2915
2916 2010-05-28 Dodji Seketeli <dodji@redhat.com>
2917
2918 Revert fix for PR c++/44188
2919 * c-common.c (is_typedef_decl): Revert the moving of this
2920 definition ...
2921 * tree.c (is_typedef_decl): ... here.
2922 (typdef_variant_p): Revert the moving of this definition
2923 here from gcc/cp/tree.c.
2924 * c-common.h (is_typedef_decl): Revert the moving of this
2925 declaration ...
2926 * tree.h (is_typedef_decl): ... here.
2927 (typedef_variant_p): Revert the moving of this declaration here
2928 from gcc/cp/cp-tree.h
2929 * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
2930 (gen_tagged_type_die): Revert the splitting out of ...
2931 (gen_type_die_with_usage): ... this function. Revert the anonymous
2932 tagged type handling.
2933 (gen_typedef_die): Revert emitting DW_TAG_typedef for
2934 typedefs naming anonymous tagged types.
2935
2936 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
2937
2938 * config/rs6000/rs6000-modes.def (PSImode): Delete.
2939
2940 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
2941
2942 * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
2943 * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
2944 throughout.
2945 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
2946 "xer" to "ca".
2947 Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
2948 XER_REGS to CA_REGS throughout.
2949 * config/rs6000/rs6000.h: Same.
2950 (ADDITIONAL_REGISTER_NAMES): Add "xer".
2951 * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO. Document
2952 that mode_iterator "P" is the size for arithmetic carries as well.
2953 * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
2954
2955 2010-05-28 Jakub Jelinek <jakub@redhat.com>
2956
2957 PR bootstrap/44255
2958 * combine.c (struct rtx_subst_pair): Define unconditionally.
2959 (propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC,
2960 copy_rtx pair->to instead of cleanup_auto_inc_dec it.
2961 Call make_compound_operation on pair->to.
2962 (propagate_for_debug): Don't call make_compound_operation here.
2963 Always use simplify_replace_fn_rtx.
2964
2965 2010-05-27 Sterling Augustine <sterling@tensilica.com>
2966
2967 * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
2968 * config/xtensa/xtensa.c (override_options): Check
2969 TARGET_FORCE_NO_PIC and set flag_pic.
2970 * config/xtensa/xtensa.opt: Document -mforce-no-pic
2971
2972 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
2973
2974 PR bootstrap/44299
2975 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
2976 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
2977
2978 2010-05-27 Joseph Myers <joseph@codesourcery.com>
2979
2980 * diagnostic-core.h: New. Contents moved from diagnostic.h and
2981 toplev.h.
2982 * diagnostic.c: Don't include toplev.h.
2983 (progname): Define. Moved from toplev.c.
2984 (seen_error): New function.
2985 * diagnostic.h: Include diagnostic-core.h.
2986 (diagnostic_t, emit_diagnostic): Don't declare here.
2987 * toplev.c (progname): Move to toplev.c.
2988 (emit_debug_global_declarations, compile_file, finalize,
2989 do_compile, toplev_main): Use seen_error.
2990 * toplev.h: Include diagnostic-core.h.
2991 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
2992 internal_error, warning, warning_at, error, error_n, error_at,
2993 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
2994 verbatim, fnotice, progname): Move to diagnostic-core.h.
2995 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
2996 (expand_builtin_expect): Use seen_error.
2997 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
2998 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
2999 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
3000 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
3001 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
3002 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
3003 errorcount for errors.
3004 * c-opts.c (c_common_finish): Use seen_error.
3005 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
3006 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
3007 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
3008 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
3009 (get_coverage_counts): Use seen_error.
3010 * dwarf2out.c (dwarf2out_finish): Use seen_error.
3011 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
3012 gimplify_body): Use seen_error.
3013 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
3014 * ipa-pure-const.c (gate_pure_const): Use seen_error.
3015 * ipa-reference.c (gate_reference): Use seen_error.
3016 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
3017 * lambda-code.c: Include diagnostic-core.h instead of
3018 diagnostic.h.
3019 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
3020 * lto-compress.c: Include diagnostic-core.h instead of
3021 diagnostic.h.
3022 * lto-section-in.c: Include diagnostic-core.h instead of
3023 diagnostic.h.
3024 * lto-streamer-out.c: Include diagnostic-core.h instead of
3025 diagnostic.h.
3026 * lto-streamer.c: Include diagnostic-core.h instead of
3027 diagnostic.h.
3028 (gate_lto_out): Use seen_error.
3029 * matrix-reorg.c: Include diagnostic-core.h instead of
3030 diagnostic.h.
3031 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
3032 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
3033 (gate_expand_omp, lower_omp_1): Use seen_error.
3034 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
3035 (rest_of_decl_compilation, rest_of_type_compilation,
3036 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
3037 * tree-cfg.c (label_to_block_fn): Use seen_error.
3038 * tree-inline.c (optimize_inline_calls): Use seen_error.
3039 * tree-mudflap.c (mudflap_finish_file): Use
3040 seen_error.
3041 * tree-optimize.c (gate_all_optimizations,
3042 gate_all_early_local_passes, gate_all_early_optimizations): Use
3043 seen_error.
3044 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
3045 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
3046 (varpool_remove_unreferenced_decls,
3047 varpool_assemble_pending_decls): Use seen_error.
3048 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
3049 (TOPLEV_H, DIAGNOSTIC_H): Update.
3050 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
3051 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
3052 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
3053 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
3054 coverage.o, lambda-code.o): Update dependencies.
3055
3056 2010-05-25 Dodji Seketeli <dodji@redhat.com>
3057
3058 PR c++/44188
3059 * c-common.c (is_typedef_decl): Move this definition ...
3060 * tree.c (is_typedef_decl): ... here.
3061 (typdef_variant_p): Move definition here from gcc/cp/tree.c.
3062 * c-common.h (is_typedef_decl): Move this declaration ...
3063 * tree.h (is_typedef_decl): ... here.
3064 (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
3065 * dwarf2out.c (is_naming_typedef_decl): New function.
3066 (gen_tagged_type_die): Split out of ...
3067 (gen_type_die_with_usage): ... this function. When an anonymous
3068 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
3069 is emitted for the typedef.
3070 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
3071 anonymous tagged types.
3072
3073 2010-05-27 Jason Merrill <jason@redhat.com>
3074
3075 * print-tree.c (debug_vec_tree): New fn.
3076 (print_vec_tree): New fn.
3077 * tree.h: Declare them.
3078 * gdbinit.in (pvt): New command.
3079
3080 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
3081
3082 * gdbinit.in (pdd): New command.
3083
3084 2010-05-27 Jan Hubicka <jh@suse.cz>
3085
3086 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
3087 (update_caller_keys): Return early if there are no callers;
3088 only update fibheap when decresing the key.
3089 (update_callee_keys): Avoid recursion.
3090 (decide_inlining_of_small_functions): When badness does not match;
3091 re-insert into fibheap.
3092
3093 2010-05-27 Steven Bosscher <steven@gcc.gnu.org>
3094
3095 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
3096 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
3097 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
3098 (ALL_HOST_OBJS): Now a union of the above two.
3099 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
3100 all files in ALL_HOST_FRONTEND_OBJS.
3101 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
3102
3103 * c-common.c: Pretend to be a backend file by undefining
3104 IN_GCC_FRONTEND (still need rtl.h here).
3105
3106 2010-05-27 Jan Hubicka <jh@suse.cz>
3107
3108 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
3109 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
3110
3111 2010-05-27 Jan Hubicka <jh@suse.cz>
3112
3113 * sched-ebb.c: Rename struct deps to struct deps_desc.
3114 * ddg.c: Likewise.
3115 * sel-sched-ir.c: Likewise.
3116 * sched-deps.c: Likewise.
3117 * sched-int.h: Likewise.
3118 * sched-rgn.c: Likewise.
3119
3120 2010-05-27 Jon Beniston <jon@beniston.com>
3121
3122 PR 43726
3123 * config/lm32/lm32.h: Remove definition of
3124 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
3125
3126 2010-05-27 Eric Botcazou <ebotcazou@adacore.com>
3127
3128 PR lto/44230
3129 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
3130
3131 2010-05-27 Richard Guenther <rguenther@suse.de>
3132
3133 PR tree-optimization/44284
3134 * tree-vect-stmts.c (vectorizable_assignment): Handle
3135 sign-changing conversions as simple copy.
3136
3137 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
3138
3139 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
3140 Bionic C library.
3141 (__gthread_active_p): Check for pthread_create if compiling against
3142 Bionic C library.
3143
3144 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
3145
3146 Support compilation for Android platform. Reimplement -mandroid.
3147
3148 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
3149 (*android*): Set ANDROID_DEFAULT.
3150 (arm*-*-linux*): Include linux-android.h.
3151 (arm*-*-eabi*): Don't include previous -mandroid implementation.
3152 * config/arm/eabi.h: Remove, move Android-specific parts ...
3153 * config/linux-android.h: ... here. New file.
3154 * config/arm/eabi.opt: Rename to ...
3155 * config/linux-android.opt: ... this.
3156 (mandroid): Allow -mno-android option. Initialize based on
3157 ANDROID_DEFAULT.
3158 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
3159 Move logic to corresponding LINUX_TARGET_* macros.
3160 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
3161 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
3162 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
3163 Android definitions.
3164 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
3165 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
3166 Document.
3167
3168 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
3169
3170 Add support for Bionic C library
3171
3172 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
3173 macro.
3174 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
3175 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
3176
3177 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
3178 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
3179 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
3180 to support multiple C libraries. Handle Bionic.
3181 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
3182 (BIONIC_DYNAMIC_LINKER64): Define.
3183 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
3184 Update.
3185 (TARGET_HAS_SINCOS): Enable for Bionic.
3186
3187 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
3188 the last option specified on command line take effect.
3189 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
3190 (mbionic): New.
3191 (mglibc, muclibc): Update.
3192
3193 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
3194 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
3195 DEFAULT_LIBC.
3196
3197 * doc/invoke.texi (-mglibc, -muclibc): Update.
3198 (-mbionic): Document.
3199
3200 2010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3201
3202 * c-common.h (c_register_addr_space): Add prototype.
3203 (ADDR_SPACE_KEYWORD): Remove.
3204 * c-common.c (c_register_addr_space): New function.
3205 (c_addr_space_name): Reimplement.
3206 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
3207
3208 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
3209 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
3210
3211 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
3212 Remove TARGET_ADDR_SPACE_KEYWORDS.
3213
3214 2010-05-27 Joseph Myers <joseph@codesourcery.com>
3215
3216 * input.c: New file.
3217 * input.h (main_input_filename): Move declaration to toplev.h.
3218 * toplev.c (input_location, line_table): Move to input.c
3219 * toplev.h (main_input_filename): Move declaration from input.h.
3220 * tree.c (expand_location): Move to input.c.
3221 * Makefile.in (OBJS-common): Add input.o.
3222 (input.o): Add dependencies.
3223
3224 2010-05-27 Richard Guenther <rguenther@suse.de>
3225
3226 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
3227 for non-existant files.
3228 (fork_execute): Mark args_name file as deleted.
3229
3230 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
3231
3232 PR bootstrp/44287
3233 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
3234 (narrow_signed_type): Likewise.
3235
3236 2010-05-26 Jan Hubicka <jh@suse.cz>
3237
3238 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
3239 edge only when checking is enabled; check using former_clone_of;
3240 check inline clones too.
3241 (cgraph_materialize_clone): Record former_clone_of pointer.
3242 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
3243 combining redirections; dump args_to_skip bitmap
3244 (cgraph_materialize_all_clones): Do no redirection here.
3245 * ipa-inline.c (inline_transform): Do redirection here.
3246 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
3247 cheking only).
3248
3249 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
3250
3251 * config/avr/avr-c.c: Do not include regs.h.
3252 Include cpplib.h for cpp_define and tree.h for c-common.h.
3253 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
3254 * config/avr/t-avr: Fix dependencies for avr-c.o.
3255
3256 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
3257
3258 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
3259 string instead of SYMBOL_REF rtx.
3260 * rtl.h (set_stack_check_libfunc): Move prototype from here...
3261 * libfuncs.h: ...to here. Adjust for explow.c change.
3262
3263 2010-05-26 Joseph Myers <joseph@codesourcery.com>
3264
3265 * pretty-print.c: Don't include ggc.h.
3266 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
3267 (identifier_to_locale): Use them for allocation.
3268 * pretty-print.h (identifier_to_locale_alloc,
3269 identifier_to_locale_free): Declare.
3270 * toplev.c (alloc_for_identifier_to_locale): New.
3271 (general_init): Set identifier_to_locale_alloc and
3272 identifier_to_locale_free.
3273 * Makefile.in (pretty-print.o): Update dependencies.
3274
3275 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
3276
3277 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
3278 pointer types if they have different alignment or mode.
3279
3280 2010-05-26 Anatoly Sokolov <aesok@post.ru>
3281
3282 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
3283 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
3284 * config/sparc/sparc-protos.h (function_value): Remove declaration.
3285 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
3286 sparc_function_value_regno_p): New functions.
3287 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3288 TARGET_FUNCTION_VALUE_REGNO_P): Define.
3289 (function_value): Rename to...
3290 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
3291 argument to 'outgoing'.
3292 (function_arg_record_value, function_arg_union_value,
3293 function_arg_vector_value): Update comment.
3294
3295 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
3296
3297 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
3298 (fde_needed_for_eh_p): New predicate.
3299 (output_call_frame_info): Use it throughout to decide whether FDEs
3300 are needed for EH purpose.
3301 (dwarf2out_begin_prologue): Reorder assignments.
3302
3303 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
3304
3305 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
3306 special case loop->header.
3307 (is_predicated): New.
3308 (if_convertible_loop_p): Call it.
3309
3310 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
3311
3312 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
3313 iterator in parameter. Do not generate code during the analysis.
3314 (tree_if_convert_cond_stmt): Removed.
3315 (tree_if_convert_stmt): Removed.
3316 (predicate_bbs): New.
3317 (if_convertible_loop_p): Call predicate_bbs.
3318 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
3319 now contains all the analysis part.
3320
3321 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
3322
3323 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
3324 statements in the analysis part.
3325 (tree_if_convert_stmt): Update comment.
3326 (remove_conditions_and_labels): New.
3327 (combine_blocks): Call remove_conditions_and_labels.
3328 (tree_if_conversion): Update comment.
3329
3330 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
3331
3332 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
3333 than 2 predecessors or more than 2 successors.
3334
3335 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
3336
3337 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
3338 of loops in which the data dependence analysis fails.
3339
3340 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
3341
3342 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
3343 CDI_POST_DOMINATORS.
3344 (tree_if_conversion): Same.
3345
3346 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
3347
3348 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
3349
3350 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
3351
3352 * tree-if-conv.c: Update copyright years. Fix comments.
3353 Fix indentation.
3354
3355 2010-05-26 Kai Tietz <kai.tietz@onevision.com>
3356
3357 * builtin-types.def (BT_INT128): New primitive type.
3358 (BT_UINT128): Likewise.
3359 * c-common.c (c_common_r): Add __int128 keyword.
3360 (c_common_type_for_size): Handle __int128.
3361 (c_common_type_for_mode): Likewise.
3362 (c_common_signed_or_unsigned_type): Likewise.
3363 (c_common_nodes_and_builtins): Add builtin type
3364 if target supports 128-bit integer scalar.
3365 * c-common.h (enum rid): Add RID_INT128.
3366 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
3367 if target supports 128-bit integer scalar.
3368 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
3369 (finish_declspecs): Likewise.
3370 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
3371 (c_token_starts_declspecs): Likewise.
3372 (c_parser_declspecs): Likewise.
3373 (c_parser_attributes): Likewise.
3374 (c_parser_objc_selector): Likewise.
3375 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
3376 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
3377 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
3378 * tree.c (make_or_reuse_type): Likewise.
3379 (make_unsigned_type): Likewise.
3380 (build_common_tree_nodes_2): Likewise.
3381 * tree.h (enum integer_type_kind): Add itk_int128 and
3382 itk_unsigned_int128.
3383 (int128_integer_type_node): New define.
3384 (int128_unsigned_type_node): New define.
3385 * doc/extend.texi: Add documentation about __int128 type.
3386
3387 2010-05-26 Richard Guenther <rguenther@suse.de>
3388
3389 * tree-ssa-sccvn.c (copy_nary): Adjust.
3390 (copy_phis): Rename to ...
3391 (copy_phi): ... this. Adjust.
3392 (copy_references): Rename to ...
3393 (copy_reference): ... this. Adjust.
3394 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
3395 result into the valid table.
3396
3397 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
3398
3399 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
3400 insn-config.h, insn-codes.h, recog.h, and optabs.h.
3401
3402 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3403
3404 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
3405
3406 2010-05-26 Richard Guenther <rguenther@suse.de>
3407
3408 * opts.c (common_handle_option): Handle OPT_Ofast.
3409
3410 2010-05-26 Joseph Myers <joseph@codesourcery.com>
3411
3412 * diagnostic.c: Don't include opts.h.
3413 (permissive_error_option): Define.
3414 (diagnostic_initialize): Take n_opts parameter. Allocate memory
3415 for classify_diagnostic. Don't use memset for
3416 classify_diagnostic. Initialize new and recently added fields.
3417 (diagnostic_classify_diagnostic): Use context->n_opts instead of
3418 N_OPTS.
3419 (diagnostic_report_diagnostic): Pass context parameter to
3420 diagnostic_report_warnings_p. Use option_enabled and option_name
3421 hooks from context.
3422 (emit_diagnostic): Use permissive_error_option.
3423 (permerror): Likewise.
3424 * diagnostic.h: Don't include options.h.
3425 (struct diagnostic_context): Add n_opts, opt_permissive,
3426 inhibit_warnings, warn_system_headers, option_enabled and
3427 option_name fields. Change classify_diagnostic to a pointer.
3428 * opts-diagnostic.h: New file.
3429 * opts.c: Include opts-diagnostic.h.
3430 (common_handle_option): Set global_dc fields for -Wfatal-errors,
3431 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
3432 (option_name): New function.
3433 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
3434 (c_common_handle_option): Set global_dc->permissive for
3435 -fpermissive.
3436 * c-common.c (c_cpp_error): Save and restore
3437 global_dc->warn_system_headers, not variable warn_system_headers.
3438 * toplev.c: Include opts-diagnostic.h.
3439 (general_init): Update call to diagnostic_initialize. Set
3440 global_dc->show_column, global_dc->option_enabled and
3441 global_dc->option_name.
3442 (process_options): Don't set global_dc fields here.
3443 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
3444 (diagnostic.o, opts.o, toplev.o): Update dependencies.
3445
3446 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
3447
3448 * config/picochip/picochip.md (movsi): Split a movsi from a
3449 const after reload.
3450
3451 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3452
3453 * ggc-zone.c: Update copyright year.
3454 (poison_region): Mark memory for Valgrind as undefined before
3455 memset () call and inaccessible afterwards.
3456 (ggc_pch_total_size): Change type of i to int.
3457
3458 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3459
3460 * ggc-common.c (ggc_free_overhead): Allow empty slot.
3461
3462 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3463
3464 * ggc-common.c: Update copyright year.
3465 (ggc_rlimit_bound): Remove prototype. Compile only if
3466 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
3467 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
3468 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
3469 (ggc_min_heapsize_heuristic): Likewise.
3470
3471 2010-05-26 Richard Guenther <rguenther@suse.de>
3472
3473 PR rtl-optimization/44164
3474 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
3475 no-common access-path disambiguation.
3476 (indirect_ref_may_alias_decl_p): Adjust.
3477 (indirect_refs_may_alias_p): Likewise.
3478 (refs_may_alias_p_1): Likewise.
3479
3480 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
3481
3482 * c-typeck.c: Do not include expr.h.
3483
3484 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
3485
3486 * rtl.h (decl_default_tls_model): Move prototype from here...
3487 * output.h: ...to here.
3488 * c-decl.c: Do not include rtl.h.
3489 * c-pragma.c: Likewise.
3490 * c-parser.c: Likewise.
3491 * c-gimplify.c: Likewise. And also not hard-reg-set.
3492 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
3493 FIXME note for it. Add a FIXME note for expr.h.
3494 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
3495 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
3496 defined.
3497
3498 2010-05-26 Jakub Jelinek <jakub@redhat.com>
3499
3500 PR target/44199
3501 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
3502 or total_size is larger than red zone size for non-V4 ABI, emit a
3503 stack_tie resp. frame_tie insn before stack pointer restore.
3504 * config/rs6000/rs6000.md (frame_tie): New insn.
3505
3506 2010-05-25 Eric Botcazou <ebotcazou@adacore.com>
3507
3508 * function.h (struct function): Add can_throw_non_call_exceptions bit.
3509 * lto-streamer-in.c (input_function): Stream it in.
3510 * lto-streamer-out.c (output_function): Stream it out.
3511 * function.c (allocate_struct_function): Set it.
3512 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
3513 for flag_non_call_exceptions.
3514 * cfgbuild.c (control_flow_insn_p): Likewise.
3515 (make_edges): Likewise.
3516 * cfgexpand.c (expand_stack_alignment): Likewise.
3517 * combine.c (distribute_notes): Likewise.
3518 * cse.c (cse_extended_basic_block): Likewise.
3519 * except.c (insn_could_throw_p): Likewise.
3520 * gcse.c (simple_mem): Likewise.
3521 * ipa-pure-const.c (check_call): Likewise.
3522 (check_stmt ): Likewise.
3523 * lower-subreg.c (lower-subreg.c): Likewise.
3524 * optabs.c (emit_libcall_block): Likewise.
3525 (prepare_cmp_insn): Likewise.
3526 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
3527 * postreload.c (rest_of_handle_postreload): Likewise.
3528 * reload1.c (reload_as_needed): Likewise.
3529 (emit_input_reload_insns): Likewise.
3530 (emit_output_reload_insns): Likewise.
3531 (fixup_abnormal_edges): Likewise.
3532 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
3533 * store-motion.c (find_moveable_store): Likewise.
3534 * tree-eh.c (stmt_could_throw_p): Likewise.
3535 (tree_could_throw_p): Likewise.
3536 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3537 * config/arm/arm.c (arm_expand_prologue): Likewise.
3538 (thumb1_expand_prologue): Likewise.
3539 * config/rx/rx.md (cbranchsf4): Likewise.
3540 (cmpsf): Likewise.
3541 * config/s390/s390.c (s390_emit_prologue): Likewise.
3542 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
3543 (inline_forbidden_into_p): New predicate.
3544 (expand_call_inline): Use it to forbid inlining.
3545 (tree_can_inline_p): Likewise.
3546
3547 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
3548
3549 * config/i386/i386-c.c: Do not include rtl.h.
3550 * config/i386/t-i386: Update dependencies.
3551
3552 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
3553
3554 * attribs.c: Do not include rtl.h.
3555 * Makefile.in: Update dependencies.
3556
3557 2010-05-25 Anatoly Sokolov <aesok@post.ru>
3558
3559 * double-int.h (double_int_and): New.
3560 * combine.c (try_combine): Clean up, use double_int_* and
3561 immed_double_int_const functions.
3562
3563 2010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3564
3565 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
3566 stderr to /dev/null instead of grep -q.
3567 * configure: Regenerate.
3568
3569 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
3570
3571 * Makefile.in (EXCEPT_H): Fix typo.
3572
3573 2010-05-25 Vladimir Makarov <vmakarov@redhat.com>
3574
3575 * ira-build.c (update_conflict_hard_reg_costs): New.
3576 (ira_build): Call update_conflict_hard_reg_costs.
3577
3578 2010-05-25 Jakub Jelinek <jakub@redhat.com>
3579
3580 PR debug/41371
3581 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
3582 ENABLE_CHECKING.
3583 (intersect_loc_chains): Walk the s2var's loc_chain together
3584 with s1node chain as long as the locations are equal, don't
3585 call find_loc_in_1pdv in that case.
3586
3587 PR debug/42801
3588 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
3589 (copy_bind_expr): ... instead of here.
3590 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
3591 if the block hasn't been remapped.
3592 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
3593 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
3594
3595 2010-05-25 Richard Guenther <rguenther@suse.de>
3596
3597 PR middle-end/44069
3598 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
3599 out-of-bounds array accesses.
3600
3601 2010-05-25 Richard Guenther <rguenther@suse.de>
3602
3603 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
3604 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
3605 (run_gcc): Re-organize to make cleanup easier.
3606
3607 2010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3608
3609 * config/s390/s390.c (optimization_options): Fix and move the
3610 flag_prefetch_loop_arrays override ...
3611 (override_options): ... here.
3612
3613 2010-05-25 Joseph Myers <joseph@codesourcery.com>
3614
3615 * diagnostic.c: Don't include plugin.h.
3616 (diagnostic_report_diagnostic): Don't handle plugins specially
3617 here. Pass context to internal_error callback.
3618 * diagnostic.h (struct diagnostic_context): Add context parameter
3619 to internal_error callback.
3620 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
3621 * plugin.h (struct diagnostic_context): Declare.
3622 (warn_if_plugins, plugins_internal_error_function): Declare.
3623 * toplev.c (general_init): Set global_dc->internal_error.
3624 * Makefile.in (diagnostic.o): Update dependencies.
3625
3626 2010-05-25 Iain Sandoe <iains@gcc.gnu.org>
3627
3628 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
3629 * config/rs6000/t-darwin64: New.
3630 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
3631 build crt2.
3632
3633 2010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
3634
3635 PR 44203
3636 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
3637 match the original (and intended) behaviour before r159557. This
3638 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
3639 in two ways.
3640
3641 2010-05-25 Richard Guenther <rguenther@suse.de>
3642
3643 * doc/invoke.texi: Document -Ofast.
3644 * target.h (struct gcc_target): Add handle_ofast.
3645 * target-def.h (TARGET_HANDLE_OFAST): Add.
3646 (TARGET_INITIALIZER): Adjust.
3647 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
3648 * common.opt (Ofast): Add.
3649
3650 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
3651
3652 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
3653 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
3654
3655 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
3656
3657 PR target/43610
3658 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
3659 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
3660 false_rtx. Use false_rtx to compute the correct *ptest for reversed
3661 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
3662
3663 2010-05-25 Jakub Jelinek <jakub@redhat.com>
3664
3665 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
3666 DW_OP_minus with negated offset instead of DW_OP_plus.
3667 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
3668
3669 2010-05-25 Wei Guozhi <carrot@google.com>
3670
3671 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
3672 tst instruction and a new alternative.
3673 * config/arm/constraints.md (Pu): New constraint.
3674
3675 2010-05-24 Sebastian Pop <sebastian.pop@amd.com>
3676
3677 * function.c (assign_stack_local_1): Initialize variable
3678 to avoid warning when bootstrapping at -O3.
3679
3680 2010-05-24 Steven Bosscher <steven@gcc.gnu.org>
3681
3682 * configure.ac (all_lang_makefiles): Remove everything related to it.
3683 * configure: Regenerate.
3684 * Makefile.in: Fix reference to ada Make-lang.in.
3685 Remove support for LANG_MAKEFILES.
3686
3687 2010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
3688 Sandra Loosemore <sandra@codesourcery.com>
3689
3690 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
3691 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
3692 description. Add arm_neon_fp16_ok.
3693 (Add Options): Add arm_neon and arm_neon_fp16.
3694
3695 2010-05-24 Joseph Myers <joseph@codesourcery.com>
3696
3697 * diagnostic.c: Don't include flags.h.
3698 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
3699 context parameters. Check flags in the context passed as a parameter.
3700 (diagnostic_build_prefix): Add context parameter. Check
3701 show_column flag in context.
3702 (diagnostic_action_after_output): Check fatal_errors flag in context.
3703 (diagnostic_report_current_module): Check show_column flag in context.
3704 (default_diagnostic_starter): Update call to
3705 diagnostic_build_prefix.
3706 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
3707 (emit_diagnostic): Pass context to permissive_error_kind.
3708 (permerror): Pass context to permissive_error_kind.
3709 * diagnostic.h (struct diagnostic_context): Add show_column,
3710 pedantic_errors, permissive and fatal_errors fields.
3711 (diagnostic_build_prefix): Update prototype.
3712 * langhooks.c
3713 * toplev.c (process_options): Set flags in global_dc from
3714 flag_show_column, flag_pedantic_errors, flag_permissive,
3715 flag_fatal_errors.
3716 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
3717 to diagnostic_build_prefix.
3718 * Makefile.in (diagnostic.o): Update dependencies.
3719
3720 2010-05-24 H.J. Lu <hongjiu.lu@intel.com>
3721
3722 * config/i386/ia32intrin.h (__crc32q): Define only if
3723 __SSE4_2__ is defined.
3724
3725 2010-05-24 Iain Sandoe <iains@gcc.gnu.org>
3726
3727 PR target/44132
3728 PR middle-end/43602
3729 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
3730 DECL_VISIBILITY_SPECIFIED.
3731 (emutls_decl): Set DECL_PRESERVE_P and copy
3732 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
3733 (emutls_finalize_control_var): New callback.
3734 (emutls_finish): Finalize emutls control variables.
3735 * toplev.c (compile_file): Move the call to emutls_finish ()
3736 before varpool_assemble_pending_decls ().
3737
3738 2010-05-24 Daniel Gutson <dgutson@codesourcery.com>
3739
3740 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
3741 added to the preprocessor condition.
3742
3743 2010-05-24 Paul Brook <paul@codesourcery.com>
3744
3745 * gengtype-lex.l: Add HARD_REG_SET.
3746 * expr.c (expand_expr_real_1): Record writes to hard registers.
3747 * function.c (rtl_data): Add asm_clobbers.
3748 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
3749 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
3750 Use crtl->asm_clobbers.
3751
3752 2010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3753
3754 * doc/makefile.texi (Makefile): Mention stages 'profile'
3755 and 'feedback' for profiledbootstrap.
3756
3757 2010-05-23 H.J. Lu <hongjiu.lu@intel.com>
3758
3759 PR target/44245
3760 * config/i386/i386.c (def_builtin): Properly check
3761 OPTION_MASK_ISA_64BIT.
3762
3763 2010-05-23 Joseph Myers <joseph@codesourcery.com>
3764
3765 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
3766 typedefs with different but compatible types. Allow duplicate
3767 typedefs with the same type except for pedantic non-C1X, but give
3768 warning for variably modified types.
3769 * c-typeck.c (tagged_types_tu_compatible_p,
3770 function_types_compatible_p, type_lists_compatible_p,
3771 comptypes_internal): Add parameter different_types_p; set
3772 *different_types_p for different but compatible types. All
3773 callers changed.
3774 (comptypes_check_different_types): New.
3775 * c-tree.h (comptypes_check_different_types): Declare.
3776
3777 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
3778
3779 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
3780 * jump.c: Include basic-block.h.
3781 * profile.c: Likewise.
3782 * tree-profile.c: Likewise.
3783 * coverage.c: Likewise.
3784 * basic-block.h (optimize_function_for_size_p): Move to function.h.
3785 (optimize_function_for_speed_p): Likewise.
3786 * function.h (optimize_function_for_size_p,
3787 optimize_function_for_speed_p): Moved here from basic-block.h.
3788 * Makefile.in: Update dependencies.
3789
3790 2010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3791
3792 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
3793 before calling make; allow override through $MAKE.
3794 * doc/invoke.texi (Optimize Options): Document override.
3795
3796 2010-05-23 Anatoly Sokolov <aesok@post.ru>
3797
3798 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
3799 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3800 (rs6000_mode_dependent_address_ptr): Make static.
3801 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3802 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
3803 Remove.
3804
3805 2010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
3806
3807 PR target/43869
3808 * config/i386/i386.c: Make sure that the correct regparm is passed.
3809
3810 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
3811
3812 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
3813 * sbitmap.c: ...to here to internalize sbitmap element access.
3814 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
3815 Explain why basic-block.h is included.
3816 * function.h: Include tm.h for CUMULATIVE_ARGS.
3817 * Makefile.in: Update dependencies.
3818
3819 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
3820
3821 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
3822 New core types.
3823 * sbitmap.h (struct sbitmap_def): Do not typedef here.
3824 * sbitmap.c: Include sbitmap.h.
3825 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
3826 hard-reg-set.h. Split everything related to regsets out from here...
3827 * regset.h: ...to here. New file.
3828 * df.h: Include regset.h and sbitmap.h.
3829 * tree-flow.h: Likewise.
3830 * cfgloop.h: Likewise.
3831 * except.h: Do not include sbitmap.h. Include hashtab.h.
3832 * cgraph.h: Include vec.h and function.h.
3833 * reload.h (struct insn_chain): Change types of live_throughout
3834 and dead_or_set from regset_head to bitmap_head.
3835 (compute_use_by_pseudos): Be defined also if regset.h is not included.
3836 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
3837 spilled_regs from regset_head to bitmap_head to avoid dependency
3838 in regset.h.
3839 * sel-sched-ir.h: Include regset.h.
3840 * reload.c: Include df.h before reload.h.
3841 * caller-save.c: Likewise.
3842 * reload1.c: Likewise.
3843 * ira.c: Likewise.
3844 (mark_elimination): Update type of r to bitmap, consistent with
3845 DF_LR_IN.
3846 * dominance.c: Include bitmap.h.
3847 * modulo-sched.c: Include df.h.
3848 * cfganal.c: Include bitmap.h and sbitmap.h.
3849 * cfgbuild.c: Include sbitmap.h.
3850 * lcm.c: Include sbitmap.h.
3851 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
3852 * domwalk.c: Include sbitmap.h, exclude ggc.h.
3853 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
3854 * cselib.c: Include bitmap.h.
3855 * tree-optimize.c: Include regset.h.
3856 * stmt.c: Include bitmap.h.
3857 * Makefile.in: Update dependencies.
3858
3859 2010-05-22 Jan Hubicka <jh@suse.cz>
3860
3861 * cgraph.h (struct varpool_node): Add same_comdat_group.
3862 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
3863 pointer.
3864 (output_varpool): Update call of lto_output_varpool_node.
3865 (input_varpool): Read same_comdat_group pointer.
3866 (input_varpool_1): Fixup same_comdat_group pointer.
3867 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
3868 group is needed, all are.
3869 * varpool.c (varpool_remove_node): Remove node from same comdat group
3870 linklist too.
3871 (varpool_analyze_pending_decls): Walk same comdat groups.
3872
3873 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
3874
3875 * rtl.h (union rtunion_def): Remove rt_bit member.
3876 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
3877 * print-rtl (print_rtx): Do not print the member.
3878 * gengtype.c (adjust_field_rtx_def): Do not handle it.
3879 * gengenrtl.c (type_from_format): Likewise.
3880 (accessor_from_format): Likewise.
3881
3882 2010-05-22 Joseph Myers <joseph@codesourcery.com>
3883
3884 * dbgcnt.c: Include toplev.h instead of errors.h.
3885 * ira-emit.c: Don't include errors.h.
3886 * ira.c: Include toplev.h instead of errors.h.
3887 * lto-compress.c: Include toplev.h instead of errors.h.
3888 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
3889 ira.o, dbgcnt.o): Update dependencies.
3890
3891 2010-05-22 Richard Guenther <rguenther@suse.de>
3892
3893 * gimple.c (gimple_types_compatible_p): Check type qualifications
3894 before merging pointer to complete and pointer to incomplete type.
3895 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
3896 we use our own resolution algorithm. The gold linker plugin
3897 doesn't do the job we want it to do here.
3898
3899 2010-05-22 Anatoly Sokolov <aesok@post.ru>
3900
3901 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3902 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3903 (sparc_mode_dependent_address_p): New function.
3904
3905 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
3906
3907 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
3908
3909 * timevar.c: Do not include any core headers.
3910 (timevar_print): De-i18n-ize.
3911 (print_time): Likewise.
3912 * timevar.h (timevar_push, timevar_pop): Make inline functions.
3913
3914 2010-05-21 Joseph Myers <joseph@codesourcery.com>
3915
3916 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
3917 langhooks-def.h.
3918 (diagnostic_initialize): Initialize x_data not last_function.
3919 (diagnostic_report_current_function): Move to tree-diagnostic.c.
3920 (default_diagnostic_starter): Call
3921 diagnostic_report_current_module not
3922 diagnostic_report_current_function.
3923 (diagnostic_report_diagnostic): Initialize x_data not
3924 abstract_origin.
3925 (verbatim): Likewise.
3926 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
3927 x_data.
3928 (struct diagnostic_context): Change last_function to x_data.
3929 (diagnostic_auxiliary_data): Replace with
3930 diagnostic_context_auxiliary_data and
3931 diagnostic_info_auxiliary_data.
3932 (diagnostic_last_function_changed, diagnostic_set_last_function,
3933 diagnostic_report_current_function): Move to tree-diagnostic.h.
3934 (print_declaration, dump_generic_node, print_generic_stmt,
3935 print_generic_stmt_indented, print_generic_expr,
3936 print_generic_decl, debug_c_tree, dump_omp_clauses,
3937 print_call_name, debug_generic_expr, debug_generic_stmt,
3938 debug_tree_chain, default_tree_printer): Move to
3939 tree-pretty-print.h.
3940 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
3941 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
3942 gimple-pretty-print.h.
3943 * pretty-print.c: Don't include tree.h
3944 (pp_base_format): Don't handle %K here.
3945 (pp_base_tree_identifier): Move to tree-pretty-print.c.
3946 * pretty-print.h (text_info): Change abstract_origin to x_data.
3947 (pp_tree_identifier, pp_unsupported_tree,
3948 pp_base_tree_identifier): Move to tree-pretty-print.h.
3949 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
3950 tree-pretty-print.h: New files.
3951 * tree-pretty-print.c: Include tree-pretty-print.h.
3952 (percent_K_format): New. Moved from pretty-print.c.
3953 (pp_base_tree_identifier): Move from pretty-print.c.
3954 * c-objc-common.c: Include tree-pretty-print.h.
3955 (c_tree_printer): Handle %K here.
3956 * langhooks.c: Include tree-diagnostic.h.
3957 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
3958 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
3959 (default_tree_printer): Handle %K using percent_K_format.
3960 (general_init): Use default_tree_diagnostic_starter.
3961 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
3962 (free_lang_data): Use default_tree_diagnostic_starter.
3963 * c-pretty-print.c: Include tree-pretty-print.h.
3964 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
3965 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
3966 * dwarf2out.c: Include tree-pretty-print.h.
3967 * except.c: Include tree-pretty-print.h.
3968 * gimple-pretty-print.c: Include tree-pretty-print.h and
3969 gimple-pretty-print.h.
3970 * gimplify.c: Include tree-pretty-print.h.
3971 * graphite-poly.c: Include tree-pretty-print.h and
3972 gimple-pretty-print.h.
3973 * ipa-cp.c: Include tree-pretty-print.h.
3974 * ipa-inline.c: Include gimple-pretty-print.h.
3975 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
3976 * ipa-pure-const.c: Include gimple-pretty-print.h.
3977 * ipa-struct-reorg.c: Include tree-pretty-print.h and
3978 gimple-pretty-print.h.
3979 * ipa-type-escape.c: Include tree-pretty-print.h.
3980 * print-rtl.c: Include tree-pretty-print.h.
3981 * print-tree.c: Include gimple-pretty-print.h.
3982 * sese.c: Include tree-pretty-print.h.
3983 * tree-affine.c: Include tree-pretty-print.h.
3984 * tree-browser.c: Include tree-pretty-print.h.
3985 * tree-call-cdce.c: Include gimple-pretty-print.h.
3986 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
3987 * tree-chrec.c: Include tree-pretty-print.h.
3988 * tree-data-ref.c: Include tree-pretty-print.h and
3989 gimple-pretty-print.h.
3990 * tree-dfa.c: Include tree-pretty-print.h.
3991 * tree-if-conv.c: Include tree-pretty-print.h and
3992 gimple-pretty-print.h.
3993 * tree-inline.c: Include tree-pretty-print.h.
3994 * tree-into-ssa.c: Include tree-pretty-print.h and
3995 gimple-pretty-print.h.
3996 * tree-nrv.c: Include tree-pretty-print.h.
3997 * tree-object-size.c: Include tree-pretty-print.h and
3998 gimple-pretty-print.h.
3999 * tree-outof-ssa.c: Include tree-pretty-print.h and
4000 gimple-pretty-print.h.
4001 * tree-parloops.c: Include tree-pretty-print.h and
4002 gimple-pretty-print.h.
4003 * tree-predcom.c: Include tree-pretty-print.h and
4004 gimple-pretty-print.h.
4005 * tree-scalar-evolution.c: Include tree-pretty-print.h and
4006 gimple-pretty-print.h.
4007 * tree-sra.c: Include tree-pretty-print.h.
4008 * tree-ssa-address.c: Include tree-pretty-print.h.
4009 * tree-ssa-alias.c: Include tree-pretty-print.h.
4010 * tree-ssa-ccp.c: Include tree-pretty-print.h and
4011 gimple-pretty-print.h.
4012 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
4013 * tree-ssa-copy.c: Include tree-pretty-print.h and
4014 gimple-pretty-print.h.
4015 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
4016 * tree-ssa-dce.c: Include tree-pretty-print.h and
4017 gimple-pretty-print.h.
4018 * tree-ssa-dom.c: Include tree-pretty-print.h and
4019 gimple-pretty-print.h.
4020 * tree-ssa-dse.c: Include gimple-pretty-print.h.
4021 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
4022 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
4023 * tree-ssa-live.c: Include tree-pretty-print.h and
4024 gimple-pretty-print.h.
4025 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
4026 gimple-pretty-print.h.
4027 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
4028 gimple-pretty-print.h.
4029 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
4030 gimple-pretty-print.h.
4031 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
4032 gimple-pretty-print.h.
4033 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
4034 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
4035 * tree-ssa-operands.c: Include tree-pretty-print.h and
4036 gimple-pretty-print.h.
4037 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
4038 gimple-pretty-print.h.
4039 * tree-ssa-pre.c: Include tree-pretty-print.h and
4040 gimple-pretty-print.h.
4041 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
4042 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
4043 gimple-pretty-print.h.
4044 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
4045 gimple-pretty-print.h.
4046 * tree-ssa-sink.c: Include gimple-pretty-print.h.
4047 * tree-ssa-ter.c: Include tree-pretty-print.h and
4048 gimple-pretty-print.h.
4049 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
4050 * tree-ssa.c: Include tree-pretty-print.h and
4051 gimple-pretty-print.h.
4052 * tree-stdarg.c: Include gimple-pretty-print.h.
4053 * tree-switch-conversion.c: Include gimple-pretty-print.h.
4054 * tree-tailcall.c: Include tree-pretty-print.h and
4055 gimple-pretty-print.h.
4056 * tree-vect-data-refs.c: Include tree-pretty-print.h and
4057 gimple-pretty-print.h.
4058 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
4059 gimple-pretty-print.h.
4060 * tree-vect-loop.c: Include tree-pretty-print.h and
4061 gimple-pretty-print.h.
4062 * tree-vect-patterns.c: Include gimple-pretty-print.h.
4063 * tree-vect-slp.c: Include tree-pretty-print.h and
4064 gimple-pretty-print.h.
4065 * tree-vect-stmts.c: Include tree-pretty-print.h and
4066 gimple-pretty-print.h.
4067 * tree-vectorizer.c: Include tree-pretty-print.h.
4068 * tree-vrp.c: Include tree-pretty-print.h and
4069 gimple-pretty-print.h.
4070 * value-prof.c: Include tree-pretty-print.h and
4071 gimple-pretty-print.h.
4072 * var-tracking.c: Include tree-pretty-print.h.
4073 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
4074 (tree-diagnostic.o): New dependencies.
4075 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
4076 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
4077 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
4078 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
4079 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
4080 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
4081 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
4082 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
4083 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
4084 tree-ssa-address.o, tree-ssa-loop-niter.o,
4085 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
4086 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
4087 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
4088 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
4089 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
4090 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
4091 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
4092 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
4093 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
4094 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
4095 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
4096 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
4097 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
4098 tree-switch-conversion.o, var-tracking.o, value-prof.o,
4099 cfgexpand.o, pretty-print.o): Update dependencies.
4100
4101 2010-05-22 Andreas Tobler <andreast@fgznet.ch>
4102
4103 * tree-ssa-structalias.c: Remove tm_p.h from include.
4104
4105 2010-05-21 Jeff Law <law@redhat.com>
4106
4107 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
4108
4109 2010-05-21 Jason Merrill <jason@redhat.com>
4110
4111 * tree-eh.c (cleanup_is_dead_in): New.
4112 (lower_try_finally): Don't generate a dead cleanup region.
4113 (lower_cleanup): Likewise.
4114
4115 2010-05-21 Jakub Jelinek <jakub@redhat.com>
4116
4117 PR debug/44223
4118 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
4119 unchain each use from the cyclic next_regno_use chain first.
4120
4121 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
4122
4123 * real: Do not include gmp.h, mpfr.h, and mpc.h.
4124 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
4125 (real_value_negate, real_value_abs): New prototypes.
4126 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
4127 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
4128 new include file for interface between MPFR and REAL_VALUE_TYPE.
4129 * real.c: Include realmpfr.h.
4130 (real_arithmetic2): Remove legacy function.
4131 (real_value_negate): New.
4132 (real_value_abs): New.
4133 (mfpr_from_real, real_from_mpfr): Move from here...
4134 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
4135 * builtins.c: Include realmpfr.h.
4136 * fold-const.c: Include realmpfr.h.
4137 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
4138 (fold_negate_const): Likewise.
4139 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
4140 * toplev.c: Include realmpfr.h.
4141 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
4142 and real_value_negate.
4143 * fixed-value.c (check_real_for_fixed_mode): Likewise.
4144 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
4145 (vfp3_const_double_index): Likewise.
4146 (arm_print_operand): Likewise.
4147 * Makefile.in: Update dependencies.
4148
4149 2010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4150
4151 * config/s390/s390.c (override_options): Increase the default
4152 of max-completely-peel-times.
4153
4154 2010-05-21 Julian Brown <julian@codesourcery.com>
4155 Mark Mitchell <mark@codesourcery.com>
4156
4157 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
4158 sibling calls for Thumb-1.
4159 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
4160 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
4161 Thumb-2.
4162 (*call_insn, *call_value_insn): Don't use for Thumb-2.
4163 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
4164 for Thumb-2.
4165 (return): New expander.
4166 (*arm_return): New name for ARM return insn.
4167 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
4168
4169 2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
4170
4171 * config.gcc (sparc64-*-rtems*): New target.
4172
4173 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
4174
4175 * tree.c (build_function_decl_skip_args): Fix grammar.
4176 (build_function_type_list_1): Fix typos, adjust formatting.
4177
4178 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
4179
4180 * tree.h: Include real.h and fixed-value.h as basic datatypes.
4181 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
4182 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
4183 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
4184 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
4185 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
4186 tree-pretty-print.c, tree-loop-distribution.c,
4187 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
4188 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
4189 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
4190 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
4191 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
4192 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
4193 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
4194 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
4195 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
4196 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
4197 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
4198 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
4199 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
4200 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
4201 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
4202 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
4203 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
4204 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
4205 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
4206 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
4207 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
4208 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
4209 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
4210 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
4211 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
4212 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
4213 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
4214 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
4215 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
4216 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
4217 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
4218 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
4219 config/score/score7.c, config/score/score.c, config/arm/arm.c,
4220 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
4221 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
4222 config/bfin/bfin.c: Clean up redundant includes.
4223 * Makefile.in: Update accordingly.
4224
4225 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
4226
4227 PR middle-end/44204
4228 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
4229 statement has no arguments.
4230
4231 2010-05-21 Kai Tietz <kai.tietz@onevision.com>
4232
4233 PR/44139
4234 * varasm.c (emutls_decl): Merge attributes to new decl.
4235
4236 2010-05-21 Eric Botcazou <ebotcazou@adacore.com>
4237
4238 PR middle-end/44101
4239 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
4240 around the uniquized constructor if its type requires a conversion.
4241
4242 2010-05-21 Jakub Jelinek <jakub@redhat.com>
4243
4244 PR debug/44205
4245 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
4246 at -O0 goto_locus of any of the incoming edges differs from
4247 goto_locus of outgoing edge, or gimple_location of any of the
4248 labels differs.
4249
4250 2009-09-14 Vladimir Makarov <vmakarov@redhat.com>
4251
4252 * ira.c (ira_non_ordered_class_hard_regs): Define.
4253 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
4254 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
4255 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
4256 cost of unaligned hard regs when allocating multi-reg pseudos.
4257
4258 2010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
4259
4260 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
4261 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
4262 for TARGET_NO_FLOAT.
4263 * config/mips/mips.c (mips_file_start): Expand conditional expression
4264 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
4265 (mips_override_options): Move -mno-float override -msoft-float and
4266 -mhard-float.
4267 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
4268 Condition(TARGET_SUPPORTS_NO_FLOAT).
4269 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
4270 __mips_no_float here.
4271 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
4272 (TARGET_SUPPORTS_NO_FLOAT): Define.
4273 * config/mips/sdemtk.opt: Delete.
4274
4275 2010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
4276
4277 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
4278
4279 2010-05-20 Uros Bizjak <ubizjak@gmail.com>
4280
4281 PR target/43733
4282 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
4283 * configure: Regenerate.
4284 * config.in: Regenerate.
4285 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
4286 instead of sahf only for 64bit targets.
4287
4288 2010-05-20 Jakub Jelinek <jakub@redhat.com>
4289
4290 PR debug/44178
4291 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
4292 setup_ref_regs for DEBUG_INSNs.
4293
4294 2010-05-20 Jan Hubicka <jh@suse.cz>
4295
4296 PR middle-end/44197
4297 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
4298
4299 2010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
4300
4301 PR bootstrap/43870
4302 * df-scan.c (df_ref_compare): Stabilize sort.
4303
4304 2010-05-20 Jakub Jelinek <jakub@redhat.com>
4305
4306 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
4307 argument. Don't use DW_OP_piece if offset is non-zero,
4308 put offset into second DW_OP_bit_piece argument.
4309 (dw_sra_loc_expr): Adjust callers. For memory expressions
4310 compute offset.
4311
4312 2010-05-20 Hans-Peter Nilsson <hp@axis.com>
4313
4314 PR target/44202
4315 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
4316 settings for 16-bit-constant "addo" alternative.
4317
4318 2010-05-19 James E. Wilson <wilson@codesourcery.com>
4319
4320 * config/mips/mips-dsp.md (add<DSPV:mode>3,
4321 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
4322
4323 PR target/43764
4324 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
4325 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
4326 Use it.
4327
4328 2010-05-19 Joseph Myers <joseph@codesourcery.com>
4329
4330 * diagnostic.c (FLOAT, FFS): Don't undefine.
4331 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
4332 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
4333 include ordering.
4334
4335 2010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
4336
4337 * combine.c (propagate_for_debug): Call make_compound_operation
4338 on the source value.
4339 (try_combine): When implementing a split chosen by find_split_point,
4340 either copy i2src or set it to null. Assert that i2src is not null
4341 before substituting into CALL_INSN_FUNCTION_USAGE.
4342
4343 2010-05-19 Anatoly Sokolov <aesok@post.ru>
4344
4345 * double-int.h (double_int_ior): New function.
4346 * tree.h (build_int_cst_wide_type): Remove.
4347 * tree.c (build_int_cst_wide_type): Remove.
4348 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
4349 of build_int_cst_wide_type.
4350 * stor-layout.c (set_sizetype): (Ditto.).
4351 * dojump.c (do_jump): Use build_int_cstu instead of
4352 build_int_cst_wide_type.
4353
4354 2010-05-19 Eric Botcazou <ebotcazou@adacore.com>
4355
4356 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
4357 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
4358 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
4359 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
4360 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
4361 propagate the 'data' argument to copy_tree_r.
4362 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
4363 Propagate 'data' argument to walk_tree.
4364 (copy_if_shared): New function.
4365 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
4366 (unmark_visited): New function.
4367 (unshare_body): Call copy_if_shared instead of doing it manually.
4368 (unvisit_body): Call unmark_visited instead of doing it manually.
4369
4370 2010-05-19 Nathan Froyd <froydnj@codesourcery.com>
4371
4372 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
4373 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
4374 * hooks.c: Likewise.
4375 * target-def.h (TARGET_FOLD_BUILTIN): Define to
4376 hook_tree_tree_int_treep_bool_null.
4377 * target.h (struct gcc_target): Update signature of fold_builtin
4378 field.
4379 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
4380 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
4381 instead of the call expression.
4382 (fold_builtin_call_array): Pass n and argarray directly.
4383 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
4384 consing a list.
4385 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
4386 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
4387 `i' and use it in place of `arity'.
4388 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
4389 Dereference `args' directly.
4390 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
4391
4392 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4393
4394 * doc/sourcebuild.texi (Effective-Target Keywords): Document
4395 3dnow, sse3, sse2.
4396 (Directives): Document optional dg-require-effective-target
4397 selector.
4398
4399 2010-05-19 Richard Guenther <rguenther@suse.de>
4400
4401 PR lto/44196
4402 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
4403
4404 2010-05-19 Richard Guenther <rguenther@suse.de>
4405
4406 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
4407 * common.opt (fwhopr=): New.
4408 * opts.c (common_handle_option): Handle OPT_fwhopr.
4409 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
4410 * collect2.c (main): Match -fwhopr*.
4411 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
4412 Execute ltrans stage in parallel when jobs is bigger than 1.
4413
4414 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4415
4416 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
4417 pentiumpro on Solaris 8/x86 with Sun as.
4418 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
4419 hidden alias bug.
4420 (gcc_cv_as_ix86_quad): Check for .quad directive.
4421 * configure: Regenerate.
4422 * config.in: Regenerate.
4423 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
4424
4425 2010-05-19 Martin Jambor <mjambor@suse.cz>
4426
4427 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
4428 also for indirect edges. Actual printing moved...
4429 (ipa_print_node_jump_functions_for_edge): ...here.
4430 (ipa_compute_jump_functions): Renamed to
4431 ipa_compute_jump_functions_for_edge and made static.
4432 (ipa_compute_jump_functions): New function.
4433 (make_edge_direct_to_target): Check if the number of arguments on
4434 the newly direct edge is the same as the number of parametrs of
4435 the callee.
4436 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
4437 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
4438 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
4439 analysis functions unconditionally, call the new
4440 ipa_analyze_params_uses on the node instead of every edge.
4441
4442 2010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
4443
4444 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
4445 to tree.
4446 (dump_mem_ref): Adopt debug code to handle a tree as step. This
4447 also checks for a constant int vs. non-constant but
4448 loop-invariant steps.
4449 (find_or_create_group): Change the sort algorithm to only consider
4450 steps that are constant ints.
4451 (idx_analyze_ref): Adopt code to handle a tree instead of a
4452 HOST_WIDE_INT for step.
4453 (gather_memory_references_ref): Handle tree instead of int and be
4454 prepared to see a NULL_TREE.
4455 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
4456 prefetches if the step cannot be calculated at compile time.
4457 (issue_prefetch_ref): Issue prefetches for non-constant but
4458 loop-invariant steps.
4459
4460 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
4461
4462 Revert:
4463 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
4464
4465 * tree.h (build_call_list): Remove.
4466 * tree.c (build_call_list): Remove.
4467
4468 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
4469
4470 * tree.h (build_call_list): Remove.
4471 * tree.c (build_call_list): Remove.
4472
4473 2010-05-18 Jan Hubicka <jh@suse.cz>
4474
4475 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
4476
4477 2010-05-18 Vladimir Makarov <vmakarov@redhat.com>
4478
4479 PR rtl-optimization/43332
4480 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
4481
4482 2010-05-18 Anatoly Sokolov <aesok@post.ru>
4483
4484 * tree.h (build_int_cstu): Implement as static inline.
4485 * tree.c (build_int_cstu): Remove function.
4486 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
4487 sign extended.
4488
4489 2010-05-18 Richard Guenther <rguenther@suse.de>
4490
4491 PR lto/44143
4492 * lto-wrapper.c (verbose): New variable. Initialize from -v.
4493 (debug): Initialize from -save-temps.
4494 (collect_execute): Print command-line when verbose.
4495 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
4496 for ltrans invocation. Produce -dumpbase flag again.
4497 (process_args): Remove.
4498 (main): Simplify.
4499 * collect2.c (maybe_run_lto_and_relink): Only pass object
4500 files to lto-wrapper.
4501 * gcc.c (LINK_COMMAND_SPEC): Likewise.
4502
4503 2010-05-18 Jan Hubicka <jh@suse.cz>
4504
4505 * opts.c (decode_options): Do not disable whopr at ipa_cp.
4506 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
4507
4508 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
4509
4510 PR lto/44184
4511 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
4512 in a GIMPLE_ASM.
4513 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
4514 in a GIMPLE_ASM.
4515
4516 2010-05-18 Jakub Jelinek <jakub@redhat.com>
4517
4518 PR debug/41371
4519 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
4520 rtx_equal_p inline.
4521
4522 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
4523
4524 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
4525 lto-macho as lto_binary_reader.
4526
4527 * darwin.c (darwin_asm_named_section): Do not add assembler comment
4528 after .section directive; just print it before the directive instead.
4529
4530 2010-05-17 Jan Hubicka <jh@suse.cz>
4531
4532 * cgraph.c (cgraph_create_virtual_clone): Only check
4533 versionable_function_p when not in wpa and checking is enabled.
4534 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
4535 there are no more functions to materialize.
4536
4537 2010-05-17 Jan Hubicka <jh@suse.cz>
4538
4539 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
4540 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
4541 New functions.
4542 (output_cgraph): Call output_cgraph_opt_summary.
4543 (input_cgrpah): Call input_cgraph_opt_summary.
4544 (output_cgraph_opt_summary_p, output_node_opt_summary,
4545 input_node_opt_summary, input_cgraph_opt_section): New functions.
4546 * lto-section-in.c (lto_section_name): Add cgraphopt.
4547 * tree-inline.c (tree_function_versioning): Handle parm_num.
4548 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
4549 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
4550
4551 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
4552
4553 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
4554 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
4555 the insn to prefetch ratio heuristic to loops with known trip count.
4556
4557 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
4558
4559 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
4560 (schedule_prefetches): Do not generate a prefetch if the unroll factor
4561 is far from what is required by the prefetch.
4562
4563 2010-05-17 Jan Hubicka <jh@suse.cz>
4564
4565 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
4566 (ipcp_estimate_growth): Likewise.
4567 (ipcp_const_param_count): Likewise.
4568 (ipcp_insert_stage): Likewise.
4569 * ipa-prop.c (visit_load_for_mod_analysis): New function.
4570 (visit_store_addr_for_mod_analysis): Set used flag.
4571 (ipa_detect_param_modifications): Set used flag for SSE params;
4572 update use of walk_stmt_load_store_addr_ops.
4573 (ipa_print_node_params): Print used flag.
4574 (ipa_write_node_info): Stream used flag.
4575 (ipa_read_node_info): Likewise.
4576 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
4577 (ipa_is_param_used): New function.
4578 (lto_ipa_fixup_call_notes): Remove unused declaration.
4579
4580 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4581
4582 PR target/44074
4583 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
4584 * configure: Regenerate.
4585 * config.in: Regenerate.
4586 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
4587 !HAVE_AS_IX86_REP_LOCK_PREFIX.
4588 Don't emit whitespace.
4589 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
4590 (*rep_movsi): Likewise.
4591 (*rep_movsi_rex64): Likewise.
4592 (*rep_movqi): Likewise.
4593 (*rep_movqi_rex64): Likewise.
4594 (*rep_stosdi_rex64): Likewise.
4595 (*rep_stossi): Likewise.
4596 (*rep_stossi_rex64): Likewise.
4597 (*rep_stosqi): Likewise.
4598 (*rep_stosqi_rex64): Likewise.
4599 (*cmpstrnqi_nz_1): Use {%;} after repz.
4600 (*cmpstrnqi_nz_rex_1): Likewise.
4601 (*cmpstrnqi_1): Likewise.
4602 (*cmpstrnqi_rex_1): Likewise.
4603 (*strlenqi_1): Use {%;} after repnz.
4604 (*strlenqi_rex_1): Likewise.
4605 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
4606 (*sync_compare_and_swap<mode>): Likewise.
4607 (sync_double_compare_and_swap<mode>): Likewise.
4608 (*sync_double_compare_and_swapdi_pic): Likewise.
4609 (sync_old_add<mode>): Likewise.
4610 (sync_add<mode>): Likewise.
4611 (sync_sub<mode>): Likewise.
4612 (sync_<code><mode>): Likewise.
4613
4614 2010-05-17 Martin Jambor <mjambor@suse.cz>
4615
4616 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
4617 otr_token and polymorphic.
4618 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
4619 (cgraph_clone_edge): Copy the above fields.
4620 * tree.c (get_binfo_at_offset): New function.
4621 * tree.h (get_binfo_at_offset): Declare.
4622 * ipa-prop.h (enum jump_func_type): Added known_type jump function
4623 type, reordered items, updated comments.
4624 (union jump_func_value): Added base_type field, reordered fields.
4625 (enum ipa_lattice_type): Moved down in the file.
4626 (struct ipa_param_descriptor): New field polymorphic.
4627 (ipa_is_param_polymorphic): New function.
4628 * ipa-prop.c: Include gimple.h and gimple-fold.h.
4629 (ipa_print_node_jump_functions): Print known type jump functions.
4630 (compute_complex_pass_through): Renamed to...
4631 (compute_complex_assign_jump_func): this.
4632 (compute_complex_ancestor_jump_func): New function.
4633 (compute_known_type_jump_func): Likewise.
4634 (compute_scalar_jump_functions): Create known type and complex ancestor
4635 jump functions.
4636 (ipa_note_param_call): New parameter polymorphic, set the corresponding
4637 flag in the call note accordingly.
4638 (ipa_analyze_call_uses): Renamed to...
4639 (ipa_analyze_indirect_call_uses): this. New parameter target, define
4640 variable var only in the block where it is used.
4641 (ipa_analyze_virtual_call_uses): New function.
4642 (ipa_analyze_call_uses): Likewise.
4643 (combine_known_type_and_ancestor_jfs): Likewise.
4644 (update_jump_functions_after_inlining): Implemented handling of a
4645 number of new jump function types combination.
4646 (print_edge_addition_message): Removed.
4647 (make_edge_direct_to_target): New function.
4648 (try_make_edge_direct_simple_call): Likewise.
4649 (try_make_edge_direct_virtual_call): Likewise.
4650 (update_call_notes_after_inlining): Renamed to...
4651 (update_indirect_edges_after_inlining): this. Moved edge creation for
4652 indirect calls to try_make_edge_direct_simple_call, also calls
4653 try_make_edge_direct_virtual_call for virtual calls.
4654 (ipa_print_node_params): Changed the header message.
4655 (ipa_write_jump_function): Stream also known type jump functions.
4656 (ipa_read_jump_function): Likewise.
4657 (ipa_write_indirect_edge_info): Stream new fields in
4658 cgraph_indirect_call_info.
4659 (ipa_read_indirect_edge_info): Likewise.
4660 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
4661 GIMPLE_FOLD_H.
4662
4663 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4664
4665 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
4666
4667 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
4668
4669 * tree.h (CALL_EXPR_ARGS): Delete.
4670 (call_expr_arglist): Delete.
4671 * tree.c (call_expr_arglist): Delete.
4672 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
4673 targetm.fold_builtin.
4674 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
4675 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
4676 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
4677 arglist parameter. Use CALL_EXPR_ARG.
4678 (picochip_expand_builtin_3op): Likewise.
4679 (picochip_expand_builtin_2opvoid): Likewise.
4680 (picochip_expand_array_get): Likewise.
4681 (picochip_expand_array_put): Likewise.
4682 (picochip_expand_array_testport): Likewise.
4683 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
4684 rather than arglist.
4685 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
4686 CALL_EXPR_ARGS.
4687 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
4688 than TREE_VALUE and TREE_CHAIN.
4689 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
4690 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
4691 the arglist.
4692
4693 2010-05-17 Jakub Jelinek <jakub@redhat.com>
4694
4695 PR bootstrap/42347
4696 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
4697 to have no fallthru edge.
4698
4699 PR middle-end/44102
4700 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
4701 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
4702 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
4703 add BARRIER after previous bb if needed.
4704
4705 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
4706
4707 * tree.c (build_function_type_list_1): Remove bogus assert condition.
4708
4709 2010-05-17 Alan Modra <amodra@gmail.com>
4710
4711 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
4712 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
4713 with copy_reg rtx param.
4714 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
4715 Correct cases where code for ABI_V4 did not initialise the reg
4716 used to access frame. Also leave frame_reg_rtx as sp for large
4717 frames that save no regs.
4718
4719 2010-05-17 Martin Jambor <mjambor@suse.cz>
4720
4721 PR middle-end/44133
4722 * tree-sra.c (create_access_replacement): New parameter rename, mark
4723 the replaement for renaming only when it is true.
4724 (get_access_replacement): Pass true in the rename parameter of
4725 create_access_replacement.
4726 (get_unrenamed_access_replacement): New function.
4727 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
4728 replacement declaration from it.
4729
4730 2010-05-17 Bernd Schmidt <bernds@codesourcery.com>
4731
4732 * function.c (try_fit_stack_local, add_frame_space): New static
4733 functions.
4734 (assign_stack_local_1): Use them. Look for opportunities to use
4735 space previously wasted on alignment.
4736 * function.h (struct frame_space): New.
4737 (struct rtl_data): Add FRAME_SPACE_LIST member.
4738 * reload1.c (something_was_spilled): New static variable.
4739 (alter_reg): Set it.
4740 (reload): Test it in addition to testing if the frame size changed.
4741
4742 2010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
4743
4744 * config/s390/s390.c: Define sane prefetch settings and activate
4745 flag_prefetch_loop_arrays on -O3.
4746 * config/s390/s390.h: Declare that read can use write prefetch.
4747
4748 2010-05-17 Jakub Jelinek <jakub@redhat.com>
4749
4750 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
4751 build.
4752
4753 2010-05-16 Jan Hubicka <jh@suse.cz>
4754
4755 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
4756 function body; do not check stdarg field of struct function.
4757
4758 2010-05-16 Jan Hubicka <jh@suse.cz>
4759
4760 * cgraph.c (dump_cgraph_node): Dump versionable flag.
4761 * cgraph.h (cgraph_local_info): Add versionable flag.
4762 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
4763 (ipcp_versionable_function_p): Use it.
4764 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
4765 versionable flag.
4766
4767 2010-05-16 Jan Hubicka <jh@suse.cz>
4768
4769 * cgraph.c (cgraph_clone_node): Take decl argument and insert
4770 clone into hash when it is different from orig.
4771 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
4772 * cgraph.h (cgraph_clone_node): Update prototype.
4773 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
4774 (lto_cgraph_encoder_delete): Delete body map.
4775 (lto_cgraph_encoder_size): Move to header.
4776 (lto_cgraph_encoder_encode_body_p,
4777 lto_set_cgraph_encoder_encode_body): New.
4778 (lto_output_node): Do not take written_decls argument; output clone_of
4779 pointer.
4780 (add_node_to): Add include_body_argument; call
4781 lto_set_cgraph_encoder_encode_body on master of the clone.
4782 (add_references): Update use of add_node_to.
4783 (compute_ltrans_boundary): Likewise.
4784 (output_cgraph): Do not create written_decls bitmap.
4785 (input_node): Take nodes argument; stream in clone_of correctly.
4786 (input_cgraph_1): Update use of input_node.
4787 * lto-streamer-out.c (lto_output): Use encoder info to decide
4788 what bodies to output.
4789 * ipa-inline.c (cgraph_clone_inlined_nodes,
4790 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
4791 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
4792 (lto_cgraph_encoder_size): Define here.
4793 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
4794 Declare.
4795
4796 2010-05-16 Richard Guenther <rguenther@suse.de>
4797
4798 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
4799 -fipa-type-escape.
4800 * ipa-type-escape.c (gate_type_escape_vars): Run when
4801 -fipa-struct-reorg runs.
4802 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
4803 * common.opt (fipa-type-escape): Remove.
4804
4805 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
4806
4807 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
4808 (decode_options): Likewise.
4809 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
4810
4811 2010-05-16 Jan Hubicka <jh@suse.cz>
4812
4813 * ipa.c (function_and_variable_visibility): Also bring local all
4814 aliases.
4815
4816 2010-05-16 Richard Guenther <rguenther@suse.de>
4817
4818 * alias.c (nonoverlapping_memrefs_p): Remove use of
4819 IPA type-escape information.
4820
4821 2010-05-16 Joseph Myers <joseph@codesourcery.com>
4822
4823 * c-common.c (c_common_reswords): Add _Static_assert for C.
4824 * c-parser.c (c_token_starts_declaration,
4825 c_parser_next_token_starts_declaration,
4826 c_parser_static_assert_declaration_no_semi,
4827 c_parser_static_assert_declaration): New.
4828 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
4829 Handle static assertions if static_assert_ok.
4830 (c_parser_external_declaration, c_parser_declaration_or_fndef,
4831 c_parser_compound_statement_nostart, c_parser_label,
4832 c_parser_for_statement, c_parser_objc_methodprotolist,
4833 c_parser_omp_for_loop): All callers of
4834 c_parser_declaration_or_fndef changed.
4835 (c_parser_struct_declaration): Handle static assertions.
4836 (c_parser_compound_statement_nostart): Use
4837 c_parser_next_token_starts_declaration and
4838 c_token_starts_declaration to detect start of declarations.
4839 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
4840 Likewise.
4841
4842 2010-05-16 Anatoly Sokolov <aesok@post.ru>
4843
4844 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
4845 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
4846 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4847 TARGET_FUNCTION_VALUE_REGNO_P): Define.
4848 (mmix_function_outgoing_value): Rename to...
4849 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
4850 (mmix_function_value_regno_p): Make static.
4851 (mmix_libcall_value): New function.
4852 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
4853 mmix_function_value_regno_p): Remove declaration.
4854
4855 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
4856
4857 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
4858 BUILT_IN_ALLOCA if stack checking is enabled.
4859
4860 2010-05-16 Richard Guenther <rguenther@suse.de>
4861
4862 * var-tracking.c (vars_copy_1): Inline ...
4863 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
4864 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
4865 (variable_merge_over_cur): Adjust. Merge asserts.
4866 (variable_merge_over_src): Likewise.
4867 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
4868 (variable_post_merge_new_vals): Merge asserts.
4869 (variable_post_merge_perm_vals): Likewise.
4870 (find_mem_expr_in_1pdv): Likewise.
4871 (dataflow_set_different_value): Remove.
4872 (onepart_variable_different_p): Merge asserts.
4873 (variable_different_p): Likewise.
4874 (dataflow_set_different_1): Inline ...
4875 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
4876 (emit_notes_for_differences_1): Merge asserts.
4877
4878 2010-05-16 Richard Guenther <rguenther@suse.de>
4879
4880 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
4881 * optabs.c (libfunc_decl_hash): Likewise.
4882 * varasm.c (emutls_decl): Likewise.
4883
4884 2010-05-16 Steven Bosscher <steven@gcc.gnu.org>
4885
4886 * c-decl.c: Don't include gimple.h.
4887 (merge_decls): Do not copy gimple_body.
4888
4889 2010-05-15 Jason Merrill <jason@redhat.com>
4890
4891 * c.opt: Add -fnothrow-opt.
4892
4893 2010-05-15 Jan Hubicka <jh@suse.cz>
4894
4895 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
4896 analyzed.
4897 * passes.c (ipa_write_summaries): Write all analyzed nodes.
4898
4899 2010-05-15 Steven Bosscher <steven@gcc.gnu.org>
4900
4901 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
4902 * Makefile.in: Add it.
4903 Fix all other Makefile dependencies for changes below.
4904 * tree.h: Include it instead of defining VEC primitives here.
4905 * gimple.h: Likewise.
4906 * rtl.h: Likewise.
4907 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
4908 * except.h: Include vecir.h, break dependence on tree.h.
4909
4910 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
4911 Move from here...
4912 * tree-iterator.c: ...to here.
4913 * tree-iterator.h: Fix file introduction comment. Add extern markers.
4914
4915 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
4916 tm_p.h.
4917 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
4918 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
4919 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
4920 tree-mudflap.h, and target.h.
4921 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
4922 predict.h, tree-inline.h, gimple.h, and langhooks.h.
4923 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
4924 Add FIXME for why gimple.h is still included (should be unnecessary
4925 since GCC 4.5 gimplification unit-at-a-time).
4926 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
4927 * c-pragma.c: Add FIXME for why function.h needs to be included just
4928 for cfun, at front-end level.
4929 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
4930 Do not include ggc.h, but include vecprim.h for VEC(char).
4931 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
4932 Explain why target.h is included.
4933 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
4934 Explain why gimple.h is included.
4935 * c-ppoutput.c: Do not include tm.h.
4936 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
4937 * c-parses.c: Explain why rtl.h is included, and that this (and only
4938 this) is also why tm.h must be included.
4939 Do not include except.h.
4940 * c-lang.c: Do not include ggc.h.
4941
4942 2010-05-15 Uros Bizjak <ubizjak@gmail.com>
4943
4944 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
4945
4946 2010-05-15 Joseph Myers <joseph@codesourcery.com>
4947
4948 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
4949 unions by default if those structs and unions have no tags. Do
4950 not condition anonymous struct and unions handling on flag_iso.
4951 Allow anonymous structs and unions for C1X.
4952 (finish_struct): Do not diagnose lack of named fields when
4953 anonymous structs and unions present for C1X. Accept flexible
4954 array members in structure with anonymous structs or unions but no
4955 directly named fields.
4956 * doc/extend.texi (Unnamed Fields): Update.
4957
4958 2010-05-15 Eric Botcazou <ebotcazou@adacore.com>
4959
4960 * gimple.h (compare_field_offset): Rename into...
4961 (gimple_compare_field_offset): ...this.
4962 * gimple.c (compare_field_offset): Rename into...
4963 (gimple_compare_field_offset): ...this. Compare the full access if
4964 the offset is self-referential.
4965 (gimple_types_compatible_p): Adjust for above renaming.
4966 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
4967 DECL_NONADDRESSABLE_P flag of fields before merging them.
4968
4969 2010-05-15 Nathan Froyd <froydnj@codesourcery.com>
4970
4971 * tree.h (ctor_to_list): Delete.
4972 * tree.c (ctor_to_list): Delete.
4973
4974 2010-05-15 Jan Hubicka <jh@suse.cz>
4975
4976 * ipa-reference.c: Include toplev.h
4977 (is_proper_for_analysis): Only add to all_module_statics
4978 if it is allocated.
4979 (write_node_summary_p, stream_out_bitmap,
4980 ipa_reference_write_optimization_summary,
4981 ipa_reference_read_optimization_summary): New.
4982 (struct ipa_opt_pass_d pass_ipa_reference): Add
4983 optimization summary streaming.
4984 * lto-cgraph.c (referenced_from_this_partition_p,
4985 reachable_from_this_partition_p): New functions.
4986 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4987 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
4988 * opts.c (decode_options): Enable ipa_reference.
4989 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
4990 * lto-streamer.h (referenced_from_this_partition_p,
4991 reachable_from_this_partition_p): Declare.
4992
4993 2010-05-15 Richard Guenther <rguenther@suse.de>
4994
4995 PR tree-optimization/44038
4996 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
4997 taking the address of a V_C_E of a constant.
4998
4999 2010-05-14 Jan Hubicka <jh@suse.cz>
5000
5001 * tree.h (memory_identifier_string): Remove.
5002 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
5003 (ipa_reference_global_vars_info_d): Remove statics_not_read and
5004 statics_not_written.
5005 (ipa_reference_optimization_summary_d): New structure.
5006 (ipa_reference_optimization_summary_t): New type and vector.
5007 (ipa_reference_vars_info_d): Embedd structures instead of using
5008 pointers.
5009 (reference_vars_to_consider): Remove out of GGC space.
5010 (module_statics_escape): Remove.
5011 (global_info_obstack): Rename to ...
5012 (optimization_summary_obstack): ... this one.
5013 (initialization_status_t): Remove.
5014 (memory_identifier_string): Remove.
5015 (get_reference_vars_info): Fix indenting.
5016 (set_reference_vars_info): Likewise.
5017 (get_reference_optimization_summary): New.
5018 (set_reference_optimization_summary): New.
5019 (get_global_reference_vars_info): Remove.
5020 (ipa_reference_get_read_global): Remove.
5021 (ipa_reference_get_written_global): Remove.
5022 (ipa_reference_get_not_read_global): Update.
5023 (ipa_reference_get_not_written_global): Update.
5024 (is_proper_for_analysis): Outlaw addressable.
5025 (propagate_bits): Update for new datastructures.
5026 (analyze_variable): Remove.
5027 (init_function_info): Update for new datastructures.
5028 (clean_function_local_data): Remove.
5029 (clean_function): Remove.
5030 (copy_global_bitmap): Use optimizations_summary_obstack.
5031 (duplicate_node_data): Duplicate optimization summary only.
5032 (remove_node_data): Remove optimization summary only.
5033 (generate_summary): Do not analyze variables; do not compute
5034 module_statics_escape; do not prune solutions by it.
5035 (read_write_all_from_decl): Fix typos in comments.
5036 (propagate): Doscover readonly and nonaddressable first;
5037 update for new datastructures; share global bitmaps.
5038 * ipa-reference.h (ipa_reference_get_read_global,
5039 ipa_reference_get_written_global): Remove.
5040 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
5041 * Makefile.in: Remove ipa-refereference from GT files.
5042
5043 2010-05-14 Jakub Jelinek <jakub@redhat.com>
5044
5045 PR debug/44112
5046 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
5047 for all SYMBOL_REF_DECLs.
5048
5049 2010-05-14 Jan Hubicka <jh@suse.cz>
5050
5051 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
5052 (varpool_all_refs_explicit_p): New inline function.
5053 * ipa-reference.c: Update comment.
5054 (module_statics_written): Remove.
5055 (get_static_decl): Remove.
5056 (ipa_init): Do not initialize module_statics_written.
5057 (analyze_function): Likewise.
5058 (generate_summary): Likewise; do not compute module_statics_readonly
5059 and do not update variable flags.
5060 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
5061 * ipa.c: Inlucde flags.h
5062 (cgraph_local_node_p): New.
5063 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
5064 promote functions to local.
5065 (ipa_discover_readonly_nonaddressable_vars): New function.
5066 (function_and_variable_visibility): Use cgraph_local_node_p.
5067 * varpool.c (varpool_finalize_decl): Set force_output for
5068 DECL_PRESERVE_P vars.
5069
5070 2010-05-14 Jan Hubicka <jh@suse.cz>
5071
5072 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
5073
5074 2010-05-14 Richard Guenther <rguenther@suse.de>
5075
5076 PR tree-optimization/44119
5077 * tree-ssa-pre.c (eliminate): Properly mark replacement of
5078 a PHI node necessary.
5079
5080 2010-05-14 Eric Botcazou <ebotcazou@adacore.com>
5081
5082 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
5083
5084 2010-05-14 Jason Merrill <jason@redhat.com>
5085
5086 PR c++/44127
5087 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
5088 (gimple_call_set_nothrow): New.
5089 * gimple.c (gimple_build_call_from_tree): Call it.
5090 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
5091
5092 PR c++/44127
5093 * gimplify.c (gimplify_seq_add_stmt): No longer static.
5094 * gimple.h: Declare it.
5095 * gimple.c (gimple_build_eh_filter): No ops.
5096
5097 2010-05-14 Jan Hubicka <jh@suse.cz>
5098
5099 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
5100 nodes already in queue.
5101 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
5102 re-enqueueing node.
5103
5104 2010-05-14 Jakub Jelinek <jakub@redhat.com>
5105
5106 PR debug/44136
5107 * cfgexpand.c (expand_debug_expr): If non-memory op0
5108 has BLKmode, return NULL.
5109
5110 2010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
5111
5112 * config.gcc: Add support for --with-cpu option for bdver1.
5113 * config/i386/i386.h (TARGET_BDVER1): New macro.
5114 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
5115 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
5116 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
5117 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
5118 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
5119 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
5120 (processor_type): Add PROCESSOR_BDVER1.
5121 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
5122 processor_type in config/i386/i386.h.
5123 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
5124 movaps <reg, reg> instead of movapd <reg, reg> when replacing
5125 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
5126 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
5127 to emit packed xor instead of packed double/packed integer
5128 xor for SSE and AVX when moving a zero value.
5129 * config/i386/sse.md: Add check for
5130 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
5131 movapd/movdqa for SSE and AVX.
5132 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
5133 single logical operations i.e and, or and xor instead of packed double
5134 logical operations for SSE and AVX.
5135 * config/i386/i386-c.c (ix86_target_macros_internal):
5136 Add PROCESSOR_BDVER1.
5137 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
5138 (has_fma4, has_xop): New.
5139 * config/i386/i386.c (bdver1_cost): New variable.
5140 (m_BDVER1): New macro.
5141 (m_AMD_MULTIPLE): Add m_BDVER1.
5142 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
5143 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
5144 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
5145 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
5146 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
5147 x86_tune_sse_partial_reg_dependency,
5148 x86_tune_sse_unaligned_load_optimal,
5149 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
5150 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
5151 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
5152 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
5153 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
5154 Enable/disable for bdver1.
5155 (processor_target_table): Add bdver1_cost.
5156 (cpu_names): Add bdver1.
5157 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
5158 processor_alias_table.
5159 (ix86_expand_vector_move_misalign): Change.
5160 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
5161 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
5162 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
5163 of movupd/movdqu for SSE and AVX.
5164 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
5165 (ix86_tune_adjust_cost): Add code for bdver1.
5166 (standard_sse_constant_opcode): Add check for
5167 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
5168 of packed double xor for SSE and AVX.
5169
5170 2010-05-14 Pat Haugen <pthaugen@us.ibm.com>
5171
5172 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
5173 result to unsigned.
5174
5175 2010-05-14 Tristan Gingold <gingold@adacore.com>
5176
5177 * toplev.c (default_debug_hooks): Remove this variable.
5178 (process_options): Remove assignments to default_debug_hooks.
5179
5180 2010-05-14 Martin Jambor <mjambor@suse.cz>
5181
5182 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
5183 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
5184 * langhooks.h (struct lang_hooks_for_decls): Removed field
5185 fold_obj_type_ref.
5186 * tree.c (free_lang_data): Remove assignment to
5187 lang_hooks.fold_obj_type_ref.
5188 * tree.def (OBJ_TYPE_REF): Update comment.
5189
5190 2010-05-14 Richard Guenther <rguenther@suse.de>
5191
5192 PR tree-optimization/44124
5193 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
5194
5195 2010-05-14 Alan Modra <amodra@gmail.com>
5196
5197 PR target/44075
5198 * config/rs6000/rs6000.c (struct machine_function): Reorder
5199 fields for better packing. Add lr_save_state.
5200 (rs6000_ra_ever_killed): Return lr_save_state if set.
5201 (rs6000_emit_eh_reg_restore): Set lr_save_state.
5202
5203 2010-05-13 Jan Hubicka <jh@suse.cz>
5204
5205 * varpool.c (decide_is_variable_needed): Drop code checking
5206 TREE_SYMBOL_REFERENCED.
5207
5208 2010-05-13 Jan Hubicka <jh@suse.cz>
5209
5210 * final.c (output_addr_const): Do not call mark_decl_referenced.
5211 * cgraphunit.c (process_function_and_variable_attributes): Use
5212 mark_needed_node dirrectly.
5213 (assemble_thunk): Do not call mark_decl_referenced.
5214
5215 2010-05-13 Anatoly Sokolov <aesok@post.ru>
5216
5217 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
5218
5219 2010-05-13 Jeff Law <law@redhat.com>
5220
5221 * ira-conflicts.c (print_allocno_conflicts): New function broken out
5222 from...
5223 (print_conflicts): Call print_allocno_conflicts.
5224
5225 2010-05-13 Jakub Jelinek <jakub@redhat.com>
5226
5227 PR debug/44104
5228 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
5229 if it is NULL.
5230
5231 2010-05-13 Kai Tietz <kai.tietz@onevision.com>
5232
5233 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
5234 t-mingw-w64 or t-mingw-w32 for multilib configuration.
5235 * config/i386/t-mingw-w32: New.
5236 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
5237
5238 2010-05-13 Martin Jambor <mjambor@suse.cz>
5239
5240 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
5241 gimple-fold.c).
5242 * gimple-fold.c (get_base_binfo_for_type): New function.
5243 (gimple_get_relevant_ref_binfo): Likewise.
5244 (gimple_fold_obj_type_ref_known_binfo): Likewise.
5245 (gimple_fold_obj_type_ref): Likewise.
5246 (fold_gimple_call): Simplify condition for folding virtual calls
5247 and call gimple_fold_obj_type_ref.
5248 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
5249 (gimple_fold_obj_type_ref_known_binfo): Likewise.
5250
5251 2010-05-13 Andreas Schwab <schwab@linux-m68k.org>
5252
5253 * config/rs6000/rs6000-protos.h
5254 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
5255 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
5256 (rs6000_debug_mode_dependent_address)
5257 (rs6000_mode_dependent_address_ptr): Likewise.
5258
5259 2010-05-13 Jakub Jelinek <jakub@redhat.com>
5260
5261 PR debug/43983
5262 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
5263 by SRA.
5264 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
5265 * tree-sra.c (create_access_replacement): Call unshare_expr before
5266 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
5267 * dwarf2out.c: Include tree-flow.h.
5268 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
5269 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
5270 Handle DW_OP_bit_piece.
5271 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
5272 construct_piece_list, adjust_piece_list): New functions.
5273 (add_var_loc_to_decl): Handle SRA optimized variables.
5274 Adjust for var_loc_note to loc field renaming.
5275 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
5276 in VAR_LOCATION note.
5277 (new_loc_descr_op_bit_piece): New function.
5278 (dw_sra_loc_expr): New function.
5279 (dw_loc_list): Use it. Don't handle the last range after the
5280 loop, handle it inside of the loop. Adjust for var_loc_note
5281 to loc field renaming.
5282 (add_location_or_const_value_attribute): Only special case
5283 single entry loc lists if loc is NOTE_P. Adjust for
5284 var_loc_note to loc field renaming.
5285 (dwarf2out_var_location): Don't set newloc->var_loc_note
5286 and newloc->next here.
5287
5288 2010-05-12 Jan Hubicka <jh@suse.cz>
5289
5290 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
5291 flag.
5292 * cgraph.h (cgraph_only_called_directly_p,
5293 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
5294 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
5295 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
5296 (assemble
5297 * ipa.c (cgraph_remove_unreachable_nodes): Use
5298 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
5299 flags.
5300 * tree-inline.c (copy_bb): Check address_taken flag.
5301 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
5302 externally_visible flag.
5303
5304 2010-05-12 Jason Merrill <jason@redhat.com>
5305
5306 PR bootstrap/44048
5307 PR target/44099
5308 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
5309 * sdbout.c (plain_type_1): Likewise.
5310 * dwarf2out.c (is_base_type): Likewise.
5311 (gen_type_die_with_usage): Likewise. Generate
5312 DW_TAG_unspecified_type for any LANG_TYPE.
5313
5314 2010-05-12 Jan Hubicka <jh@suse.cz>
5315
5316 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
5317 indrect edges too.
5318 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
5319 (cgraph_clone_edge): Update.
5320 (cgraph_node_remove_callees): Remove indirect calls too.
5321 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
5322 (cgraph_create_indirect_edge): Update prototype.
5323 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
5324 is_proper_for_analysis.
5325 (add_new_function, visited_nodes, function_insertion_hook_holder,
5326 get_local_reference_vars_info, mark_address_taken, mark_address,
5327 mark_load, mark_store, check_asm_memory_clobber, check_call,
5328 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
5329 (ipa_init): Do not initialize visited_nodes;
5330 function_insertion_hook_holder.
5331 (analyze_variable): Rewrite.
5332 (analyze_function): Rewrite.
5333 (copy_local_bitmap): Remove.
5334 (duplicate_node_dat): Do not duplicate local info.
5335 (generate_summary): Simplify to only walk cgraph.
5336 (write_node_summary_p, ipa_reference_write_summary,
5337 ipa_reference_read_summary): Remove.
5338 (propagate): Do not remove function insertion;
5339 generate summary.
5340 (pass_ipa_reference): NULLify summary handling fields.
5341 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
5342 (input_edge): Input ecf_flags.
5343 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
5344 (update_indirect_edges_after_inlining): Ignore edges with unknown
5345 param.
5346
5347 2010-05-12 Sriraman Tallam <tmsriram@google.com>
5348
5349 * implicit-zee.c: New file.
5350 * tree-pass.h (pass_implicit_zee): Declare.
5351 * passes.c (init_optimization_passes): Add zee pass.
5352 * common.opt (fzee): New flag.
5353 * timevar.def (TV_ZEE): Define.
5354 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
5355 and beyond.
5356 * Makefile.in (implicit-zee.o): Add new build file.
5357
5358 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
5359 Nathan Froyd <froydnj@codesourcery.com>
5360
5361 * c-common.c (sync_resolve_params): Remove write-only variable.
5362
5363 2010-05-12 Anatoly Sokolov <aesok@post.ru>
5364
5365 * target.h (struct gcc_target): Add mode_dependent_address_p field.
5366 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
5367 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
5368 * targhooks.c (default_mode_dependent_address_p): New function.
5369 * targhooks.h (default_mode_dependent_address_p): Declare function.
5370 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
5371 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
5372 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
5373 target hook. Change return type to bool.
5374 * recog.h (mode_dependent_address_p): Change return type to bool.
5375
5376 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
5377 Nathan Froyd <froydnj@codesourcery.com>
5378
5379 * tree-mudflap.c (build_function_type_0, build_function_type_1,
5380 build_function_type_2, build_function_type_3): Remove.
5381 (mudflap_init): Use build_function_type_list.
5382
5383 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
5384 Nathan Froyd <froydnj@codesourcery.com>
5385
5386 * coverage.c (build_fn_info_value): Call build_constructor instead of
5387 build_constructor_from_list.
5388 (build_ctr_info_value): Likewise.
5389 (build_gcov_info): Likewise.
5390
5391 2010-05-12 Nathan Froyd <froydnj@codesourcery.com>
5392
5393 * tree.c (build_constructor): Compute TREE_CONSTANT for the
5394 resultant constructor.
5395 (build_constructor_single): Don't set TREE_CONSTANT.
5396 (build_constructor_from_list): Don't compute TREE_CONSTANT.
5397
5398 2010-05-12 Jan Hubicka <jh@suse.cz>
5399
5400 * cgraph.h (struct varpool_node): Add aux.
5401 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
5402 * varpool.c (varpool_remove_node): Do not remove initializer.
5403 (varpool_reset_queue): Export.
5404 (varpool_finalize_decl): Volatile vars are forced to be output.
5405 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
5406 replaced decl.
5407 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
5408 process_references, varpool_can_remove_if_no_refs): New functions.
5409 (cgraph_remove_unreachable_nodes): Handle variables too.
5410
5411 2010-05-12 H.J. Lu <hongjiu.lu@intel.com>
5412
5413 PR target/44088
5414 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
5415
5416 2010-05-12 Jakub Jelinek <jakub@redhat.com>
5417
5418 PR middle-end/44085
5419 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
5420 change value of ORT_TASK.
5421 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
5422 (omp_notice_threadprivate_variable): New function.
5423 (omp_notice_variable): Call it for threadprivate variables.
5424 If enclosing ctx is a task, print enclosing task rather than
5425 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
5426 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
5427 if task has untied clause.
5428
5429 PR debug/42278
5430 * dwarf2out.c (base_type_die): Don't add name attribute here.
5431 (modified_type_die): Instead of sizetype use
5432 its underlying original type. If a DW_TAG_base_type doesn't
5433 have name added, add __unknown__.
5434 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
5435 always call force_type_die instead.
5436
5437 2010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
5438
5439 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
5440 for __stack_chk_guard.
5441
5442 2010-05-11 Jakub Jelinek <jakub@redhat.com>
5443
5444 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
5445 don't call start_source_file debug hook here...
5446 (finish_options): ... but here, after outputting predefined and
5447 command line defines and undefs.
5448
5449 PR middle-end/44071
5450 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
5451 no fallthru edge.
5452 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
5453 optimizing away empty bb with no successors, move over its
5454 footer chain to fallthru predecessor.
5455 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
5456 (rtl_split_edge): For asm goto call patch_jump_insn even if
5457 splitting fallthru edge.
5458
5459 PR c++/44059
5460 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
5461 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
5462 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
5463 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
5464 on DW.ref.* decls.
5465
5466 PR c++/44062
5467 * c-parser.c (c_parser_expression): Mark LHS of a comma
5468 expression as read if it is a decl, handled component or
5469 COMPOUND_EXPR with that on the RHS.
5470 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
5471 if it is a decl or handled component.
5472
5473 2010-05-11 Jan Hubicka <jh@suse.cz>
5474
5475 * lto-symtab.c (lto_symtab_free): New function.
5476 * lto-streamer.h (lto_symtab_free): Declare.
5477
5478 2010-05-11 Jan Hubicka <jh@suse.cz>
5479
5480 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
5481 that if function is needed it is reachable.
5482 (lto_output_node): See if it the function is reachable or referenced.
5483 (output_cgraph): Update call of lto_output_node.
5484 * lto-streamer.h (reachable_from_other_partition_p): Declare.
5485
5486 2010-05-11 Jan Hubicka <jh@suse.cz>
5487
5488 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
5489 Mark as used.
5490
5491 2010-05-11 Jan Hubicka <jh@suse.cz>
5492
5493 PR tree-optimize/44063
5494 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
5495 queue.
5496 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
5497 limits.
5498 (estimate_function_body_sizes): Compute sizes even when disregarding.
5499
5500 2010-05-11 Kai Tietz <kai.tietz@onevision.com>
5501
5502 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
5503
5504 2010-05-11 Jan Hubicka <jh@suse.cz>
5505
5506 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
5507 into every boundary.
5508
5509 2010-05-11 Jan Hubicka <jh@suse.cz>
5510
5511 * matrix-reorg.c (matrix_reorg): Rebuild edges.
5512
5513 2010-05-11 Jan Hubicka <jh@suse.cz>
5514
5515 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
5516 lto_streamer_cache_delete): Put nodes into heap.
5517 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
5518 heap.
5519
5520 2010-05-11 Jan Hubicka <jh@suse.cz>
5521
5522 * cgraphbuild.c (cgraph_rebuild_references): New.
5523 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
5524 out extern inlines.
5525 * cgraph.h (cgraph_rebuild_references): Declare.
5526 * tree-inline.c (tree_function_versioning): Use it.
5527 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
5528
5529 2010-05-11 Jan Hubicka <jh@suse.cz>
5530
5531 * cgraph.c: Include ipa-utils.h
5532 (cgraph_create_virtual_clone): Update references.
5533 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
5534
5535 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
5536
5537 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
5538 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
5539 cache size.
5540
5541 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
5542
5543 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
5544
5545 2010-05-11 Jakub Jelinek <jakub@redhat.com>
5546
5547 * gcc.c (execute): For -### don't quote arguments that
5548 contain just alphanumerics and _/-. characters.
5549 * doc/invoke.texi: Document that change for -###.
5550
5551 PR debug/44023
5552 * df-problems.c (struct dead_debug): Add to_rescan field.
5553 (dead_debug_init): Clear to_rescan field.
5554 (dead_debug_finish): Rescan all debug insns in to_rescan
5555 bitmap and free the bitmap.
5556 (dead_debug_insert_before): Instead of rescanning debug insns
5557 immediately queue their rescanning until dead_debug_finish.
5558 (df_note_bb_compute): After dead_debug_add do continue instead
5559 of break.
5560
5561 2010-05-10 Jakub Jelinek <jakub@redhat.com>
5562
5563 PR debug/44028
5564 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
5565 clear also INSN_REG_USE_LIST.
5566
5567 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5568
5569 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
5570
5571 2010-05-10 Jan Hubicka <jh@suse.cz>
5572
5573 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
5574 commited change.
5575
5576 2010-05-10 Jan Hubicka <jh@suse.cz>
5577
5578 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
5579 Allocate encoders.
5580 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
5581 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
5582 (lto_streamer_cache_create): Init alloc pool.
5583 (lto_streamer_cache_delete): Free alloc pool.
5584 * lto-streamer.h: Include alloc pool.
5585 (lto_streamer_cache_d): Use alloc pool.
5586 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
5587
5588 2010-05-10 Jan Hubicka <jh@suse.cz>
5589
5590 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
5591 * cgraphbuild.c: Include except.h
5592 (record_type_list, record_eh_tables): New function.
5593 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
5594
5595 2010-05-10 Jan Hubicka <jh@suse.cz>
5596
5597 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
5598 __frame_dummy_init_array_entry, force_to_data): Attribute as used
5599 rather than unused.
5600
5601 2010-05-10 Michael Matz <matz@suse.de>
5602
5603 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
5604 (can_reassociate_p): Use FLOAT_TYPE_P.
5605 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
5606 (vect_force_simple_reduction): ... this.
5607 * tree-parloops.c (gather_scalar_reductions): Use
5608 vect_force_simple_reduction.
5609 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
5610 vect_is_simple_reduction, add modify argument, if true rewrite
5611 "a-b" into "a+(-b)".
5612 (vect_is_simple_reduction, vect_force_simple_reduction): New
5613 functions.
5614 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
5615
5616 2010-05-10 H.J. Lu <hongjiu.lu@intel.com>
5617 Vladimir Makarov <vmakarov@redhat.com>
5618
5619 PR rtl-optimization/44012
5620 * ira-build.c (remove_unnecessary_allocnos): Nullify
5621 regno_allocno_map of the removed allocno.
5622
5623 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5624
5625 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
5626 to /dev/null.
5627 * configure: Regenerate.
5628
5629 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5630
5631 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
5632 unused.
5633 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
5634 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
5635 support in Sun ld.
5636 * configure: Regenerate.
5637
5638 2010-05-10 Richard Guenther <rguenther@suse.de>
5639
5640 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
5641 marked if the entry identifier is marked.
5642
5643 2010-05-10 Richard Guenther <rguenther@suse.de>
5644
5645 * c-common.c (struct c_common_attributes): Add fnspec attribute.
5646 (handle_fnspec_attribute): New function.
5647 * gimple.h (gimple_call_return_flags): Declare.
5648 (gimple_call_arg_flags): Likewise.
5649 * gimple.c (gimple_call_arg_flags): New function.
5650 (gimple_call_return_flags): Likewise.
5651 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
5652 New argument flags.
5653 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
5654 return value flags.
5655 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
5656 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
5657 main work to ...
5658 (make_heapvar_for): ... this new function.
5659 (handle_rhs_call): Handle fnspec attribute argument specifiers.
5660 (handle_lhs_call): Likewise.
5661 (find_func_aliases): Adjust.
5662
5663 2010-05-10 Richard Guenther <rguenther@suse.de>
5664
5665 PR tree-optimization/44050
5666 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
5667
5668 2010-05-10 Wei Guozhi <carrot@google.com>
5669
5670 PR target/42879
5671 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
5672
5673 2010-05-09 Joseph Myers <joseph@codesourcery.com>
5674
5675 PR c/10676
5676 * c-typeck.c (lookup_field): Take a type directly. Update
5677 recursive calls.
5678 (build_component_ref): Update call to lookup_field.
5679 (set_init_label): Use lookup_field to find initialized field.
5680 Handle returned list of fields like a sequence of designators.
5681
5682 2010-05-09 Richard Guenther <rguenther@suse.de>
5683
5684 PR middle-end/44024
5685 * fold-const.c (tree_single_nonzero_warnv_p): Properly
5686 handle &FUNCTION_DECL.
5687
5688 2010-05-09 Joseph Myers <joseph@codesourcery.com>
5689
5690 PR c/4784
5691 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
5692 structures and unions recursively.
5693 (detect_field_duplicates): Move duplicate detection with a hash to
5694 detect_field_duplicates_hash. Always use a hash if anonymous
5695 structures or unions are present.
5696 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
5697 give errors.
5698
5699 2010-05-09 H.J. Lu <hongjiu.lu@intel.com>
5700
5701 PR target/44046
5702 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
5703 detect Atom, Core 2 and Core i7.
5704
5705 2010-05-09 Richard Guenther <rguenther@suse.de>
5706
5707 * gcc.c (store_arg): Handle temporary file deletion for
5708 joined arguments.
5709
5710 2010-05-09 Richard Guenther <rguenther@suse.de>
5711
5712 PR middle-end/44043
5713 * ipa-inline.c (estimate_function_body_sizes): Return after
5714 disregarding inline limits.
5715
5716 2010-05-09 Richard Guenther <rguenther@suse.de>
5717
5718 * gcc.c (store_arg): Revert last change.
5719
5720 2010-05-08 Sandra Loosemore <sandra@codesourcery.com>
5721
5722 PR middle-end/28685
5723 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
5724 (optimize_ops_list): Call it.
5725
5726 2010-05-08 Richard Guenther <rguenther@suse.de>
5727
5728 PR tree-optimization/44030
5729 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
5730 NECESSARY flag if we propagate from a inserted expression.
5731
5732 2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
5733
5734 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
5735 domain types as equal if they are both PLACEHOLDER_EXPRs.
5736
5737 2010-05-08 Richard Guenther <rguenther@suse.de>
5738
5739 * lto-wrapper.c (run_gcc): Remove linker output from
5740 command line for LTRANS invocation.
5741
5742 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
5743
5744 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
5745 lto-macho as lto_binary_reader.
5746 * target.h (struct gcc_target): New hooks lto_start and lto_end.
5747 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
5748 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
5749 in lto_start and lto_end calls.
5750 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
5751 magic numbers.
5752 (scan_prog_file): Update is_elf_or_coff call.
5753 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
5754
5755 * collect2.c (main): Fix enum comparison.
5756
5757 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
5758 Add prototypes.
5759 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
5760 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
5761 and TARGET_ASM_LTO_END.
5762 * darwin.c: Include obstack.h and lto-streamer.h.
5763 (lto_section_names_offset, lto_section_names_obstack,
5764 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
5765 global variables.
5766 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
5767 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
5768 to a temporary file.
5769 (darwin_asm_lto_end): New function. Restore asm_out_file.
5770 (darwin_asm_named_section): For LTO sections, replace the name with
5771 the offset of the section name in a string table, and build this
5772 table.
5773 (darwin_file_start): Initialize global vars for LTO support.
5774 (darwin_file_end): If output to asm_out_file was redirected, append it
5775 to the proper asm_out_file here. Add the section names section.
5776
5777 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
5778
5779 * c-pragma.c (pending_weak_d, pending_weak): New.
5780 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
5781 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
5782 handle_pragma_weak): Update the uses of pending_weaks.
5783
5784 2010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5785
5786 PR documentation/44016
5787 * doc/standards.texi (Standards): Link to unversioned
5788 cxx0x_status.html page.
5789
5790 2010-05-07 Iain Sandoe <iains@gcc.gnu.org>
5791
5792 PR target/43708
5793 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
5794 in addition to TREE_USED, to avoid "set but unused" warnings.
5795
5796 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
5797
5798 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
5799 (is_loop_prefetching_profitable): Do not insert prefetches
5800 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
5801 times the prefetch ahead distance.
5802
5803 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
5804
5805 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
5806 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
5807 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
5808 the unroll_factor.
5809
5810 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
5811
5812 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
5813 a diagnostic info when the insn-to-mem ratio is too small.
5814
5815 2010-05-07 Richard Guenther <rguenther@suse.de>
5816
5817 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
5818 the linker plugin.
5819 (store_arg): Queue temp_filename for deletion instead of
5820 the whole argument.
5821
5822 2010-05-07 Richard Guenther <rguenther@suse.de>
5823
5824 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
5825 (run_gcc): Handle LTRANS phase invocation.
5826 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
5827
5828 2010-05-07 Jakub Jelinek <jakub@redhat.com>
5829
5830 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
5831 this is also meaningful on PARM_DECLs and RESULT_DECLs.
5832
5833 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5834
5835 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
5836
5837 2010-05-07 Richard Guenther <rguenther@suse.de>
5838
5839 PR tree-optimization/44020
5840 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
5841 code when PRE is not yet initialized.
5842
5843 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5844
5845 * config/mips/dbxmdebug.h: Remove.
5846 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
5847
5848 2010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
5849
5850 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
5851 with null pointer and also warn about ordered comparison of zero with
5852 pointer if -Wextra.
5853
5854 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
5855
5856 * graphite-blocking.c
5857 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
5858 * graphite-clast-to-gimple.c
5859 (clast_to_gcc_expression): Same.
5860 (precision_for_value): Same.
5861 (precision_for_interval): Same.
5862 (gcc_type_for_interval): Same.
5863 (graphite_create_new_guard): Same.
5864 (compute_bounds_for_level): Same.
5865 (graphite_create_new_loop_guard): Same.
5866 * graphite-interchange.c
5867 (build_linearized_memory_access): Same.
5868 (pdr_stride_in_loop): Same.
5869 (memory_strides_in_loop_1): Same.
5870 (memory_strides_in_loop): Same.
5871 (extend_scattering): Same.
5872 (psct_scattering_dim_for_loop_depth): Same.
5873 (pbb_number_of_iterations): Same.
5874 * graphite-poly.h
5875 (debug_iteration_domains): Same.
5876 * graphite-ppl.c
5877 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
5878 (ppl_set_inhomogeneous_gmp): Same.
5879 (ppl_strip_loop): Same.
5880 (ppl_lexico_compare_linear_expressions): Same.
5881 (ppl_read_polyhedron_matrix): Same.
5882 (ppl_max_for_le_pointset): Same.
5883 * graphite-ppl.h
5884 (ppl_read_polyhedron_matrix): Same.
5885 (tree_int_to_gmp): Same.
5886 (gmp_cst_to_tree): Same.
5887 (ppl_set_inhomogeneous): Same.
5888 (ppl_set_inhomogeneous_tree): Same.
5889 (ppl_set_coef): Same.
5890 (ppl_set_coef_tree): Same.
5891 * graphite-sese-to-poly.c
5892 (build_pbb_scattering_polyhedrons): Same.
5893 (build_scop_scattering): Same.
5894 (scan_tree_for_params_right_scev): Same.
5895 (scan_tree_for_params): Same.
5896 (find_params_in_bb): Same.
5897 (find_scop_parameters): Same.
5898 (add_upper_bounds_from_estimated_nit): Same.
5899 (build_loop_iteration_domains): Same.
5900 (add_condition_to_domain): Same.
5901 (pdr_add_memory_accesses): Same.
5902
5903 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
5904
5905 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
5906 CLooG's value_* macros to their respective mpz_* counterparts.
5907 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
5908 (graphite_create_new_loop_guard): Same.
5909 * graphite-interchange.c (build_linearized_memory_access): Same.
5910 (pdr_stride_in_loop): Same.
5911 (memory_strides_in_loop_1): Same.
5912 (1st_interchange_profitable_p): Same.
5913 * graphite-poly.c (extend_scattering): Same.
5914 (psct_scattering_dim_for_loop_depth): Same.
5915 (pbb_number_of_iterations): Same.
5916 (pbb_number_of_iterations_at_time): Same.
5917 * graphite-poly.h (new_1st_loop): Same.
5918 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
5919 (oppose_constraint): Same.
5920 (insert_constraint_into_matrix): Same.
5921 (ppl_set_inhomogeneous_gmp): Same.
5922 (ppl_set_coef_gmp): Same.
5923 (ppl_strip_loop): Same.
5924 (ppl_lexico_compare_linear_expressions): Same.
5925 (ppl_max_for_le_pointset): Same.
5926 (ppl_min_for_le_pointset): Same.
5927 (ppl_build_realtion): Same.
5928 * graphite-ppl.h (gmp_cst_to_tree): Same.
5929 (ppl_set_inhomogeneous): Same.
5930 (ppl_set_inhomogeneous_tree): Same.
5931 (ppl_set_coef): Same.
5932 (ppl_set_coef_tree): Same.
5933 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
5934 (build_scop_scattering): Same.
5935 (add_value_to_dim): Same.
5936 (scan_tree_for_params_right_scev): Same.
5937 (scan_tree_for_params_int): Same.
5938 (scan_tree_for_params): Same.
5939 (find_params_in_bb): Same.
5940 (find_scop_parameters): Same.
5941 (add_upper_bounds_from_estimated_nit): Same.
5942 (build_loop_iteration_domains): Same.
5943 (create_linear_expr_from_tree): Same.
5944 (add_condition_to_domain): Same.
5945 (pdr_add_memory_accesses): Same.
5946
5947 2010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
5948 Jason Merrill <jason@redhat.com>
5949
5950 * c-common.c (c_common_reswords): Add nullptr.
5951 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
5952 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
5953 (gen_type_die_with_usage): Likewise.
5954 * dbxout.c (dbxout_type): Likewise.
5955 * sdbout.c (plain_type_1): Likewise.
5956
5957 2010-05-06 Jason Merrill <jason@redhat.com>
5958
5959 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
5960 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
5961 ret appropriately.
5962 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
5963
5964 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
5965 stripping WITH_SIZE_EXPR.
5966 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
5967 change.
5968
5969 2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5970
5971 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
5972 list of obsolete configurations.
5973 Disabled check for obsolete configurations.
5974 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
5975 Removed support for previous versions.
5976 * config/mips/iris.h: Removed.
5977 * config/mips/iris5.h: Removed.
5978 * config/mips/iris6.h: Merged old iris.h contents.
5979 (TARGET_IRIX): Removed.
5980 (DRIVER_SELF_SPECS): Removed mabi=32.
5981 (IDENT_ASM_OP): Removed undef.
5982 (STARTFILE_SPEC): Removed mabi=32.
5983 (ENDFILE_SPEC): Likewise.
5984 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
5985 (MACHINE_TYPE): Update for IRIX 6.5.
5986 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
5987 TARGET_IRIX by TARGET_IRIX6.
5988 (mips_file_start): Likewise.
5989 (mips_output_external): Remove IRIX 5/6 O32 support.
5990 (mips_output_function_prologue): Likewise.
5991 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
5992 TARGET_IRIX6.
5993 (TARGET_CPU_CPP_BUILTINS): Likewise.
5994 (TARGET_IRIX): Removed.
5995 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
5996 (MULTILIB_DIRNAMES): Removed 32.
5997 (MULTILIB_OSDIRNAMES): Removed ../lib.
5998 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
5999 (Specific, mips-sgi-irix5): Document removal.
6000 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
6001 Remove references to older IRIX 6 releases and the O32 ABI.
6002
6003 2010-05-06 Jakub Jelinek <jakub@redhat.com>
6004
6005 PR bootstrap/43994
6006 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
6007 instead of DF_REF_REAL_REG.
6008
6009 2010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
6010
6011 PR target/43888
6012 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
6013 handling to still return true for x64 targets.
6014
6015 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
6016
6017 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
6018
6019 2010-05-06 Jan Hubicka <jh@suse.cz>
6020
6021 PR tree-optimization/43791
6022 * ipa-inline.c (update_caller_keys): Remove bogus
6023 disregard_inline_limits check.
6024
6025 2010-05-06 Michael Matz <matz@suse.de>
6026
6027 PR tree-optimization/43984
6028 * tree-ssa-pre.c (inserted_phi_names): Remove.
6029 (inserted_exprs): Change to bitmap.
6030 (create_expression_by_pieces): Set bits, don't append to vector.
6031 (insert_into_preds_of_block): Don't handle inserted_phi_names.
6032 (eliminate): Don't look at inserted_phi_names, remove deleted
6033 insns from inserted_exprs.
6034 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
6035 (init_pre, fini_pre): Allocate and free bitmaps.
6036 (execute_pre): Insert insns on edges before elimination.
6037
6038 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
6039
6040 * tree.c (initializer_zerop): Handle STRING_CST.
6041
6042 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
6043
6044 PR 40989
6045 * doc/invoke.texi (Wimplicit): Document as C only.
6046 * opts.c (common_handle_option): Add argument kind.
6047 (handle_option): Rename as read_cmdline_option. Factor out code to...
6048 (handle_option): ... here. New.
6049 (handle_options): Rename as read_cmdline_options.
6050 (decode_options): Update call.
6051 (set_option): Use option index instead of option pointer. Classify
6052 diagnostics correctly.
6053 (enable_warning_as_error): Call handle_option.
6054 * opts.h (set_option): Update declaration.
6055 (handle_option): Declare.
6056 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
6057 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
6058 * c-opts.c (set_Wimplicit): Delete.
6059 (c_family_lang_mask): New static constant.
6060 (c_common_handle_option): Add argument kind. Use handle_option
6061 instead of set_Wimplicit.
6062 (c_common_post_options): warn_implicit and warn_implicit_int
6063 are disabled by default.
6064 * c-common.c (warn_implicit): Do not define here.
6065 * c-common.h (warn_implicit): Do not declare here.
6066 (c_common_handle_option): Update declaration.
6067 * lto-opts.c (lto_reissue_options): Update call to set_option.
6068
6069 2010-05-06 Richard Guenther <rguenther@suse.de>
6070
6071 PR tree-optimization/43571
6072 * domwalk.c (walk_dominator_tree): Walk the dominator
6073 sons in more optimal order.
6074
6075 2010-05-06 Richard Guenther <rguenther@suse.de>
6076
6077 PR tree-optimization/43934
6078 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
6079 (stmt_cost): Likewise.
6080 (extract_true_false_args_from_phi): New helper.
6081 (determine_max_movement): For PHI nodes verify we can hoist them
6082 and compute their cost.
6083 (determine_invariantness_stmt): Handle PHI nodes.
6084 (move_computations_stmt): Likewise. Hoist PHI nodes in
6085 if-converted form using COND_EXPRs.
6086 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
6087 (tree_ssa_lim): Likewise.
6088 * tree-flow.h (tree_ssa_lim): Adjust prototype.
6089 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
6090
6091 2010-05-06 Richard Guenther <rguenther@suse.de>
6092
6093 PR tree-optimization/43987
6094 * tree-ssa-structalias.c (could_have_pointers): For possibly
6095 address-taken variables force pointers to be recorded.
6096 (create_variable_info_for_1): Likewise.
6097 (push_fields_onto_fieldstack): Pass in wheter all fields
6098 must have pointers.
6099 (find_func_aliases): Query types instead of vars whether
6100 they contain pointers where appropriate.
6101
6102 2010-05-06 Jan Hubicka <jh@suse.cz>
6103
6104 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
6105 (record_reference, mark_address, mark_load, mark_store): Record
6106 references.
6107 (record_references_in_initializer): Update call of record_references.
6108 (rebuild_cgraph_edges): Remove all references before rebuiding.
6109 * cgraph.c (cgraph_create_node): Clear ref list.
6110 (cgraph_remove_node): Remove references.
6111 (dump_cgraph_node): Dump references.
6112 (cgraph_clone_node): Clone references.
6113 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
6114 (struct cgraph_node, varpool_node): Add ref_lst.
6115 * ipa-ref.c: New file.
6116 * ipa-ref.h: New file.
6117 * ipa-ref-inline.h: New file.
6118 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
6119 (referenced_from_other_partition_p): New function.
6120 (lto_output_varpool_node): Take set arugment; call
6121 referenced_from_other_partition.
6122 (lto_output_ref): New.
6123 (add_references): New.
6124 (output_refs): New.
6125 (output_cgraph): Compute boundary based on references; output refs.
6126 (output_varpool): Accept cgraph_node_set argument.
6127 (input_ref): New.
6128 (input_refs): New.
6129 (input_cgraph): Call input_refs.
6130 * lto-section-in.c (lto_section_name): Add refs.
6131 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
6132 (ipa-ref.o): New file.
6133 * varpool.c (varpool_node): Clear ipa ref list.
6134 (varpool_remove_node): Remove references.
6135 (dump_varpool_node): Dump references.
6136 (varpool_assemble_decl): Only compile finalized ones.
6137 (varpool_extra_name_alias): Initialize ref list.
6138 * lto-streamer.c (lto-get_section_name): Add .refs section.
6139 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
6140 (referenced_from_other_partition_p): Declared.
6141
6142 2010-05-06 Ira Rosen <irar@il.ibm.com>
6143
6144 PR tree-optimization/43901
6145 * tree-vect-stmts.c (vectorizable_call): Assert that vector
6146 type is not NULL if it's transformation phase, and return
6147 FALSE if it's analysis.
6148 (vectorizable_conversion, vectorizable_operation,
6149 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
6150
6151 2010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
6152
6153 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
6154 Delete.
6155 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
6156 New define.
6157 * config/mips/mips-protos.h
6158 (mips_small_register_classes_for_mode_p): Delete prototype.
6159
6160 2010-05-06 Bernd Schmidt <bernds@codesourcery.com>
6161
6162 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
6163 * config/arm/arm.c (multiple_operation_profitable_p,
6164 compute_offset_order): New static functions.
6165 (load_multiple_sequence, store_multiple_sequence): Use them.
6166 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
6167 memory offsets, not register numbers.
6168 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
6169
6170 2010-05-05 Steven Bosscher <steven@gcc.gnu.org>
6171
6172 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
6173 (get_pending_sizes, put_pending_size, put_pending_sizes):
6174 Update the uses of pending_sizes.
6175 * c-decl.c (store_parm_decls): Likewise.
6176 * c-tree.h (struct c_arg_info): Likewise.
6177 * tree.h: Update the prototype for get_pending_sizes and
6178 put_pending_sizes.
6179
6180 2010-05-05 Jason Merrill <jason@redhat.com>
6181
6182 PR debug/43370
6183 * c-common.c (handle_aligned_attribute): Respect
6184 ATTR_FLAG_TYPE_IN_PLACE.
6185
6186 PR testsuite/43758
6187 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
6188 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
6189 (TARGET_INITIALIZER): Use it.
6190 * c-common.c (attribute_takes_identifier_p): Call it.
6191 * c-common.h: Update prototype.
6192 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
6193 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
6194
6195 2010-05-05 Jakub Jelinek <jakub@redhat.com>
6196
6197 PR debug/43950
6198 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
6199 DW_ID_down_case for Fortran compilation units.
6200
6201 2010-05-05 Jan Hubicka <jh@suse.cz>
6202
6203 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
6204 handle aliases.
6205
6206 2010-05-05 Eric Botcazou <ebotcazou@adacore.com>
6207
6208 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
6209 a variable-sized RESULT_DECL.
6210
6211 2010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
6212
6213 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
6214
6215 2010-05-05 Jason Merrill <jason@redhat.com>
6216
6217 PR c++/43787
6218 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
6219 returns GS_OK.
6220 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
6221
6222 2010-05-05 Alexandre Oliva <aoliva@redhat.com>
6223 Jakub Jelinek <jakub@redhat.com>
6224
6225 PR debug/43478
6226 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
6227 (dead_debug_init, dead_debug_finish): New functions.
6228 (dead_debug_add, dead_debug_insert_before): Likewise.
6229 (df_note_bb_compute): Initialize a dead_debug object, add dead
6230 debug uses to it, insert debug bind insns before death insns,
6231 reset debug insns that refer to pending uses at the end.
6232 * rtl.h (make_debug_expr_from_rtl): New prototype.
6233 * varasm.c (make_debug_expr_from_rtl): New function.
6234
6235 2010-05-05 Jan Hubicka <jh@suse.cz>
6236
6237 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
6238 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
6239 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
6240 lto_varpool_encoder_deref, lto_varpool_encoder_size,
6241 lto_varpool_encoder_encode_initializer_p,
6242 lto_set_varpool_encoder_encode_initializer): New functions.
6243 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
6244 call output_varpool.
6245 (input_varpool_node): Do not always set analyzed.
6246 (input_cgraph_1): Return vector of cgraph nodes.
6247 (input_varpool_1): Return vector of varpools.
6248 (input_cgraph): Free the vectors.
6249 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6250 output only initializers needed.
6251 (lto_output): Only call output_cgraph.
6252 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
6253 * lto-section-out.c (lto_new_out_decl_state): Initialize
6254 state->varpool_node_encoder.
6255 * lto-streamer.h (lto_varpool_encoder_d): New.
6256 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
6257 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
6258 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
6259 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
6260 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
6261 Declare.
6262 (output_varpool, input_varpool): Remove declarations.
6263
6264 2010-05-05 Jan Hubicka <jh@suse.cz>
6265
6266 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
6267 with body can prevail.
6268
6269 2010-05-05 Jan Hubicka <jh@suse.cz>
6270
6271 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
6272 size.
6273
6274 2010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
6275
6276 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
6277
6278 * gengtype.h (erro_at_line): Constify pos argument.
6279
6280 * gengtype.c: Include hashtab.h.
6281 (enum gc_used): Document GC_MAYBE_POINTED_TO.
6282 (error_at_line): Constify pos argument.
6283 (do_typedef): Initialize p->opt field.
6284 (get_file_gtfilename): Fix comment typo.
6285 (struct walk_type_data): Constify line field.
6286 (get_output_file_for_structure): New function.
6287 (write_local_func_for_structure): Constify orig_s argument.
6288 Use get_output_file_for_structure.
6289 (write_func_for_structure): Use get_output_file_for_structure.
6290 (INDENT): New define.
6291 (dump_pair, dump_type, dump_type_list, dump_typekind)
6292 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
6293 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
6294 functions.
6295 (seen_types): New variable.
6296 (main): New variable do_dump. Process "-d" command line option.
6297 Call dump_everything if dump requested.
6298
6299 2010-05-05 Jakub Jelinek <jakub@redhat.com>
6300
6301 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
6302 in a temporary instead of invoking the macro multiple times.
6303 (track_expr_p): Likewise.
6304
6305 2010-05-04 Neil Vachharajani <nvachhar@google.com>
6306
6307 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
6308 per new semantics.
6309 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
6310 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
6311 conditions for printing notes.
6312 * common.opt (-Wcoverage-mismatch): Allow negative, default to
6313 true, update documentation.
6314 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
6315
6316 2010-05-04 Jakub Jelinek <jakub@redhat.com>
6317
6318 PR c/43981
6319 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
6320 on dimen.
6321
6322 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
6323
6324 PR target/43799
6325 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
6326 (*sse_prologue_save_insn1): Likewise.
6327 (SSE prologue save splitter): Likewise.
6328
6329 2010-05-04 Eric Botcazou <ebotcazou@adacore.com>
6330
6331 * tree.c (free_lang_data_in_one_sizepos): New inline function.
6332 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
6333 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
6334 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
6335 all decls. Call it on DECL_FIELD_OFFSET of fields.
6336 (find_decls_types_r): Follow DECL_VALUE_EXPR.
6337 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
6338
6339 2010-05-04 Martin Jambor <mjambor@suse.cz>
6340
6341 * tree-sra.c (build_access_from_expr_1): The first parameter type
6342 changed to simple tree.
6343 (build_access_from_expr): Likewise, gsi parameter was eliminated.
6344 (scan_assign_result): Renamed to assignment_mod_result, enum elements
6345 renamed as well.
6346 (build_accesses_from_assign): Removed all parameters except for a
6347 simple gimple statement. Now returns a simple bool.
6348 (scan_function): All non-analysis parts moved to separate functions
6349 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
6350 parameters and updated both callers.
6351 (sra_modify_expr): Removed parameter data.
6352 (sra_modify_function_body): New function.
6353 (perform_intra_sra): Call sra_modify_function_body to modify the
6354 function body.
6355 (replace_removed_params_ssa_names): Parameter data changed into
6356 adjustments vector.
6357 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
6358 changed the parameter dont_convert to convert with the opposite
6359 meaning.
6360 (sra_ipa_modify_assign): Parameter data changed into adjustments
6361 vector, return value changed to bool.
6362 (ipa_sra_modify_function_body): New function.
6363 (sra_ipa_reset_debug_stmts): Updated a comment.
6364 (modify_function): Use ipa_sra_modify_function_body to modify function
6365 body.
6366
6367 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
6368
6369 PR middle-end/43671
6370 * alias.c (true_dependence): Handle the same VALUE in x and mem.
6371 (canon_true_dependence): Likewise.
6372 (write_dependence_p): Likewise.
6373
6374 2010-05-04 Jan Hubicka <jh@suse.cz>
6375
6376 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
6377 * cgraphbuild.c: Include ipa-utils.h
6378 (record_reference_ctx): New struct.
6379 (record_reference): Simplify to work on initializers; not statements.
6380 (mark_address, mark_load, mark_store): New.
6381 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
6382 walk PHI nodes too.
6383 (record_references_in_initializer): Update use of record_reference.
6384 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
6385 walk PHI nodes too.
6386
6387 2010-05-04 Jan Hubicka <jh@suse.cz>
6388
6389 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
6390 node will be removed anyway.
6391 (lto_varpool_replace_node): Allow also unanalyzed nodes;
6392 relink aliases of node into prevailing node.
6393 * varpool.c (varpool_remove_node): Remove aliases properly;
6394 when removing node, remove all its aliases too; remove DECL_INITIAL
6395 of removed node; ggc_free the varpool node.
6396
6397 2010-05-04 Richard Guenther <rguenther@suse.de>
6398
6399 PR tree-optimization/43879
6400 * tree-ssa-structalias.c (alias_get_name): Use
6401 DECL_ASSEMBLER_NAME if available.
6402 (create_function_info_for): Return the varinfo node.
6403 (ipa_pta_execute): Associate same-body aliases and extra names
6404 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
6405
6406 2010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
6407
6408 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
6409
6410 2010-05-04 Mikael Pettersson <mikpe@it.uu.se>
6411
6412 PR bootstrap/43964
6413 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
6414 only if HONOR_REG_ALLOC_ORDER is not defined.
6415
6416 2010-05-04 Richard Guenther <rguenther@suse.de>
6417
6418 PR tree-optimization/43949
6419 * tree-vrp.c (extract_range_from_binary_expr): Only handle
6420 TRUNC_MOD_EXPR.
6421
6422 2010-04-26 Jason Merrill <jason@redhat.com>
6423
6424 * c.opt (-fstrict-enums): New.
6425 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
6426
6427 2010-05-03 David Ung <davidu@mips.com>
6428 James E. Wilson <wilson@codesourcery.com>
6429
6430 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
6431 emit the trap instruction before the divide for TUNE_74K.
6432
6433 2010-05-03 Steven Bosscher <steven@gcc.gnu.org>
6434
6435 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
6436 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
6437 based on the above, for new target hook.
6438
6439 * hooks.c (hook_bool_mode_true): New generic hook.
6440 * hooks.h (hook_bool_mode_true): Add prototype.
6441
6442 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
6443 target hook.
6444 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
6445 target hook, set to hook_bool_mode_false.
6446 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
6447 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
6448 with targetm.small_register_classes_for_mode_p.
6449 (find_reusable_reload): Likewise.
6450 (combine_reloads): Likewise.
6451 * reload1.c (reload_as_needed): Likewise.
6452 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
6453 * ifcvt.c (noce_process_if_block, check_cond_move_block,
6454 dead_or_predicable): Likewise.
6455 * regmove.c (optimize_reg_copy_1): Likewise.
6456 * calls.c (prepare_call_address): Likewise.
6457 (precompute_register_parameters): Likewise.
6458
6459 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
6460 hook definition.
6461 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
6462 implementation of the hook that considers all register classes
6463 small except for SH64.
6464 (sh_override_options): Use the new hook.
6465 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
6466 Add prototype.
6467
6468 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
6469 hook definition.
6470 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
6471 implementation of the hook that considers all register classes
6472 small for THUMB1.
6473 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
6474 Add prototype.
6475
6476 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
6477 hook definition.
6478 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
6479 implementation of the hook that considers all register classes
6480 small for MIPS16.
6481 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
6482 Add prototype.
6483
6484 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
6485 hook definition.
6486 * config/m32c/m32c.h: Likewise.
6487 * config/pdp11/pdp11.h: Likewise.
6488 * config/avr/avr.h: Likewise.
6489 * config/xtensa/xtensa.h: Likewise.
6490 * config/m68hc11/m68hc11.h: Likewise.
6491 * config/mn10300/mn10300.h: Likewise.
6492 * config/mcore/mcore.h: Likewise.
6493 * config/h8300/h8300.h: Likewise.
6494 * config/bfin/bfin.h: Likewise.
6495
6496 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
6497 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
6498
6499 2010-05-03 Anatoly Sokolov <aesok@post.ru>
6500
6501 * double-int.h (tree_to_double_int): Remove macro.
6502 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
6503 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
6504 (tree_to_double_int): New function.
6505 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
6506 Move ...
6507 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
6508
6509 2010-05-03 Richard Guenther <rguenther@suse.de>
6510
6511 PR tree-optimization/43971
6512 * tree-ssa-structalias.c (get_constraint_for_1): Fix
6513 constraints in the !flag_delete_null_pointer_checks case.
6514
6515 2010-05-03 Jakub Jelinek <jakub@redhat.com>
6516
6517 PR debug/43972
6518 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
6519 result mode matches original rtl mode.
6520
6521 2010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
6522
6523 PR target/43888
6524 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
6525
6526 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
6527
6528 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
6529 when processing flag options.
6530
6531 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
6532
6533 * gcov-iov.c (main): Change format string placeholder
6534 from %#08x to 0x%08x.
6535 * genchecksum.c (dosum): Change format string placeholder
6536 from %#02x to 0x%02x.
6537
6538 2010-05-02 Richard Guenther <rguenther@suse.de>
6539
6540 PR tree-optimization/43879
6541 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
6542
6543 2010-05-02 Bruno Haible <bruno@clisp.org>
6544
6545 * doc/extend.texi (Function Attributes): Fix a typo.
6546
6547 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
6548
6549 Revert:
6550 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
6551 placeholder from 0x%x to %#x.
6552 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
6553 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
6554 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
6555 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
6556 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
6557 * config/i386/i386.c (ix86_target_string): Ditto.
6558 * config/i386/i386.c (output_pic_addr_const): Ditto.
6559 (print_operand): Ditto.
6560
6561 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
6562
6563 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
6564 placeholder from 0x%x to %#x.
6565 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
6566 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
6567 (ASM_OUTPUT_DEBUG_DATA): Ditto.
6568 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
6569 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
6570 * optc-gen.awk: Ditto.
6571 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
6572 (HOST_WIDE_INT_PRINT_HEX): Ditto.
6573 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
6574 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
6575
6576 2010-05-01 Anatoly Sokolov <aesok@post.ru>
6577
6578 * target.h (struct calls): Add function_value_regno_p field.
6579 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
6580 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
6581 * targhooks.c (default_function_value_regno_p): New function.
6582 * targhooks.h (default_function_value_regno_p): Declare function.
6583 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
6584 * builtins.c. (apply_result_size): (Ditto.).
6585 * combine.c. (likely_spilled_retval_p): (Ditto.).
6586 * mode-switching.c. Include 'target.h'.
6587 (create_pre_exit): Use function_value_regno_p hook.
6588 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
6589 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
6590 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
6591
6592 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
6593 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
6594 (ix86_function_value_regno_p): Declare as static, change argument
6595 type to const unsigned int.
6596 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
6597
6598 2010-05-01 Richard Guenther <rguenther@suse.de>
6599
6600 PR tree-optimization/43949
6601 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
6602 types.
6603 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
6604
6605 2010-05-01 Anatoly Sokolov <aesok@post.ru>
6606
6607 * rtl.h (CONST_DOUBLE_P): Define.
6608 (rtx_to_double_int): Declare.
6609 * emit-rtl.c (rtx_to_double_int): New function.
6610 * dwarf2out.c (insert_double): New function.
6611 (loc_descriptor, add_const_value_attribute): Clean up, use
6612 rtx_to_double_int and insert_double functions.
6613
6614 2010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
6615
6616 * doc/extend.texi (Inline): Add missing return keyword to examples.
6617 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
6618 "command-line".
6619
6620 2010-04-30 Eric Botcazou <ebotcazou@adacore.com>
6621
6622 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
6623 the variable part of the offset as well. Use highest_pow2_factor for
6624 all alignment checks.
6625
6626 2010-04-30 Richard Guenther <rguenther@suse.de>
6627
6628 PR tree-optimization/43879
6629 * tree-ssa-structalias.c (type_could_have_pointers): Functions
6630 can have pointers.
6631
6632 2010-04-30 Jan Hubicka <jh@suse.cz>
6633
6634 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
6635 varpool.
6636 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
6637
6638 2010-04-30 Jan Hubicka <jh@suse.cz>
6639
6640 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
6641 New.
6642 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
6643 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
6644 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
6645 cgraph_node_set_needs_ltrans_p): Remove.
6646
6647 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
6648
6649 * sdbout.c: Include vec.h, do not include varray.h.
6650 (deferred_global_decls, sdbout_global_decl,
6651 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
6652 * toplev.c: Do not include varray.h.
6653 (dump_memory_report): Do not dump VARRAY statistics.
6654 * gengtype.c (open_base_file): Ignore varray.h.
6655 * Makefile.in: Update for abovementioned changes.
6656 Remove all traces of varray.c and varray.h.
6657 * varray.c: Remove file.
6658 * varray.h: Remove file.
6659
6660 2010-04-30 Jan Hubicka <jh@suse.cz>
6661
6662 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
6663 references.
6664
6665 2010-04-30 Jan Hubicka <jh@suse.cz>
6666
6667 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
6668 needed.
6669
6670 2010-04-30 Richard Guenther <rguenther@suse.de>
6671
6672 * tree-ssa-structalias.c (get_constraint_for_1): Generate
6673 constraints for CONSTRUCTOR.
6674
6675 2010-04-30 Richard Guenther <rguenther@suse.de>
6676
6677 PR lto/43946
6678 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
6679 first after all lowering passes.
6680
6681 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
6682
6683 * toplev.c: Include varray.h for statistics dumping.
6684 * tree.h: Do not declare varray_head_tag.
6685 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
6686 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
6687 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
6688 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
6689 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
6690 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
6691 c-common.c, c-common.h, reg-stack.c, basic-block.h,
6692 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
6693 include varray.h.
6694 * Makefile.in: Update for abovementioned changes.
6695
6696 2010-04-30 Jakub Jelinek <jakub@redhat.com>
6697
6698 PR debug/43942
6699 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
6700
6701 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
6702
6703 * config/picochip/picochip.c (picochip_legitimize_address): Define.
6704 Use this function to do machine-specific conversion.
6705 (picochip_legitimize_reload_address): Likewise.
6706 (picochip_legitimate_address_p): Check valid base register only if
6707 strict.
6708 (picochip_check_conditional_copy): Check for modw only if opnd is
6709 register.
6710 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
6711 to call the function in c.
6712 * config/picochip/picochip-protos.h
6713 (picochip_legitimize_reload_address): Define.
6714 * config/picochip/picochip.md (supported_compare1): Define.
6715
6716 2010-04-30 Jan Hubicka <jh@suse.cz>
6717
6718 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
6719 (cgraph_global_info): Remove inlined.
6720 (LTO_cgraph_tag_names): Remove.
6721 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
6722 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
6723 simplify cgraph tags and document.
6724 (lto_output_node): Use only LTO_cgraph_unavail_node and
6725 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
6726 for_functions_valid, global info, process and output flags.
6727 (input_overwrite_node): Initialize estimated stack size and
6728 estimated growth. Do not read flags we no longer store.
6729 (input_node): Likewise do not read info no longer stored.
6730 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
6731 flag.
6732
6733 2010-04-30 Richard Guenther <rguenther@suse.de>
6734
6735 PR tree-optimization/43879
6736 * tree-ssa-structalias.c (get_constraint_for_1): Properly
6737 handle non-zero initializers.
6738
6739 2010-04-30 Richard Guenther <rguenther@suse.de>
6740
6741 * builtins.c (fold_builtin_1): Delete free (0).
6742
6743 2010-04-29 Jan Hubicka <jh@suse.cz>
6744
6745 * gengtype.c (open_base_files): Add lto-streamer.h
6746 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
6747 (pass_ipa_cp): GGC collect.
6748 * toplev. (compile_file): Do not output symbols.
6749 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
6750 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
6751 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
6752 * lto-section-in.c: Include ggc.h
6753 (lto_new_in_decl_state): Alloc in GGC.
6754 (lto_delete_in_decl_state): Likewise.
6755 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
6756 Collect.
6757
6758 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
6759
6760 PR target/42895
6761 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
6762 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
6763 (HONOR_REG_ALLOC_ORDER): Describe new macro.
6764 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
6765 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
6766 account only if HONOR_REG_ALLOC_ORDER is not defined.
6767 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
6768 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
6769
6770 2010-04-29 Jon Grant <04@jguk.org>
6771
6772 * collect2.c (vflag): Change type from int to bool.
6773 (debug): Likewise.
6774 (helpflag): New global bool.
6775 (main): Set vflag and debug with boolean, not integer truth values.
6776 Accept new "--help" option and output usage text if found.
6777 * collect2.h (vflag): Update prototype.
6778 (debug): Likewise.
6779
6780 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
6781
6782 PR bootstrap/43936
6783 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
6784
6785 2010-04-29 Richard Guenther <rguenther@suse.de>
6786
6787 PR bootstrap/43935
6788 * plugin.h (invoke_plugin_callbacks): Annotate arguments
6789 with ATTRIBUTE_UNUSED.
6790
6791 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
6792
6793 PR target/43921
6794 * config/i386/i386.c (get_some_local_dynamic_name): Replace
6795 INSN_P with NONDEBUG_INSN_P.
6796 (distance_non_agu_define): Likewise.
6797 (distance_agu_use): Likewise.
6798
6799 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
6800
6801 From Dominique d'Humieres <dominiq@lps.ens.fr>
6802 PR bootstrap/43858
6803 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
6804 test_set.
6805
6806 2010-04-29 Brian Hackett <bhackett1024@gmail.com>
6807
6808 * plugin.h (invoke_plugin_callbacks): New inline function.
6809 * plugin.c (flag_plugin_added): New global flag.
6810 (add_new_plugin): Initialize above flag.
6811 (invoke_plugin_callbacks): Rename to ...
6812 (invoke_plugin_callbacks_full): ... this.
6813
6814 2010-04-28 Jan Hubicka <jh@suse.cz>
6815
6816 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
6817 (lto_varpool_replace_node): New.
6818 (lto_symtab_resolve_symbols): Resolve varpool nodes.
6819 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
6820 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
6821 * cgraph.h (varpool_node_ptr): New type.
6822 (varpool_node_ptr): New vector.
6823 (varpool_node_set_def): New structure.
6824 (varpool_node_set): New type.
6825 (varpool_node_set): New vector.
6826 (varpool_node_set_element_def): New structure.
6827 (varpool_node_set_element, const_varpool_node_set_element): New types.
6828 (varpool_node_set_iterator): New type.
6829 (varpool_node): Add prev pointers, add used_from_other_partition,
6830 in_other_partition.
6831 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
6832 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
6833 varpool_get_node, varpool_remove_node): Declare.
6834 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
6835 varpool_node_set_size): New inlines.
6836 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
6837 * tree-pass.h (varpool_node_set_def): Forward declare.
6838 (ipa_opt_pass_d): Summary writting takes vnode sets too.
6839 (ipa_write_optimization_summaries): Update prototype.
6840 * ipa-cp.c (ipcp_write_summary): Update.
6841 * ipa-reference.c (ipa_reference_write_summary): Update.
6842 * lto-cgraph.c (lto_output_varpool_node): New static function.
6843 (output_varpool): New function.
6844 (input_varpool_node): New static function.
6845 (input_varpool_1): New function.
6846 (input_cgraph): Input varpool.
6847 * ipa-pure-const.c (pure_const_write_summary): Update.
6848 * lto-streamer-out.c (lto_output): Update, output varpool too.
6849 (write_global_stream): Kill WPA hack.
6850 (produce_asm_for_decls): Update.
6851 (output_alias_pair_p): Handle variables.
6852 (output_unreferenced_globals): Output only needed partition of varpool.
6853 * ipa-inline.c (inline_write_summary): Update.
6854 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
6855 cgraph.
6856 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
6857 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
6858 varpool_node_set_new, varpool_node_set_add,
6859 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
6860 debug_varpool_node_set): New functions.
6861 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
6862 (execute_one_pass): Process new decls too.
6863 (ipa_write_summaries_2): Pass around vsets.
6864 (ipa_write_summaries_1): Likewise.
6865 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
6866 to add.
6867 (ipa_write_optimization_summaries_1): Pass around vsets.
6868 (ipa_write_optimization_summaries): Likewise.
6869 * varpool.c (varpool_get_node): New.
6870 (varpool_node): Update doubly linked lists.
6871 (varpool_remove_node): New.
6872 (dump_varpool_node): More dumping.
6873 (varpool_enqueue_needed_node): Update doubly linked lists.
6874 (decide_is_variable_needed): Kill ltrans hack.
6875 (varpool_finalize_decl): Kill lto hack.
6876 (varpool_assemble_decl): Skip decls in other partitions.
6877 (varpool_assemble_pending_decls): Update doubly linkes lists.
6878 (varpool_empty_needed_queue): Likewise.
6879 (varpool_extra_name_alias): Likewise.
6880 * lto-streamer.c (lto_get_section_name): Add vars section.
6881 * lto-streamer.h (lto_section_type): Update.
6882 (output_varpool, input_varpool): Declare.
6883
6884 2010-04-28 Mike Stump <mikestump@comcast.net>
6885
6886 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
6887
6888 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
6889
6890 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
6891 record or union type with RECORD_OR_UNION_TYPE_P predicate.
6892 (lto_input_ts_type_tree_pointers): Likewise.
6893 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
6894 (lto_output_ts_type_tree_pointers): Likewise.
6895
6896 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
6897
6898 Uniquization of constants at the Tree level
6899 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
6900 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
6901 bit to the end.
6902 (tree_output_constant_def): Declare.
6903 * gimplify.c (gimplify_init_constructor): When using block copy, first
6904 uniquize the constant constructor on the RHS.
6905 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
6906 DECL_IN_CONSTANT_POOL flag.
6907 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
6908 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
6909 constant pool.
6910 (assemble_variable): Deal with symbols belonging to the tree constant
6911 pool.
6912 (get_constant_section): Add ALIGN parameter and simplify.
6913 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
6914 (assemble_constant_contents): Use the expression of the VAR_DECL.
6915 (output_constant_def_contents): Use the alignment of the VAR_DECL.
6916 (tree_output_constant_def): New global function.
6917 (mark_constant): Use the expression of the VAR_DECL.
6918 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
6919 its expression.
6920 (output_object_block): Likewise and assemble the expression.
6921
6922 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
6923
6924 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
6925 hash_tree, eq_tree): New tree hash table.
6926 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
6927 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
6928 lto_orig_address_remove): Reimplement.
6929
6930 2010-04-28 Xinliang David Li <davidxl@google.com>
6931
6932 PR c/42643
6933 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
6934 (compute_uninit_opnds_pos): New function.
6935 (is_non_loop_exit_postdominating): New function.
6936 (compute_control_dep_chain): New function.
6937 (find_pdom): New function.
6938 (convert_control_dep_chain_into_preds): New function.
6939 (find_predicates): New function.
6940 (find_control_equiv_block): New function.
6941 (collect_phi_def_edges): New function.
6942 (find_def_preds): New function.
6943 (find_dom): New function.
6944 (dump_predicates): New function.
6945 (get_cmp_code): New function.
6946 (is_value_included_in): New function.
6947 (find_matching_predicate_in_rest_chains): New function.
6948 (use_pred_not_overlap_with_undef_path_pred): New function.
6949 (is_use_properly_guarded): New function.
6950 (normalize_cond_1): New function.
6951 (is_and_or_or): New function.
6952 (normalize_cond): New function.
6953 (is_gcond_subset_of): New function.
6954 (is_subset_of_any): New function.
6955 (is_or_set_subset_of): New function.
6956 (is_and_set_subset_of): New function.
6957 (is_norm_cond_subset_of): New function.
6958 (is_pred_expr_subset_of): New function.
6959 (is_pred_chain_subset_of): New function.
6960 (is_included_in): New function.
6961 (is_superset_of): New function.
6962 (find_uninit_use): New function.
6963 (warn_uninitialized_phi): New function.
6964 (compute_possibly_undefined_names): New function.
6965 (ssa_undefined_value_p): New function.
6966 (execute_late_warn_uninitialized): New function.
6967 * tree-ssa.c (ssa_undefined_value_p): Removed.
6968 (warn_uninit): Changed to extern.
6969 (warn_uninitialized_phi): Removed.
6970 (warn_uninitialized_vars): Changed to extern.
6971 (execute_late_warn_uninitialized): Removed
6972 * tree-flow.h: Add new prototypes.
6973 * timevar.def: Add new time variable.
6974 * Makefile.in: Add new build file.
6975
6976 2010-04-28 Uros Bizjak <ubizjak@gmail.com>
6977
6978 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
6979 type if available.
6980
6981 2010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6982
6983 PR target/22224
6984 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
6985
6986 2010-04-28 Martin Jambor <mjambor@suse.cz>
6987
6988 * cgraph.h (struct cgraph_node): New field indirect_calls.
6989 (struct cgraph_indirect_call_info): New type.
6990 (struct cgraph_edge): Removed field indirect_call. New fields
6991 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
6992 (cgraph_create_indirect_edge): Declare.
6993 (cgraph_make_edge_direct): Likewise.
6994 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
6995 * ipa-prop.h (struct ipa_param_call_note): Removed.
6996 (struct ipa_node_params): Removed field param_calls.
6997 (ipa_create_all_structures_for_iinln): Declare.
6998 * cgraph.c: Described indirect edges and uids in initial comment.
6999 (cgraph_add_edge_to_call_site_hash): New function.
7000 (cgraph_edge): Search also among the indirect edges, use
7001 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
7002 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
7003 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
7004 site hash.
7005 (initialize_inline_failed): Assign a reason to indirect edges.
7006 (cgraph_create_edge_1): New function.
7007 (cgraph_create_edge): Moved some functionality to
7008 cgraph_create_edge_1.
7009 (cgraph_create_indirect_edge): New function.
7010 (cgraph_edge_remove_callee): Add an assert checking for
7011 non-indirectness.
7012 (cgraph_edge_remove_caller): Special-case indirect edges.
7013 (cgraph_remove_edge): Likewise.
7014 (cgraph_set_edge_callee): New function.
7015 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
7016 (cgraph_make_edge_direct): New function.
7017 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
7018 the declaration of the call statement matches.
7019 (cgraph_node_remove_callees): Special-case indirect edges.
7020 (cgraph_clone_edge): Likewise.
7021 (cgraph_clone_node): Clone also the indirect edges.
7022 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
7023 indirect_call, dump count of indirect_calls edges.
7024 * ipa-prop.c (iinlining_processed_edges): New variable.
7025 (ipa_note_param_call): Create indirect edges instead of
7026 creating notes. New parameter node.
7027 (ipa_analyze_call_uses): New parameter node, pass it on to
7028 ipa_note_param_call.
7029 (ipa_analyze_stmt_uses): Likewise.
7030 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
7031 (print_edge_addition_message): Work on edges rather than on notes.
7032 (update_call_notes_after_inlining): Likewise, renamed to
7033 update_indirect_edges_after_inlining.
7034 (ipa_create_all_structures_for_iinln): New function.
7035 (ipa_free_node_params_substructures): Do not free notes.
7036 (ipa_edge_duplication_hook): Propagate bits within
7037 iinlining_processed_edges bitmap.
7038 (ipa_node_duplication_hook): Do not duplicate notes.
7039 (free_all_ipa_structures_after_ipa_cp): Renamed to
7040 ipa_free_all_structures_after_ipa_cp.
7041 (free_all_ipa_structures_after_iinln): Renamed to
7042 ipa_free_all_structures_after_iinln.
7043 (ipa_write_param_call_note): Removed.
7044 (ipa_read_param_call_note): Removed.
7045 (ipa_write_indirect_edge_info): New function.
7046 (ipa_read_indirect_edge_info): Likewise.
7047 (ipa_write_node_info): Do not stream notes, do stream information
7048 in indirect edges.
7049 (ipa_read_node_info): Likewise.
7050 (lto_ipa_fixup_call_notes): Removed.
7051 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
7052 * ipa-inline.c (pass_ipa_inline): Likewise.
7053 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
7054 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
7055 * tree-inline.c (copy_bb): Removed an unnecessary double check for
7056 is_gimple_call.
7057 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
7058 edges.
7059 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
7060 (output_cgraph): Stream also indirect edges.
7061 (lto_output_edge): Added capability to stream indirect edges.
7062 (input_edge): Likewise.
7063 (input_cgraph_1): Likewise.
7064 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
7065 of indirect edges.
7066
7067 2010-04-28 Richard Guenther <rguenther@suse.de>
7068
7069 PR tree-optimization/43879
7070 PR tree-optimization/43909
7071 * tree-ssa-structalias.c (struct variable_info): Add
7072 only_restrict_pointers flag.
7073 (new_var_info): Initialize it. Increment stats.total_vars here.
7074 (create_function_info_for): Do not increment stats.total_vars here.
7075 (get_function_part_constraint): Fix build with C++.
7076 (insert_into_field_list): Remove.
7077 (push_fields_onto_fieldstack): Properly merge fields.
7078 (create_variable_info_for): Split and simplify.
7079 (create_variable_info_for_1): New piece.
7080 (intra_create_variable_infos): Properly make restrict constraints
7081 from parameters.
7082
7083 2010-04-28 Richard Guenther <rguenther@suse.de>
7084
7085 PR c++/43880
7086 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
7087
7088 2010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
7089 Jan Hubicka <hubicka@ucw.cz>
7090
7091 * doc/invoke.texi (-Wsuggest-attribute=const,
7092 -Wsuggest-attribute=pure): Document.
7093 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
7094 (function_always_visible_to_compiler_p,
7095 suggest_attribute, warn_function_pure, warn_function_const):
7096 New functions.
7097 (check_call): Improve debug info.
7098 (analyze_function): Do not check availability.
7099 (add_new_function): Check availability.
7100 (propagate): Output warnings.
7101 (skip_function_for_local_pure_const): New function.
7102 (local_pure_const): Use it; output warnings.
7103 * common.opt (Wsuggest-attribute=const,
7104 Wsuggest-attribute=pure): New.
7105
7106 2010-04-27 Jakub Jelinek <jakub@redhat.com>
7107
7108 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
7109 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
7110 or DW_CFA_def_cfa_offset{,_sf}.
7111
7112 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
7113
7114 * tree.h: Fix truncated long macros.
7115
7116 2010-04-27 Kai Tietz <kai.tietz@onevision.com>
7117
7118 * collect2.c (TARGET_64BIT): Redefine to target's default.
7119 * tlink.c: Likewise.
7120 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
7121 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
7122 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
7123 for underscoring __USER_LABEL_PREFIX__.
7124 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
7125 (SUB_LINK_ENTRY32): New.
7126 (SUB_LINK_ENTRY64): New.
7127 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
7128 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
7129 (SUB_LINK_ENTRY64): New.
7130 (SUB_LINK_ENTRY): New.
7131 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
7132 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
7133 x64 target is choosen.
7134 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
7135 * configure: Regenerated.
7136 * configure.ac (leading-mingw64-underscores): Option added.
7137
7138 2010-04-27 Jan Hubicka <jh@suse.cz>
7139
7140 * doc/invoke.texi (-fipa-profile): Document.
7141 * opts.c (decode_options): Enable ipa-profile at -O1.
7142 * timevar.def (TV_IPA_PROFILE): Define.
7143 * common.opt (fipa-profile): Add.
7144 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
7145 flag for clones.
7146 (cgraph_propagate_frequency): Handle only local ones.
7147 * tree-pass.h (pass_ipa_profile): Declare.
7148 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
7149 (pass_ipa_profile): Use TV_IPA_PROFILE.
7150 * ipa.c (ipa_profile): New function.
7151 (gate_ipa_profile): Likewise.
7152 (pass_ipa_profile): New global variable.
7153 * passes.c (pass_ipa_profile): New.
7154
7155 2010-04-27 Nathan Froyd <froydnj@codesourcery.com>
7156
7157 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
7158
7159 2010-04-27 Martin Jambor <mjambor@suse.cz>
7160
7161 PR middle-end/43812
7162 * ipa.c (dissolve_same_comdat_group_list): New function.
7163 (function_and_variable_visibility): Call
7164 dissolve_same_comdat_group_list when comdat group contains external or
7165 newly local nodes.
7166 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
7167 lists are circular and that they contain only DECL_ONE_ONLY nodes.
7168
7169 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
7170
7171 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
7172 (const_hash_1) <VECTOR_CST>: New case.
7173 (compare_constant) <VECTOR_CST>: Likewise.
7174 <ADDR_EXPR>: Deal with LABEL_REFs.
7175 (copy_constant) <VECTOR_CST>: New case.
7176
7177 2010-04-27 Jan Hubicka <jh@suse.cz>
7178
7179 * cgraph.c (cgraph_propagate_frequency): New function.
7180 * cgraph.h (cgraph_propagate_frequency): Declare.
7181 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
7182 cgraph_propagate_frequency.
7183
7184 2010-04-27 Jakub Jelinek <jakub@redhat.com>
7185
7186 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
7187
7188 2010-04-27 Bernd Schmidt <bernds@codesourcery.com>
7189
7190 PR target/40657
7191 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
7192 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
7193 here to determine which regs to push and how much stack to reserve.
7194
7195 2010-04-27 Jie Zhang <jie@codesourcery.com>
7196
7197 * doc/gimple.texi (gimple_statement_with_ops): Remove
7198 addresses_taken field.
7199 (gimple_statement_with_memory_ops): Likewise.
7200
7201 2010-04-27 Jan Hubicka <jh@suse.cz>
7202
7203 * tree-inline.c (eni_inlining_weights): Remove.
7204 (estimate_num_insns): Special case more builtins.
7205
7206 2010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
7207
7208 PR c/32207
7209 * c-typeck.c (build_binary_op): Move forward check for comparison
7210 pointer with null pointer constant and adjust the diagnostic message.
7211
7212 2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
7213
7214 PR lto/42776
7215 * configure.ac (gcc_cv_as_section_has_align): Set if installed
7216 binutils supports extended .section directive needed by LTO, or
7217 warn if older binutils found.
7218 (LTO_BINARY_READER): New AC_SUBST'd variable.
7219 (LTO_USE_LIBELF): Likewise.
7220 * gcc/config.gcc (lto_binary_reader): New target-specific configure
7221 variable.
7222 * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
7223 (LTO_USE_LIBELF): Likewise.
7224 * configure: Regenerate.
7225
7226 * collect2.c (is_elf): Rename from this ...
7227 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
7228 object files in addition to ELF-formatted ones.
7229 (scan_prog_file): Caller updated. Also allow for LTO info marker
7230 symbol to be prefixed or not by an extra underscore.
7231
7232 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
7233 * config/i386/winnt.c: Also #include lto-streamer.h
7234 (i386_pe_asm_named_section): Specify 1-byte section alignment for
7235 LTO named sections.
7236 (i386_pe_asm_output_aligned_decl_common): Add comment.
7237 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
7238
7239 2010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
7240
7241 PR target/43889
7242 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
7243 Add missing earlyclobber for second alternative.
7244
7245 2010-04-26 Bernd Schmidt <bernds@codesourcery.com>
7246
7247 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
7248 bits for artificial defs at the top of the block.
7249 * fwprop.c (single_def_use_enter_block): Don't call it.
7250
7251 2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
7252
7253 PR 43715
7254 * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
7255 instead of "$gcc_cv_objdump -T".
7256 Use "-undefined dynamic_lookup" on darwin.
7257 * gcc/configure: Regenerate.
7258
7259 2010-04-26 Jakub Jelinek <jakub@redhat.com>
7260
7261 PR c/43893
7262 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
7263
7264 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
7265
7266 * c-parser.c (struct c_token): Move location field up.
7267 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
7268 (struct c_declspecs): Convert typespec_word, storage_class, and
7269 default_int_p into bitfields.
7270 (struct c_declarator): Move loc field up.
7271
7272 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
7273
7274 * cfgloop.h (struct loop): Move can_be_parallel field up.
7275 * ipa-prop.h (struct ip_node_params): Move bitfields up.
7276 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
7277 down.
7278 (struct iv_cand): Convert pos field into a bitfield.
7279 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
7280 field up.
7281 (struct _stmt_vec_info): Shuffle fields for better packing.
7282
7283 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
7284
7285 * varasm.c (IN_NAMED_SECTION): Remove guard.
7286 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
7287 (IN_NAMED_SECTION_P): ...this.
7288 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
7289 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
7290
7291 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
7292
7293 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
7294 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
7295 of shadowing it. Fix comments.
7296
7297 2010-04-26 Jan Hubicka <jh@suse.cz>
7298
7299 * cgraph.c (cgraph_create_node): Set node frequency to normal.
7300 (cgraph_clone_node): Copy function frequency.
7301 * cgraph.h (node_frequency): New enum
7302 (struct cgraph_node): Add.
7303 * final.c (rest_of_clean_state): Update.
7304 * lto-cgraph.c (lto_output_node): Output node frequency.
7305 (input_overwrite_node): Input node frequency.
7306 * tre-ssa-loop-ivopts (computation_cost): Update.
7307 * lto-streamer-out.c (output_function): Do not output function
7308 frequency.
7309 * predict.c (maybe_hot_frequency_p): Update and handle functions
7310 executed once.
7311 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
7312 attribute lookup.
7313 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
7314 (compute_function_frequency): Set noreturn functions to be executed
7315 once.
7316 (choose_function_section): Update.
7317 * lto-streamer-in.c (input_function): Do not input function frequency.
7318 * function.c (allocate_struct_function): Do not initialize function
7319 frequency.
7320 * function.h (function_frequency): Remove.
7321 (struct function): Remove function frequency.
7322 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
7323 (try_update): Update.
7324 * tree-inline.c (initialize_cfun): Do not update function frequency.
7325 * passes.c (pass_init_dump_file): Update.
7326 * i386.c (ix86_compute_frame_layout): Update.
7327 (ix86_pad_returns): Update.
7328
7329 2010-04-26 Jie Zhang <jie@codesourcery.com>
7330
7331 PR tree-optimization/43833
7332 * tree-vrp.c (range_int_cst_p): New.
7333 (range_int_cst_singleton_p): New.
7334 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
7335 when both operands are constants. Use range_int_cst_p in
7336 BIT_IOR_EXPR case.
7337
7338 2010-04-26 Jan Hubicka <jh@suse.cz>
7339
7340 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
7341
7342 2010-04-26 Richard Guenther <rguenther@suse.de>
7343
7344 PR lto/43080
7345 * gimple.c (gimple_decl_printable_name): Deal gracefully
7346 with a NULL DECL_NAME.
7347
7348 2010-04-26 Richard Guenther <rguenther@suse.de>
7349
7350 PR lto/42425
7351 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
7352 if emitting debug information and it is either a function
7353 or a namespace decl.
7354
7355 2010-04-26 Ira Rosen <irar@il.ibm.com>
7356
7357 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
7358 determine if the statement is vectorizable, and a macro to access it.
7359 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
7360 Skip statements that can't be vectorized. If the analysis fails,
7361 mark the statement as unvectorizable if vectorizing basic block.
7362 (vect_compute_data_refs_alignment): Likewise.
7363 (vect_verify_datarefs_alignment): Skip statements marked as
7364 unvectorizable. Add print.
7365 (vect_analyze_group_access): Skip statements that can't be
7366 vectorized. If the analysis fails, mark the statement as
7367 unvectorizable if vectorizing basic block.
7368 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
7369 * tree-vect-stmts.c (vectorizable_store): Fix the number of
7370 generated stmts for SLP.
7371 (new_stmt_vec_info): Initialize the new field.
7372 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
7373 statements marked as unvectorizable.
7374
7375 2010-04-25 Joseph Myers <joseph@codesourcery.com>
7376
7377 * c-common.c (flag_isoc1x): New.
7378 (flag_isoc99): Update comment.
7379 * c-common.h (flag_isoc1x): New.
7380 (flag_isoc99): Update comment.
7381 * c-cppbuiltin.c (builtin_define_float_constants): Also define
7382 __<type>_DECIMAL_DIG__.
7383 * c-opts.c (set_std_c1x): New.
7384 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
7385 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
7386 * c.opt (-std=c1x, -std=gnu1x): New options.
7387 * doc/cpp.texi: Mention -std=c1x.
7388 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
7389 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
7390 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
7391 * doc/standards.texi: Mention C1X.
7392 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
7393 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
7394 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
7395 Define for C1X.
7396
7397 2010-04-25 Uros Bizjak <ubizjak@gmail.com>
7398
7399 * config/i386/gmon-sol2.c (_mcleanup): Change format string
7400 placeholder from 0x%x to %#x.
7401 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
7402 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
7403 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
7404 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
7405 * config/i386/i386.c (ix86_target_string): Ditto.
7406 (output_pic_addr_const): Ditto.
7407 (print_operand): Ditto.
7408
7409 2010-04-25 Paolo Bonzini <bonzini@gnu.org>
7410
7411 * combine.c (find_split_point): Add third argument. Use it
7412 to find nested multiply-accumulate instructions. Adjust calls.
7413 (try_combine): Adjust call to find_split_point.
7414
7415 2010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
7416
7417 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
7418
7419 2010-04-24 Bernd Schmidt <bernds@codesourcery.com>
7420
7421 PR tree-optimization/41442
7422 * fold-const.c (merge_truthop_with_opposite_arm): New function.
7423 (fold_binary_loc): Call it.
7424
7425 2010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
7426
7427 * toplev.c (general_init): Set default for fdiagnostics-show-option.
7428 * opts.c (common_handle_option): Allow disabling it.
7429 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
7430
7431 2010-04-23 Eric Botcazou <ebotcazou@adacore.com>
7432
7433 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
7434 between modes if both types are integral.
7435
7436 2010-04-23 Richard Guenther <rguenther@suse.de>
7437
7438 PR tree-optimization/43572
7439 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
7440
7441 2010-04-23 Richard Guenther <rguenther@suse.de>
7442
7443 PR lto/43455
7444 * tree-inline.c (tree_can_inline_p): Also check compatibility
7445 of return types.
7446
7447 2010-04-23 Martin Jambor <mjambor@suse.cz>
7448
7449 PR tree-optimization/43846
7450 * tree-sra.c (struct access): New flag grp_assignment_read.
7451 (build_accesses_from_assign): Set grp_assignment_read.
7452 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
7453 (enum mark_read_status): New type.
7454 (analyze_access_subtree): Propagate grp_assignment_read, create
7455 accesses also if both direct_read and root->grp_assignment_read.
7456
7457 2010-04-23 Martin Jambor <mjambor@suse.cz>
7458
7459 PR middle-end/43835
7460 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
7461 function does not have type attributes.
7462
7463 2010-04-23 Richard Guenther <rguenther@suse.de>
7464
7465 PR lto/42653
7466 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
7467 of FUNCTION_DECLs.
7468
7469 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7470
7471 * sese.h (create_if_region_on_edge): Remove.
7472
7473 * sese.c (create_if_region_on_edge): Make static.
7474
7475 * tree-inline.c: Do not include ggc.h.
7476
7477 * expr.c: Do not include ggc.h.
7478
7479 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
7480 dependencies.
7481
7482 2010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
7483
7484 PR target/43744
7485 * config/sh/sh.c (find_barrier): Don't emit a constant pool
7486 in the middle of insns for casesi_worker_2.
7487
7488 2010-04-22 David Edelsohn <edelsohn@gnu.org>
7489
7490 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
7491
7492 2010-04-22 Ira Rosen <irar@il.ibm.com>
7493
7494 PR tree-optimization/43842
7495 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
7496 loop unrolling in update of exit phis. Fix comment.
7497 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
7498 least two reduction statements in the loop before starting SLP
7499 analysis.
7500
7501 2010-04-22 Nick Clifton <nickc@redhat.com>
7502
7503 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
7504
7505 2010-04-22 Alexander Monakov <amonakov@ispras.ru>
7506
7507 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
7508 to simplify a + ~a.
7509
7510 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7511
7512 * tree-parloops.c (loop_parallel_p): New argument
7513 parloop_obstack. Pass it down.
7514 (parallelize_loops): New variable parloop_obstack. Initialize it,
7515 pass it down, free it.
7516
7517 * tree-loop-linear.c (linear_transform_loops): Pass down
7518 lambda_obstack.
7519
7520 * tree-data-ref.h (lambda_compute_access_matrices): New argument
7521 of type struct obstack *.
7522
7523 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
7524 scratch_obstack. Initialize it, pass down, free it.
7525
7526 * lambda.h (lambda_loop_new): Remove.
7527 (lambda_matrix_new, lambda_matrix_inverse)
7528 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
7529 argument of type struct obstack *.
7530
7531 * lambda-trans.c (lambda_trans_matrix_new): New argument
7532 lambda_obstack. Pass it down, use obstack allocation for ret.
7533 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
7534 it down.
7535
7536 * lambda-mat.c (lambda_matrix_get_column)
7537 (lambda_matrix_project_to_null): Remove.
7538 (lambda_matrix_new): New argument lambda_obstack. Use obstack
7539 allocation for mat.
7540 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
7541 lambda_obstack.
7542
7543 * lambda-code.c (lambda_loop_new): New function.
7544 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
7545 (lambda_compute_auxillary_space, lambda_compute_target_space)
7546 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
7547 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
7548 (build_access_matrix): New argument lambda_obstack. Use obstack
7549 allocation for am.
7550 (lambda_compute_step_signs, lambda_compute_access_matrices): New
7551 argument lambda_obstack. Pass it down.
7552
7553 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
7554
7555 * optabs.h (expand_widening_mult): Declare.
7556
7557 2010-04-22 Richard Guenther <rguenther@suse.de>
7558
7559 PR tree-optimization/43845
7560 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
7561 lookup the CALL_EXPR function and arguments.
7562
7563 2010-04-22 Nick Clifton <nickc@redhat.com>
7564
7565 * config/stormy16/stormy16.c
7566 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
7567 * config/stormy16/stormy16.h: Tidy up formatting.
7568 (DONT_USE_BUILTIN_SETJMP): Remove definition.
7569 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
7570 (ineqbranchsi): Delete pattern.
7571 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
7572 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
7573 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
7574 stormy16-lib2-ucmpsi2.c.
7575
7576 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
7577
7578 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
7579 df_simulate_find_noclobber_defs as appropriate. Keep track of an
7580 extra set merge_set_noclobber, and use it to relax the final test
7581 slightly.
7582 * df.h (df_simulate_find_noclobber_defs): Declare.
7583 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
7584 conditional defs.
7585 (df_simulate_find_noclobber_defs): New function.
7586
7587 2010-04-22 Uros Bizjak <ubizjak@gmail.com>
7588
7589 * config/i386/i386.md: Use {} around multi-line preparation statements.
7590
7591 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7592
7593 * c-tree.h (push_init_level, pop_init_level, set_init_index)
7594 (process_init_element): New argument of type struct obstack *.
7595
7596 * c-typeck.c (push_init_level, pop_init_level, set_designator)
7597 (set_init_index, set_init_label, set_nonincremental_init)
7598 (set_nonincremental_init_from_string, find_init_member)
7599 (output_init_element, output_pending_init_elements)
7600 (process_init_element): New argument braced_init_obstack. Pass it
7601 down.
7602 (push_range_stack, add_pending_init): New argument
7603 braced_init_obstack. Use obstack allocation.
7604
7605 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
7606 braced_init_obstack. Pass it down.
7607 (c_parser_braced_init): New variables ret, braced_init_obstack.
7608 Initialize obstack, pass it down and finally free it.
7609
7610 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
7611
7612 PR middle-end/29274
7613 * tree-pass.h (pass_optimize_widening_mul): Declare.
7614 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
7615 gate_optimize_widening_mul): New static functions.
7616 (pass_optimize_widening_mul): New.
7617 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
7618 <case MULT_EXPR>: Remove support for widening multiplies.
7619 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
7620 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
7621 simplify_gen_unary rather than directly building extensions.
7622 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
7623 WIDEN_MULT_EXPR.
7624 * expmed.c (expand_widening_mult): New function.
7625 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
7626
7627 2010-04-21 Jan Hubicka <jh@suse.cz>
7628
7629 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
7630 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
7631 * lto-wpa-fixup.c: Remove.
7632 * Makefile.in (lto-wpa-fixup.o): Remove.
7633 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
7634 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
7635 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
7636
7637 2010-04-21 Jan Hubicka <jh@suse.cz>
7638
7639 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
7640 add write_optimization_summary, read_optimization_summary.
7641 (ipa_write_summaries_of_cgraph_node_set): Remove.
7642 (ipa_write_optimization_summaries): Declare.
7643 (ipa_read_optimization_summaries): Declare.
7644 * ipa-cp.c (pass_ipa_cp): Update.
7645 * ipa-reference.c (pass_ipa_reference): Update.
7646 * ipa-pure-const.c (pass_ipa_pure_const): Update.
7647 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
7648 Update.
7649 * ipa-inline.c (pass_ipa_inline): Update.
7650 * ipa.c (pass_ipa_whole_program): Update.
7651 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
7652 * passes.c (ipa_write_summaries_1): Do not test wpa.
7653 (ipa_write_optimization_summaries_1): New.
7654 (ipa_write_optimization_summaries): New.
7655 (ipa_read_summaries): Do not test ltrans.
7656 (ipa_read_optimization_summaries_1): New.
7657 (ipa_read_optimization_summaries): New.
7658
7659 2010-04-21 Jan Hubicka <jh@suse.cz>
7660
7661 * lto-cgraph.c (lto_output_node): Do not output comdat groups
7662 for boundary nodes.
7663 (output_cgraph): Do not arrange comdat groups for boundary nodes.
7664
7665 2010-04-21 Jakub Jelinek <jakub@redhat.com>
7666
7667 PR debug/40040
7668 * dwarf2out.c (add_name_and_src_coords_attributes): Add
7669 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
7670
7671 2010-04-21 Jan Hubicka <jh@suse.cz>
7672
7673 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
7674
7675 2010-04-21 Jan Hubicka <jh@suse.cz>
7676
7677 * varpool.c (decide_is_variable_needed): Variable is always needed
7678 during ltrans.
7679
7680 2010-04-21 Jan Hubicka <jh@suse.cz>
7681
7682 * opts.c (decode_options): Enable pure-const pass for whopr.
7683
7684 2010-04-21 Jan Hubicka <jh@suse.cz>
7685
7686 * cgraph.c (dump_cgraph_node): Dump also assembler name.
7687 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
7688 at WPA dumping.
7689 (cgraph_decide_inlining): Do not expect callee to be removed in all
7690 cases.
7691
7692 2010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
7693
7694 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
7695
7696 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
7697
7698 * config/i386/i386.md (x86_shrd): Add athlon_decode and
7699 amdfam10_decode attributes.
7700
7701 2010-04-21 Jakub Jelinek <jakub@redhat.com>
7702
7703 PR middle-end/43570
7704 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
7705 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
7706 (lower_copyprivate_clauses): Use private var in outer
7707 context instead of original var. Make sure the types
7708 are correct for VLAs.
7709
7710 2010-04-21 Richard Guenther <rguenther@suse.de>
7711
7712 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
7713 to non-pointer objects.
7714
7715 2010-04-21 Jakub Jelinek <jakub@redhat.com>
7716
7717 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
7718 last chain entry if it starts with the still current label.
7719 (add_location_or_const_value_attribute): Check that
7720 loc_list->first->next is NULL instead of comparing ->first with ->last.
7721 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
7722 to add_var_loc_to_decl.
7723
7724 * dwarf2out.c (output_call_frame_info): For dw_cie_version
7725 >= 4 add also address size and segment size fields into CIE header.
7726
7727 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
7728 long as address size is the same as sizeof (void *) and
7729 segment size is 0.
7730 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
7731 address size or segment size is unexpected, return DW_EH_PE_omit.
7732 (classify_object_over_fdes): If get_cie_encoding returned
7733 DW_EH_PE_omit, return -1.
7734 (init_object): If classify_object_over_fdes returned -1,
7735 pretend there were no FDEs at all.
7736
7737 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
7738
7739 * config/i386/i386.md (bswap<mode>2): Macroize expander from
7740 bswap{si,di}2 using SWI48 mode iterator.
7741 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
7742 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
7743 set modrm attribute of bswap insn to 0 and remove length attribute.
7744 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
7745 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
7746 set mode attribute to <MODE> and remove length attribute.
7747
7748 2010-04-20 James E. Wilson <wilson@codesourcery.com>
7749
7750 PR rtl-optimization/43520
7751 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
7752 zero available registers.
7753
7754 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7755
7756 * builtins.c (fold_builtin_cproj): Fold more cases.
7757
7758 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7759
7760 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
7761 (fold_builtin_1): Fold builtin cproj.
7762 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
7763 Use ATTR_CONST_NOTHROW_LIST.
7764
7765 2010-04-20 Uros Bizjak <ubizjak@gmail.com>
7766
7767 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
7768 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
7769 ffsi2_no_cmove for !TARGET_CMOVE.
7770 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
7771 (ffssi2): Remove expander.
7772 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
7773 mode iterator.
7774 (ctz<mode>2): Ditto from ctz{si,di}2.
7775 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
7776 mode iterator.
7777 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
7778 mode iterator.
7779
7780 2010-04-20 Jakub Jelinek <jakub@redhat.com>
7781
7782 * dwarf2out.c (AT_linkage_name): Define.
7783 (clone_as_declaration): Handle DW_AT_linkage_name.
7784 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
7785 of DW_AT_MIPS_linkage_name.
7786 (move_linkage_attr): Likewise.
7787 (dwarf2out_finish): Likewise.
7788
7789 2010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
7790
7791 PR middle-end/41952
7792 * fold-const.c (fold_comparison): New folding rule.
7793
7794 2010-04-20 Anatoly Sokolov <aesok@post.ru>
7795
7796 * double-int.h (double_int_setbit): Declare.
7797 * double-int.c (double_int_setbit): New function.
7798 * rtl.h (immed_double_int_const): Declare.
7799 * emit-rtl.c (immed_double_int_const): New function.
7800 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
7801 and immed_double_int_const functions.
7802 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
7803 expand_copysign_bit): (Ditto.).
7804 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
7805 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
7806 * dojump.c (prefer_and_bit_test): (Ditto.).
7807 * expr.c (convert_modes, reduce_to_bit_field_precision,
7808 const_vector_from_tree): (Ditto.).
7809 * expmed.c (mask_rtx, lshift_value): (Ditto.).
7810
7811 2010-04-20 Jan Hubicka <jh@suse.cz>
7812
7813 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
7814 (dump_cgraph_node): Dump new flags.
7815 * cgraph.h (struct cgraph_node): Add flags
7816 reachable_from_other_partition and in_other_partition.
7817 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
7818 other partition can not be removed.
7819 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
7820 the other partition must be output; silence sanity checking on
7821 leaking functions bodies from other paritition.
7822 * lto-cgraph.c (reachable_from_other_partition_p): New function.
7823 (lto_output_node): Output new flags; do not sanity check that inline
7824 clones are output; drop lto_forced_extern_inline_p code; do not mock
7825 visibility flags at partition boundaries.
7826 (add_node_to): New function.
7827 (output_cgraph): Use it to sort functions so masters appear before
7828 clones.
7829 (input_overwrite_node): Input new flags.
7830 * passes.c (ipa_write_summaries): Do not call
7831 lto_new_extern_inline_states.
7832 * lto-section-out.c (forced_extern_inline,
7833 lto_new_extern_inline_states lto_delete_extern_inline_states,
7834 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
7835 * lto-streamer.h (lto_new_extern_inline_states,
7836 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
7837 lto_forced_extern_inline_p): Kill.
7838
7839 2010-04-20 Richard Guenther <rguenther@suse.de>
7840
7841 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
7842 from vars that can have pointers.
7843 (process_constraint): Dump useless constraints.
7844
7845 2010-04-20 Richard Guenther <rguenther@suse.de>
7846
7847 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
7848 (dump_sa_points_to_info): Remove asserts.
7849 (init_base_vars): nothing_id isn't an escape point nor does it
7850 have pointers.
7851
7852 2010-04-20 Jakub Jelinek <jakub@redhat.com>
7853
7854 * tree.h (TYPE_REF_IS_RVALUE): Define.
7855 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
7856 should_move_die_to_comdat, prune_unused_types_walk): Handle
7857 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
7858 (modified_type_die, gen_reference_type_die): Emit
7859 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
7860 if TYPE_REF_IS_RVALUE and -gdwarf-4.
7861
7862 2010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7863
7864 PR target/43635
7865 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
7866 calls for -fpic -m31 if they have been sibcall optimized.
7867
7868 2010-04-19 James E. Wilson <wilson@codesourcery.com>
7869
7870 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
7871 ar.lc fixed and call-used.
7872
7873 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
7874
7875 2010-04-19 Jan Hubicka <jh@suse.cz>
7876
7877 * opts.c (decode_options): Disable whpr incompatible passes.
7878 * lto/lto.c (lto_1_to_1_map): Skip clones.
7879 (read_cgraph_and_symbols): Do not mark everything as needed.
7880 (do_whole_program_analysis): Do map only after optimizing;
7881 set proper cgraph_state; use passmanager.
7882
7883 2010-04-19 DJ Delorie <dj@redhat.com>
7884
7885 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
7886 POINTER_PLUS_EXPR and fix them.
7887
7888 2010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
7889
7890 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
7891 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
7892 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
7893 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
7894 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
7895 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
7896 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
7897 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
7898 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
7899 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
7900 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
7901
7902 2010-04-19 Eric Botcazou <ebotcazou@adacore.com>
7903
7904 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
7905 (check_cond_move_block): Likewise.
7906 (cond_move_process_if_block): Likewise.
7907 (noce_find_if_block): Improve formatting.
7908 (find_if_header): Pass 0 to memset and tweak conditions.
7909 (cond_exec_find_if_block): Fix long lines and tweak conditions.
7910
7911 2010-04-19 Jakub Jelinek <jakub@redhat.com>
7912
7913 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
7914 for -gdwarf-4.
7915
7916 PR middle-end/43337
7917 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
7918 with non-local decl doesn't need chain.
7919
7920 2010-04-19 Vladimir Makarov <vmakarov@redhat.com>
7921
7922 * ira-color.c (allocno_reload_assign): Avoid accumulating
7923 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
7924
7925 2010-04-19 Martin Jambor <mjambor@suse.cz>
7926
7927 * gimple.h (create_tmp_reg): Declare.
7928 * gimplify.c (create_tmp_reg): New function.
7929 (gimplify_return_expr): Use create_tmp_reg.
7930 (gimplify_omp_atomic): Likewise.
7931 (gimple_regimplify_operands): Likewise.
7932 * tree-dfa.c (make_rename_temp): Likewise.
7933 * tree-predcom.c (predcom_tmp_var): Likewise.
7934 (reassociate_to_the_same_stmt): Likewise.
7935 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
7936 (get_replaced_param_substitute): Likewise.
7937 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
7938 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
7939 * tree-ssa-pre.c (get_representative_for): Likewise.
7940 (create_expression_by_pieces): Likewise.
7941 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
7942 (create_tailcall_accumulator): Likewise.
7943
7944 2010-04-19 Martin Jambor <mjambor@suse.cz>
7945
7946 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
7947 new_stmt.
7948 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
7949
7950 2010-04-19 Richard Guenther <rguenther@suse.de>
7951
7952 PR tree-optimization/43796
7953 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
7954 from SCEV in the lattice.
7955 (vrp_visit_phi_node): Dump change.
7956
7957 2010-04-19 Richard Guenther <rguenther@suse.de>
7958
7959 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
7960 * configure: Re-generated.
7961
7962 2010-04-19 Richard Guenther <rguenther@suse.de>
7963
7964 PR tree-optimization/43783
7965 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
7966 constant ARRAY_REF operands two and three if possible.
7967
7968 2010-04-19 Uros Bizjak <ubizjak@gmail.com>
7969
7970 PR target/43766
7971 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
7972
7973 2010-04-19 Jie Zhang <jie@codesourcery.com>
7974
7975 PR target/43662
7976 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
7977
7978 2010-04-19 Ira Rosen <irar@il.ibm.com>
7979
7980 PR tree-optimization/37027
7981 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
7982 and macro to access it.
7983 (vectorizable_reduction): Add argument.
7984 (vect_get_slp_defs): Likewise.
7985 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
7986 statements for possible use in SLP.
7987 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
7988 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
7989 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
7990 add new argument.
7991 (vectorizable_reduction): Likewise.
7992 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
7993 vect_get_slp_defs.
7994 (vectorizable_type_demotion, vectorizable_type_promotion,
7995 vectorizable_store): Likewise.
7996 (vect_analyze_stmt): Update call to vectorizable_reduction.
7997 (vect_transform_stmt): Likewise.
7998 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
7999 (vect_build_slp_tree): Fix indentation. Check that there are no loads
8000 from different interleaving chains in same node.
8001 (vect_slp_rearrange_stmts): New function.
8002 (vect_supported_load_permutation_p): Allow load permutations for
8003 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
8004 inside SLP nodes if necessary.
8005 (vect_analyze_slp_instance): Handle reductions.
8006 (vect_analyze_slp): Try to build SLP instances originating from groups
8007 of reductions.
8008 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
8009 (vect_get_constant_vectors): Create initial vectors for reductions
8010 according to reduction code. Add new argument.
8011 (vect_get_slp_defs): Add new argument, pass it to
8012 vect_get_constant_vectors.
8013 (vect_schedule_slp_instance): Remove SLP tree root statements.
8014
8015 2010-04-19 Jakub Jelinek <jakub@redhat.com>
8016
8017 * tree.h (ENUM_IS_SCOPED): Define.
8018 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
8019 for ENUM_IS_SCOPED enums.
8020
8021 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
8022
8023 * fold-const.c (fold_comparison): Use ssizetype.
8024 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
8025 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
8026 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
8027 * tree-object-size.c (compute_object_sizes): Use size_type_node.
8028
8029 * tree.h (initialize_sizetypes): Remove parameter.
8030 (build_common_tree_nodes): Remove second parameter.
8031 * stor-layout.c (initialize_sizetypes): Remove parameter.
8032 Always create an unsigned type.
8033 (set_sizetype): Assert that the passed type is unsigned and simplify.
8034 * tree.c (build_common_tree_nodes): Remove second parameter.
8035 Adjust call to initialize_sizetypes.
8036 * c-decl.c (c_init_decl_processing): Remove second argument in call to
8037 build_common_tree_nodes.
8038
8039 2010-04-18 Matthias Klose <doko@ubuntu.com>
8040
8041 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
8042
8043 2010-04-18 Ira Rosen <irar@il.ibm.com>
8044
8045 PR tree-optimization/43771
8046 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
8047 load permutation doesn't have gaps.
8048
8049 2010-04-18 Jan Hubicka <jh@suse.cz>
8050
8051 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
8052 (sse_prologue_save_insn expander): Use new pattern.
8053 (sse_prologue_save_insn1): New pattern and splitter.
8054 (sse_prologue_save_insn): Update to deal also with 64bit aligned
8055 blocks.
8056 * i386.c (setup_incoming_varargs_64): Do not compute jump
8057 destination here.
8058 (ix86_gimplify_va_arg): Update alignment needed.
8059 (ix86_local_alignment): Do not align all local arrays to 128bit.
8060
8061 2010-04-17 Jan Hubicka <jh@suse.cz>
8062
8063 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
8064
8065 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
8066
8067 * arm.md (negdi2): Remove redundant code to force values into a
8068 register.
8069
8070 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
8071
8072 * arm/bpabi.S: Add EABI alignment attributes to objects.
8073 * arm/bpabi-v6m.S: Likewise.
8074 * arm/crti.asm: Likewise.
8075 * arm/crtn.asm: Likewise.
8076 * arm/lib1funcs.asm: Likewise.
8077 * arm/libunwind.S: Likewise.
8078
8079 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
8080
8081 * arm-protos.h (tune_params): New structure.
8082 * arm.c (current_tune): New variable.
8083 (arm_constant_limit): Delete.
8084 (struct processors): Add pointer to the tune parameters.
8085 (arm_slowmul_tune): New tuning option.
8086 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
8087 (all_cores): Adjust to pick up the tuning model.
8088 (arm_constant_limit): New function.
8089 (arm_override_options): Select the appropriate tuning model. Delete
8090 initialization of arm_const_limit.
8091 (arm_split_constant): Use the new constant-limit model.
8092 (arm_rtx_costs): Pick up the current tuning model.
8093 * arm.md (is_strongarm, is_xscale): Delete.
8094 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
8095 for Xscale variant architectures.
8096 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
8097
8098 2010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8099
8100 * config/arm/arm.c (arm_gen_constant): Remove unused variable
8101 can_shift.
8102 (arm_rtx_costs_1): Remove unused variable extra_cost.
8103 (arm_unwind_emit_set): Use variable offset.
8104 (thumb1_output_casesi): Remove unused variable flags.
8105
8106 2010-04-16 Jeff Law <law@redhat.com>
8107
8108 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
8109 needing assignment rather than doing a two-phase assignment. Remove
8110 unused variable 'm'.
8111
8112 2010-04-16 Jakub Jelinek <jakub@redhat.com>
8113
8114 PR bootstrap/43767
8115 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
8116
8117 2010-04-16 Doug Kwan <dougkwan@google.com>
8118
8119 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
8120 (next_operand_entry_id): New static variable.
8121 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
8122 (add_to_ops_vec): Assigned unique ID to operand entry.
8123 (struct oecount_s): New field ID.
8124 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
8125 (undistribute_ops_list): Assign unique IDs to oecounts.
8126 (init_reassoc): reset next_operand_entry_id.
8127
8128 2010-04-16 Doug Kwan <dougkwan@google.com>
8129
8130 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
8131 missing left parenthesis.
8132
8133 2010-04-16 Uros Bizjak <ubizjak@gmail.com>
8134
8135 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
8136 *btdi_rex64 using SWI48 mode iterator.
8137 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
8138 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
8139 *jcc_btdi_mask_rex64.
8140
8141 2010-04-16 Anatoly Sokolov <aesok@post.ru>
8142
8143 * double-int.h (tree_to_double_int): Convert to macro.
8144 * double-int.c (tree_to_double_int): Remove.
8145
8146 2010-04-16 Jakub Jelinek <jakub@redhat.com>
8147
8148 PR debug/43762
8149 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
8150 with want_address 2 and in case a single element list might be
8151 possible, call it again with want_address 0.
8152
8153 2010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
8154
8155 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
8156 case 'W' print operands for HI mode.
8157 * config/h8300/h8300.h (Y0, Y2) : New constraints.
8158 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
8159 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
8160 * config/h8300/predicate.md (bit_register_indirect_operand): New.
8161
8162 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
8163
8164 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
8165 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
8166 #xx:3 and #xx:4 mode.
8167
8168 * config/h8300/h8300.md (inverted load with HImode dest): Add
8169 support for H8300SX.
8170
8171 * config/h8300/predicate.md (bit_operand): Allow immediate values that
8172 satisfy 'U' constraint.
8173
8174 2010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8175
8176 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
8177 * configure: Regenerate.
8178 * config.in: Regenerate.
8179 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
8180 works.
8181
8182 2010-04-16 Richard Guenther <rguenther@suse.de>
8183
8184 * tree.h (struct tree_decl_minimal): Move pt_uid ...
8185 (struct tree_decl_common): ... here.
8186 (DECL_PT_UID): Adjust.
8187 (SET_DECL_PT_UID): Likewise.
8188 (DECL_PT_UID_SET_P): Likewise.
8189
8190 2010-04-16 Richard Guenther <rguenther@suse.de>
8191
8192 PR tree-optimization/43572
8193 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
8194 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
8195 * tree-flow.h (is_call_clobbered): Remove.
8196 * tree-flow-inline.h (is_call_clobbered): Likewise.
8197 * tree-dfa.c (dump_variable): Do not dump call clobber state.
8198 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
8199 (execute_return_slot_opt): Adjust.
8200 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
8201 check for call clobbered vars here.
8202 (find_tail_calls): Move tailcall verification to the
8203 proper place.
8204
8205 2010-04-16 Diego Novillo <dnovillo@google.com>
8206
8207 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
8208
8209 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
8210
8211 PR target/40603
8212 * config/arm/arm.md (cbranchqi4): New pattern.
8213 * config/arm/predicates.md (const0_operand,
8214 cbranchqi4_comparison_operator): New predicates.
8215
8216 2010-04-16 Richard Guenther <rguenther@suse.de>
8217
8218 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
8219 (dump_gimple_stmt): Likewise.
8220
8221 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
8222
8223 * recog.h (struct recog_data): New field is_operator.
8224 (struct insn_operand_data): New field is_operator.
8225 * recog.c (extract_insn): Set recog_data.is_operator.
8226 * genoutput.c (output_operand_data): Emit code to set the
8227 is_operator field.
8228 * reload.c (find_reloads): Use it rather than testing for an
8229 empty constraint string.
8230
8231 PR target/41514
8232 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
8233 If the previous insn is a cbranchsi4_insn with the same arguments,
8234 omit the compare instruction.
8235
8236 * config/arm/arm.md (addsi3_cbranch): If destination is a high
8237 register, inputs must be low registers and we need a low register
8238 scratch. Handle alternative 2 like alternative 3.
8239
8240 2010-04-16 Jakub Jelinek <jakub@redhat.com>
8241
8242 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
8243 don't call get_addr on both. If one expression is a VALUE and
8244 the other a REG, check VALUE's locs if the REG isn't among them.
8245
8246 2010-04-16 Christian Bruel <christian.bruel@st.com>
8247
8248 * config/sh/sh.h (sh_frame_pointer_required): New function.
8249 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
8250 (flag_omit_frame_pointer) Set.
8251 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
8252 (rounded_frame_size): Adjust size with outgoing_args_size.
8253 (sh_set_return_address): Must return from stack pointer.
8254 * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
8255 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
8256 (ACCUMULATE_OUTGOING_ARGS): Define.
8257 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
8258 * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
8259
8260 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
8261
8262 PR target/43471
8263 * config/sh/sh.c (sh_legitimize_reload_address): Use
8264 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
8265 Remove a unneeded check for offset_base.
8266
8267 2010-04-15 H.J. Lu <hongjiu.lu@intel.com>
8268
8269 * configure: Regenerated.
8270
8271 2010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8272
8273 * config/s390/s390.c (s390_call_save_register_used): Switch back
8274 to HARD_REGNO_NREGS.
8275
8276 2010-04-15 Richard Guenther <rguenther@suse.de>
8277
8278 * alias.c (alias_set_subset_of): Handle alias-set zero
8279 child properly.
8280
8281 2010-04-15 Mark Shinwell <shinwell@codesourcery.com>
8282 Julian Brown <julian@codesourcery.com>
8283
8284 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
8285 alternatives according to use of high and low regs.
8286 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
8287 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
8288 optimizing for size on Thumb-2.
8289
8290 2010-04-15 Thomas Schwinge <tschwinge@gnu.org>
8291
8292 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
8293
8294 2010-04-15 Richard Guenther <rguenther@suse.de>
8295
8296 * tree-ssa-structalias.c (struct variable_info): Add
8297 is_fn_info flag.
8298 (new_var_info): Initialize it.
8299 (dump_constraints): Support printing last added constraints.
8300 (debug_constraints): Adjust.
8301 (dump_constraint_graph): Likewise.
8302 (make_heapvar_for): Check for NULL cfun.
8303 (get_function_part_constraint): New function.
8304 (get_fi_for_callee): Likewise.
8305 (find_func_aliases): Properly implement IPA PTA constraints.
8306 (process_ipa_clobber): New function.
8307 (find_func_clobbers): Likewise.
8308 (insert_into_field_list_sorted): Remove.
8309 (create_function_info_for): Properly allocate vars for IPA mode.
8310 Do not use insert_into_field_list_sorted.
8311 (create_variable_info_for): Properly generate constraints for
8312 global vars in IPA mode.
8313 (dump_solution_for_var): Always dump the solution.
8314 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
8315 (find_what_var_points_to): Adjust.
8316 (pt_solution_set): Change.
8317 (pt_solution_ior_into): New function.
8318 (pt_solution_empty_p): Export.
8319 (pt_solution_includes_global): Adjust.
8320 (pt_solution_includes_1): Likewise.
8321 (pt_solutions_intersect_1): Likewise.
8322 (dump_sa_points_to_info): Check some invariants.
8323 (solve_constraints): Move constraint dumping ...
8324 (compute_points_to_sets): ... here.
8325 (ipa_pta_execute): ... and here.
8326 (compute_may_aliases): Do not re-compute points-to info
8327 locally if IPA info is available.
8328 (ipa_escaped_pt): New global var.
8329 (ipa_pta_execute): Properly implement IPA PTA.
8330 * tree-into-ssa.c (dump_decl_set): Support dumping
8331 decls not in referenced-vars.
8332 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
8333 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
8334 (dump_points_to_solution): Likewise.
8335 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
8336 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
8337 (remap_gimple_stmt): Reset call clobber/use information if necessary.
8338 (copy_decl_to_var): Copy DECL_PT_UID.
8339 (copy_result_decl_to_var): Likewise.
8340 * tree.c (make_node_stat): Initialize DECL_PT_UID.
8341 (copy_node_stat): Copy it.
8342 * tree.h (DECL_PT_UID): New macro.
8343 (SET_DECL_PT_UID): Likewise.
8344 (DECL_PT_UID_SET_P): Likewise.
8345 (struct tree_decl_minimal): Add pt_uid member.
8346 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
8347 (pt_solution_empty_p): Declare.
8348 (pt_solution_set): Adjust.
8349 (ipa_escaped_pt): Declare.
8350 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
8351 * gimple-pretty-print.c (pp_points_to_solution): New function.
8352 (dump_gimple_call): Dump call clobber/use information.
8353 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
8354 * tree-pass.h (TDF_ALIAS): New dump option.
8355 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
8356 * doc/invoke.texi (-fipa-pta): Update documentation.
8357
8358 2010-04-15 Richard Guenther <rguenther@suse.de>
8359
8360 * Makefile.in (OBJS-common): Add gimple-fold.o.
8361 (gimple-fold.o): New rule.
8362 * tree.h (maybe_fold_offset_to_reference,
8363 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
8364 prototypes ...
8365 * gimple.h: ... here.
8366 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
8367 may_propagate_address_into_dereference): Move prototypes ...
8368 * gimple.h: ... here.
8369 * tree-ssa-ccp.c (get_symbol_constant_value,
8370 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
8371 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
8372 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
8373 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
8374 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
8375 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
8376 gimplify_and_update_call_from_tree): Move ...
8377 * gimple-fold.c: ... here. New file.
8378 (ccp_fold_builtin): Rename to ...
8379 (gimple_fold_builtin): ... this.
8380 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
8381
8382 2010-04-15 Richard Guenther <rguenther@suse.de>
8383
8384 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
8385 fit_double_type, force_fit_type_double, add_double_with_sign,
8386 neg_double, mul_double_with_sign, lshift_double, rshift_double,
8387 lrotate_double, rrotate_double, div_and_round_double): Move ...
8388 * double-int.c: ... here.
8389 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
8390 add_double, neg_double, mul_double_with_sign, mul_double,
8391 lshift_double, rshift_double, lrotate_double, rrotate_double,
8392 div_and_round_double): Move prototypes ...
8393 * double-int.h: ... here.
8394
8395 2010-04-15 Bernd Schmidt <bernds@codesourcery.com>
8396
8397 PR target/43742
8398 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
8399 matching constraints to ensure inputs match the output.
8400
8401 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
8402
8403 PR target/43742
8404 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
8405 in an input-only operand.
8406
8407 2010-04-15 Anatoly Sokolov <aesok@post.ru>
8408
8409 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
8410 (double_int_not, double_int_lshift, double_int_rshift): Declare.
8411 (double_int_negative_p): Convert to static inline function.
8412 * double-int.c (double_int_lshift, double_int_lshift): New functions.
8413 (double_int_negative_p): Remove.
8414 * tree.h (lshift_double, rshift_double):
8415 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
8416 * fold-const.c (fold_convert_const_int_from_real,
8417 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
8418 (lshift_double): Change type of arith argument to bool.
8419 (rshift_double): Change type of arith argument to bool. Correct
8420 comment.
8421 * expmed.c (mask_rtx, lshift_value): (Ditto.).
8422
8423 2010-04-14 Bernd Schmidt <bernds@codesourcery.com>
8424
8425 PR target/21803
8426 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
8427 at the start and end of the then/else blocks, and omit them from the
8428 conversion.
8429 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
8430 argument; all callers changed. Pass zero to old_insns_match_p instead.
8431 (flow_find_head_matching_sequence): New function.
8432 (old_insns_match_p): Check REG_EH_REGION notes for calls.
8433 * basic-block.h (flow_find_cross_jump,
8434 flow_find_head_matching_sequence): Declare functions.
8435
8436 2010-04-14 Jason Merrill <jason@redhat.com>
8437
8438 PR c++/36625
8439 * c-common.c (attribute_takes_identifier_p): New fn.
8440 * c-common.h: Declare it.
8441
8442 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
8443
8444 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
8445 splitter condition.
8446 (*udivmod<mode>4): Ditto.
8447
8448 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
8449
8450 * config/i386/i386.md (maxmin_int): Rename code attribute from
8451 maxminiprefix and update all users.
8452 (maxmin_float): Ditto from maxminfprefix.
8453 (logic): Ditto from logicprefix.
8454 (absneg_mnemonic): Ditto from absnegprefix.
8455 * config/i386/mmx.md: Update all users of maxminiprefix,
8456 maxminfprefix and logicprefix for rename.
8457 * config/i386/sse.md: Ditto.
8458 * config/i386/sync.md (sync_<code><mode>): Update for
8459 logicprefix rename.
8460
8461 2010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
8462
8463 PR 42966
8464 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
8465 warnings converted to errors.
8466
8467 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
8468
8469 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
8470 used insn_type variable.
8471 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
8472 to avoid set-but-not-used warning.
8473
8474 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
8475
8476 * df-core.c (df_ref_debug): Change format string placeholder
8477 from 0x%x to %#x.
8478 * dwarf2asm.c (dw2_asm_output_data_raw,
8479 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
8480 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
8481 * dwarf2out.c (output_cfi, output_cfi_directive,
8482 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
8483 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
8484 Ditto.
8485 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
8486 * print-rtl.c (print_rtx): Ditto.
8487
8488 2010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
8489
8490 PR middle-end/42694
8491 * builtins.c (expand_builtin_pow_root): New function to expand pow
8492 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
8493 series of sqrt and cbrt calls under -ffast-math.
8494 (expand_builtin_pow): Call it.
8495
8496 2010-04-14 Michael Matz <matz@suse.de>
8497
8498 PR tree-optimization/42963
8499 * tree-cfg.c (touched_switch_bbs): New static variable.
8500 (group_case_labels_stmt): New function broken out from ...
8501 (group_case_labels): ... here, use the above.
8502 (start_recording_case_labels): Allocate touched_switch_bbs.
8503 (end_recording_case_labels): Deallocate it, call
8504 group_case_labels_stmt.
8505 (gimple_redirect_edge_and_branch): Remember index of affected BB.
8506
8507 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
8508
8509 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
8510 from insn template.
8511
8512 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
8513
8514 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
8515
8516 2010-04-13 Jan Hubicka <jh@suse.cz>
8517
8518 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
8519 of optimized out static functions.
8520 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
8521 cost computation. Also sanity check for overflows.
8522 (update_caller_keys): Update cgraph_edge_badness call; properly
8523 update fibheap and sanity check that it is up to date.
8524 (add_new_edges_to_heap): Update cgraph_edge_badness.
8525 (cgraph_decide_inlining_of_small_function): Likewise;
8526 add sanity checking that badness in heap is up to date;
8527 improve dumping of reason; Update badness of calls to the
8528 offline copy of function currently inlined; dump badness
8529 of functions not inlined because of unit growth limits.
8530
8531 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
8532
8533 PR middle-end/32628
8534 * c-common.c (pointer_int_sum): Disregard overflow that occured only
8535 because of sign-extension change when converting to sizetype here...
8536 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
8537
8538 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
8539 the folding to constants. Remove redundant final conversion.
8540 (fold_binary) <associate>: Do not associate if the re-association of
8541 constants alone overflows.
8542 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
8543 to the end of the list.
8544 (multiple_of_p) <COND_EXPR>: New case.
8545
8546 2010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
8547
8548 * opt-functions.awk (opt_sanitized_name): New.
8549 (opt_enum): New.
8550 * optc-gen.awk: Use it
8551 * opth-gen.awk: Use it.
8552
8553 2010-04-13 Martin Jambor <mjambor@suse.cz>
8554
8555 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
8556 (sra_modify_assign): Delete stmts loading dead data even if racc has no
8557 children. Call replace_uses_with_default_def_ssa_name to handle
8558 SSA_NAES on lhs.
8559
8560 2010-04-13 Michael Matz <matz@suse.de>
8561
8562 PR middle-end/43730
8563 * builtins.c (expand_builtin_interclass_mathfn): Also create
8564 a register if the predicate doesn't match.
8565
8566 2010-04-13 Diego Novillo <dnovillo@google.com>
8567
8568 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
8569 * c-pch.c: Include timevar.h.
8570 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
8571 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
8572 * ggc-common.c: Include timevar.h.
8573 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
8574 * timevar.def (TV_PCH_SAVE): Define.
8575 (TV_PCH_CPP_SAVE): Define.
8576 (TV_PCH_PTR_REALLOC): Define.
8577 (TV_PCH_PTR_SORT): Define.
8578 (TV_PCH_RESTORE): Define.
8579 (TV_PCH_CPP_RESTORE): Define.
8580
8581 2010-04-13 Michael Matz <matz@suse.de>
8582
8583 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
8584 into MINUS_EXPRs.
8585 (can_reassociate_p): New function.
8586 (break_up_subtract_bb, reassociate_bb): Use it.
8587
8588 2010-04-13 Richard Guenther <rguenther@suse.de>
8589
8590 PR bootstrap/43737
8591 * builtins.c (c_readstr): Fix assert.
8592
8593 2010-04-13 Uros Bizjak <ubizjak@gmail.com>
8594
8595 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
8596 when generating cltd insn.
8597
8598 (*ashl<mode>3_1): Remove special handling for register operand 2.
8599 (*ashlsi3_1_zext): Ditto.
8600 (*ashlhi3_1): Ditto.
8601 (*ashlhi3_1_lea): Ditto.
8602 (*ashlqi3_1): Ditto.
8603 (*ashlqi3_1_lea): Ditto.
8604 (*<shiftrt_insn><mode>3_1): Ditto.
8605 (*<shiftrt_insn>si3_1_zext): Ditto.
8606 (*<shiftrt_insn>qi3_1_slp): Ditto.
8607 (*<rotate_insn><mode>3_1): Ditto.
8608 (*<rotate_insn>si3_1_zext): Ditto.
8609 (*<rotate_insn>qi3_1_slp): Ditto.
8610
8611 2010-04-13 Richard Guenther <rguenther@suse.de>
8612
8613 * tree-ssa-structalias.c (callused_id): Remove.
8614 (call_stmt_vars): New.
8615 (get_call_vi): Likewise.
8616 (lookup_call_use_vi): Likewise.
8617 (lookup_call_clobber_vi): Likewise.
8618 (get_call_use_vi): Likewise.
8619 (get_call_clobber_vi): Likewise.
8620 (make_transitive_closure_constraints): Likewise.
8621 (handle_const_call): Adjust to do per-call call-used handling.
8622 (handle_pure_call): Likewise.
8623 (find_what_var_points_to): Remove general callused handling.
8624 (init_base_vars): Likewise.
8625 (init_alias_vars): Initialize call_stmt_vars.
8626 (compute_points_to_sets): Process call-used and call-clobbered
8627 vars for call statements.
8628 (delete_points_to_sets): Free call_stmt_vars.
8629
8630 2010-04-13 Richard Guenther <rguenther@suse.de>
8631
8632 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
8633 Only add RW dependence for dependence distance zero.
8634 Adjust maximal vectorization factor according to dependences.
8635 Move alignment handling ...
8636 (vect_find_same_alignment_drs): ... here. New function.
8637 (vect_analyze_data_ref_dependences): Adjust.
8638 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
8639 (vect_analyze_data_refs): Adjust minimal vectorization factor
8640 according to data references.
8641 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
8642 dependences before determining the vectorization factor.
8643 Analyze alignment after determining the vectorization factor.
8644 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
8645 dependences before alignment.
8646 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
8647 Adjust prototype.
8648 (vect_analyze_data_refs): Likewise.
8649 (MAX_VECTORIZATION_FACTOR): New define.
8650
8651 2010-04-13 Duncan Sands <baldrick@free.fr>
8652
8653 * except.h (lang_eh_type_covers): Remove.
8654 * except.c (lang_eh_type_covers): Likewise.
8655
8656 2010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8657 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8658
8659 * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
8660 * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
8661 UNITS_PER_LONG where it is ABI relevant.
8662 (s390_return_addr_rtx): Likewise.
8663 (s390_back_chain_rtx): Likewise.
8664 (s390_frame_area): Likewise.
8665 (s390_frame_info): Likewise.
8666 (s390_initial_elimination_offset): Likewise.
8667 (save_gprs): Likewise.
8668 (s390_emit_prologue): Likewise.
8669 (s390_emit_epilogue): Likewise.
8670 (s390_function_arg_advance): Likewise.
8671 (s390_function_arg): Likewise.
8672 (s390_va_start): Likewise.
8673 (s390_gimplify_va_arg): Likewise.
8674 (s390_function_profiler): Likewise.
8675 (s390_optimize_prologue): Likewise.
8676 (s390_rtx_costs): Likewise.
8677 (s390_secondary_reload): Likewise.
8678 (s390_promote_function_mode): Likewise.
8679 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
8680 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
8681 registers available.
8682 (s390_unwind_word_mode): New function.
8683 (s390_function_value): Split 64 bit values into register pair if
8684 used as return value.
8685 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
8686 function call parameters. Handle parallels.
8687 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
8688 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
8689 (DWARF_CIE_DATA_ALIGNMENT): New macro.
8690 (s390_expand_setmem): Remove unused variable src_addr.
8691 * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
8692 deal with 64 bit registers.
8693 * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
8694 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
8695 (UNITS_PER_LONG): New macro.
8696 * libjava/include/s390-signal.h: Define extended ucontext
8697 structure containing the upper halfs of the 64 bit registers.
8698
8699 2010-04-13 Simon Baldwin <simonb@google.com>
8700
8701 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
8702
8703 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
8704
8705 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
8706 rvalue on the RHS if the LHS is of a non-renamable type.
8707 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
8708
8709 2010-04-13 Matthias Klose <doko@ubuntu.com>
8710
8711 * gcc.c (cc1_options): Handle -iplugindir before processing
8712 the cc1 spec. Only add -iplugindir once.
8713 (cpp_unique_options): Add -iplugindir option if -fplugin* options
8714 found.
8715 * common.opt (iplugindir): Remove `Separate' property, initialize.
8716 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
8717 option.
8718 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
8719 (distclean): Remove plugin dir.
8720 * doc/invoke.texi: Document -iplugindir.
8721
8722 2010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
8723
8724 * doc/plugins.texi (Loading Plugins): Document short
8725 -fplugin=foo option.
8726 (Plugin API): Mention default_plugin_dir_name function.
8727
8728 * gcc.c (find_file_spec_function): Add new declaration.
8729 (static_spec_func): Use it for "find-file".
8730 (find_file_spec_function): Add new function.
8731 (cc1_options): Add -iplugindir option if -fplugin* options found.
8732
8733 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
8734
8735 * plugin.c (add_new_plugin): Updated comment, and handle short
8736 plugin name.
8737 (default_plugin_dir_name): Added new function.
8738
8739 * common.opt (iplugindir): New option to set the plugin directory.
8740
8741 2010-04-12 Uros Bizjak <ubizjak@gmail.com>
8742
8743 * config/i386/i386.md (any_rotate): New code iterator.
8744 (rotate_insn): New code attribute.
8745 (rotate): Ditto.
8746 (SWIM124): New mode iterator.
8747 (<rotate_insn>ti3): New expander.
8748 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
8749 any_rotate code iterator.
8750 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
8751 using any_rotate code iterator and SWIM124 mode iterator.
8752 (ix86_rotlti3): New insn_and_split pattern.
8753 (ix86_rotrti3): Ditto.
8754 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
8755 ix86_rotl{di,ti}3 patterns.
8756 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
8757 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
8758 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
8759 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
8760 code iterator and SWI mode iterator.
8761 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
8762 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
8763 code iterator.
8764 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
8765 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
8766 (bswap rotatert splitter): Add splitter.
8767 (bswap splitter): Macroize splitter using any_rotate code iterator.
8768 Add insn predicate to split only for TARGET_USE_XCHGB or when
8769 optimizing function for size.
8770
8771 2010-04-12 Steve Ellcey <sje@cup.hp.com>
8772
8773 * config/pa/pa.c (emit_move_sequence): Remove use of
8774 deleted variable flag_argument_noalias.
8775
8776 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8777
8778 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
8779 configurations.
8780 Add to unsupported targets list.
8781 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
8782 sparc*-sun-solaris2.[567]* from target lists.
8783 * configure: Regenerate.
8784 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
8785 removal.
8786 Remove Solaris 7 patch references.
8787 (Specific, sparc-sun-solaris2.7): Removed.
8788 (sparc-sun-solaris2*): Update Solaris 7 example.
8789 (sparc64-*-solaris2*): Likewise.
8790
8791 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8792
8793 * config.build (alpha*-dec-osf4*): Remove.
8794 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
8795 of obsolete configurations.
8796 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
8797 support.
8798 * config/alpha/t-osf4: Renamed to ...
8799 * config/alpha/t-osf5: ... this.
8800 * config/alpha/osf.h: Renamed to ...
8801 * config/alpha/osf5.h: ... this.
8802 Merged old osf5.h contents.
8803 Update comments.
8804 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
8805 (EXTRA_SPECS): Removed.
8806 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
8807 reflect removal of Tru64 UNIX V4.0/V5.0 support.
8808 Document that.
8809
8810 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8811
8812 * doc/contrib.texi (Contributors, Rainer Orth): Update.
8813
8814 2010-04-12 Kai Tietz <kai.tietz@onevision.com>
8815
8816 PR/43702
8817 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
8818 __thiscall convention.
8819
8820 2010-04-12 Steve Ellcey <sje@cup.hp.com>
8821
8822 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
8823 orig_base.
8824 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
8825
8826 2010-04-12 Steve Ellcey <sje@cup.hp.com>
8827
8828 * function.c (assign_parms_initialize_all): Add unused attribute
8829 to fntype.
8830
8831 2010-04-12 Richard Guenther <rguenther@suse.de>
8832
8833 * gsstruct.def (GSS_CALL): New.
8834 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
8835 * gimple.h: Include tree-ssa-alias.h.
8836 (struct gimple_statement_call): New.
8837 (union gimple_statement_struct_d): Add gimple_call member.
8838 (gimple_call_reset_alias_info): Declare.
8839 (gimple_call_use_set): New function.
8840 (gimple_call_clobber_set): Likewise.
8841 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
8842 * gimple.c (gimple_call_reset_alias_info): New function.
8843 (gimple_build_call_1): Call it.
8844 * lto-streamer-in.c (input_gimple_stmt): Likewise.
8845 * tree-inline.c (remap_gimple_stmt): Likewise.
8846 (expand_call_inline): Remove callused handling.
8847 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
8848 * tree-dfa.c (dump_variable): Likewise.
8849 * tree-parloops.c (parallelize_loops): Likewise.
8850 * tree-ssa.c (init_tree_ssa): Likewise.
8851 (delete_tree_ssa): Likewise.
8852 * tree-flow-inline.h (is_call_used): Remove.
8853 * tree-flow.h (struct gimple_df): Remove callused member.
8854 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
8855 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
8856 (ref_maybe_used_by_call_p_1): Simplify.
8857 (call_may_clobber_ref_p_1): Likewise.
8858 * tree-ssa-structalias.c (compute_points_to_sets): Set
8859 the call stmt used and clobbered sets.
8860 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
8861 (find_tail_calls): Verify the tail call.
8862
8863 2010-04-12 Richard Guenther <rguenther@suse.de>
8864
8865 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
8866 single-iteration always-inline inlining.
8867 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
8868 (cgraph_decide_inlining): Do not handle always-inline specially.
8869 (try_inline): Remove always-inline cycle detection special case.
8870 Do not recurse on always-inlines.
8871 (cgraph_early_inlining): Do not iterate if not optimizing.
8872 (cgraph_gate_early_inlining): remove.
8873 (pass_early_inline): Run unconditionally.
8874 (gate_cgraph_decide_inlining): New function.
8875 (pass_ipa_inline): Use it. Do not run the IPA inliner if
8876 not inlining or optimizing.
8877 (cgraph_decide_inlining_of_small_functions): Also consider
8878 always-inline functions.
8879 (cgraph_default_inline_p): Return true for nodes which should
8880 disregard inline limits.
8881 (estimate_function_body_sizes): Assume zero size and time for
8882 nodes which are marked as disregarding inline limits.
8883 (cgraph_decide_recursive_inlining): Do not perform recursive
8884 inlining on always-inline nodes.
8885
8886 2010-04-12 Jakub Jelinek <jakub@redhat.com>
8887
8888 PR bootstrap/43699
8889 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
8890 for exprs satisfying handled_component_p.
8891
8892 2010-04-12 Eric Botcazou <ebotcazou@adacore.com>
8893
8894 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
8895 non-constant aggregate elements.
8896
8897 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
8898 is a real initialization.
8899
8900 2010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
8901
8902 PR c/36774
8903 * c-decl.c (start_function): Move forward check for nested function.
8904
8905 2010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
8906
8907 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
8908 * config/sh/sh.c: Include reload.h.
8909 (sh_legitimize_reload_address): New.
8910 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
8911 sh_legitimize_reload_address.
8912
8913 2010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
8914
8915 * config/sh/sh.md (*movqi_pop): New insn pattern.
8916 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
8917
8918 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
8919
8920 * config/i386/i386.md (any_shiftrt): New code iterator.
8921 (shiftrt_insn): New code attribute.
8922 (shiftrt): Ditto.
8923 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
8924 using any_shiftrt code iterator.
8925 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
8926 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
8927 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
8928 pattern from corresponding peephole2 patterns.
8929 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
8930 using any_shiftrt code iterator.
8931 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
8932 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
8933 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
8934 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
8935 *{ashr,lshr}<mode>3_cmp_zext.
8936 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
8937
8938 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
8939
8940 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
8941 scratch register.
8942 (*lshr<mode>3_cconly): Ditto.
8943
8944 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
8945
8946 * config/i386/i386.md (lshr<mode>3): Macroize expander from
8947 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
8948 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
8949 pattern from *lshr{di,ti}3_1 and corresponding splitters using
8950 DWI mode iterator.
8951 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
8952 from corresponding peephole2 patterns.
8953 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
8954 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
8955 and *lshrdi3_1_rex64 using SWI mode iterator.
8956 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
8957 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
8958 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
8959 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
8960 and *lshrdi3_cmp_rex64 using SWI mode iterator.
8961 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
8962 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
8963 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
8964 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
8965 SWI mode iterator.
8966
8967 2010-04-10 Uros Bizjak <ubizjak@gmail.com>
8968
8969 * config/i386/i386.md (ashr<mode>3): Macroize expander from
8970 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
8971 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
8972 pattern from *ashr{di,ti}3_1 and corresponding splitters using
8973 DWI mode iterator.
8974 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
8975 from corresponding peephole2 patterns.
8976 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
8977 (ashrsi3_cvt): Rename from ashrsi3_31.
8978 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
8979 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
8980 and x86_64_shift_adj_3 using SWI48 mode iterator.
8981 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
8982 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
8983 and *ashrdi3_1_rex64 using SWI mode iterator.
8984 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
8985 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
8986 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
8987 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
8988 and *ashrdi3_cmp_rex64 using SWI mode iterator.
8989 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
8990 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
8991 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
8992 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
8993 SWI mode iterator.
8994 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
8995 * config/i386/i386.c (ix86_split_ashr): Update for renamed
8996 x86_shift<mode>_adj_3 expanders.
8997
8998 2010-04-10 Wei Guozhi <carrot@google.com>
8999
9000 PR target/42601
9001 * config/arm/arm.c (arm_pic_static_addr): New function.
9002 (legitimize_pic_address): Call arm_pic_static_addr when it detects
9003 a static symbol.
9004 (arm_output_addr_const_extra): Output expression for new pattern.
9005 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
9006
9007 2010-04-10 Bernd Schmidt <bernds@codesourcery.com>
9008
9009 * ira-costs.c (record_reg_classes): Ignore alternatives that are
9010 not enabled.
9011
9012 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
9013 * web.c: Include "insn-config.h" and "recog.h".
9014 (union_match_dups): New function.
9015 (web_main): Call it.
9016 (union_defs): Don't try to recognize match_dups.
9017
9018 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
9019 if doing so would replace the entire pattern.
9020
9021 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
9022
9023 PR target/43707
9024 PR target/43709
9025 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
9026 and splitter pattern. Change splitter operand 1 predicate to
9027 nonmemory_operand.
9028
9029 2010-04-09 Martin Jambor <mjambor@suse.cz>
9030
9031 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
9032 lattices are addresses of CONST_DECLs with the same initial value.
9033 (ipcp_print_all_lattices): Print values of CONST_DECLs.
9034 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
9035
9036 2010-04-09 Eric Botcazou <ebotcazou@adacore.com>
9037 Bernd Schmidt <bernds@codesourcery.com>
9038
9039 * loop-invariant.c (replace_uses): New static function.
9040 (move_invariant_reg): Use it to ensure we can replace the uses.
9041
9042 2010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
9043
9044 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
9045 function template.
9046 (picochip_override_options): Enable section anchors only above -O1.
9047 (picochip_reorg): Fixed a couple of build warnings.
9048
9049 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9050
9051 * configure.ac (plugin -rdynamic test): Log result.
9052 * configure: Regenerate.
9053 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
9054 (RDYNAMIC_SPEC): Define.
9055 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
9056
9057 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9058
9059 * configure.ac: Determine Sun ld version numbers.
9060 (comdat_group): Restrict GNU ld version checks to gld.
9061 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
9062 (enable_comdat): Support --enable-comdat.
9063 * configure: Regenerate.
9064 * doc/install.texi (Configuration): Document --enable-comdat.
9065
9066 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9067
9068 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
9069 * config/sol2-gld.h: ... here.
9070 * config.gcc (sparc*-*-solaris2*): Reflect this.
9071 (i[34567]86-*-solaris2*): Use it.
9072
9073 2010-04-09 Steve Ellcey <sje@cup.hp.com>
9074
9075 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
9076 setup_clocks_p.
9077 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
9078
9079 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
9080
9081 PR 42965
9082 * diagnostic.c (diagnostic_initialize): Initialize
9083 some_warnings_are_errors.
9084 (diagnostic_finish): New.
9085 (diagnostic_action_after_output): Call it before exiting.
9086 (diagnostic_report_diagnostic): Do not print message here. Set
9087 some_warnings_are_errors.
9088 * diagnostic.h (diagnostic_context): Delete
9089 issue_warnings_are_errors_message. Add some_warnings_are_errors.
9090 (diagnostic_finish): Declare.
9091 * toplev.c (toplev_main): Call it before exit.
9092
9093 2010-04-09 Jason Merrill <jason@redhat.com>
9094
9095 PR c++/42623
9096 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
9097 for incomplete type.
9098
9099 PR c++/41788
9100 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
9101 based on a warning flag.
9102
9103 2010-04-09 Richard Guenther <rguenther@suse.de>
9104
9105 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
9106
9107 2010-04-09 Iain Sandoe <iains@gcc.gnu.org>
9108
9109 PR bootstrap/43684
9110 * varasm.c (default_assemble_visibility): Wrap vars that are
9111 set, but unused, by targets without GAS.
9112 * config/rs6000/rs6000.c (paired_emit_vector_compare):
9113 Remove set, but unused, vars.
9114 (rs6000_legitimize_tls_address): Likewise.
9115 (altivec_expand_dst_builtin): Likewise.
9116 * config/darwin.c (machopic_classify_symbol): Likewise.
9117 (machopic_indirection_name): Likewise.
9118
9119 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
9120
9121 * config/i386/i386.md (DWI): New mode iterator.
9122 (S): New mode attribute.
9123 (shift_operand): Ditto.
9124 (shift_immediate_operand): Ditto.
9125 (ashl_input_operand): Ditto.
9126 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
9127 using SDWIM mode iterator.
9128 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
9129 pattern from *ashl{di,ti}3_1 and corresponding splitters using
9130 DWI mode iterator.
9131 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
9132 from corresponding peephole2 patterns.
9133 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
9134 and x86_64_shift_adj_1 using SWI48 mode iterator.
9135 (x86_shift<mode>_adj_2): Ditto.
9136 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
9137 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
9138 using SWI48 mode iterator.
9139 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
9140 *ashldi3_cmp_rex64 using SWI mode iterator.
9141 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
9142 *ashldi3_cconly_rex64 using SWI mode iterator.
9143 * config/i386/i386.c (ix86_split_ashl): Update for renamed
9144 x86_shift<mode>_adj_{1,2}.
9145 (ix86_split_ashr): Ditto.
9146 (ix86_split_lshr): Ditto.
9147
9148 2010-04-09 Richard Guenther <rguenther@suse.de>
9149
9150 * target.h (builtin_conversion): Pass in input and output types.
9151 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
9152 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
9153 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
9154 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
9155
9156 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
9157 Handle AVX modes.
9158 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
9159
9160 2010-04-09 Richard Guenther <rguenther@suse.de>
9161
9162 PR target/43152
9163 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
9164
9165 2010-04-09 Richard Guenther <rguenther@suse.de>
9166
9167 * tree-vectorizer.h (struct _stmt_vec_info): Document
9168 that vectype is the type of the LHS.
9169 (supportable_widening_operation, supportable_narrowing_operation):
9170 Get both input and output vector types as arguments.
9171 (vect_is_simple_use_1): Declare.
9172 (get_same_sized_vectype): Likewise.
9173 * tree-vect-loop.c (vect_determine_vectorization_factor):
9174 Set STMT_VINFO_VECTYPE to the vector type of the def.
9175 (vectorizable_reduction): Adjust.
9176 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
9177 Adjust. Specify the output vector type.
9178 (vect_pattern_recog_1): Adjust.
9179 * tree-vect-stmts.c (get_same_sized_vectype): New function.
9180 (vectorizable_call): Adjust.
9181 (vectorizable_conversion): Likewise.
9182 (vectorizable_operation): Likewise.
9183 (vectorizable_type_demotion): Likewise.
9184 (vectorizable_type_promotion): Likewise.
9185 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
9186 the def.
9187 (vect_is_simple_use_1): New function.
9188 (supportable_widening_operation): Get both input and output
9189 vector types.
9190 (supportable_narrowing_operation): Likewise.
9191 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
9192
9193 2010-04-09 Kai Tietz <kai.tietz@onevision.com>
9194
9195 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
9196 __thiscall and _thiscall as predefined macros.
9197 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
9198 thiscall attribute handling.
9199 (ix86_comp_type_attributes): Likewise.
9200 (ix86_function_regparm): Likewise.
9201 (ix86_return_pops_args): Likewise.
9202 (init_cumulative_args): Likewise.
9203 (find_drap_reg): Likewise.
9204 (ix86_static_chain): Likewise.
9205 (x86_this_parameter): Likewise.
9206 (x86_output_mi_thunk): Likewise.
9207 (ix86_attribute_table): Add description for thiscall attribute.
9208 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
9209 * doc/extend.texi: Add documentation for thiscall.
9210
9211 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
9212
9213 PR c++/28584
9214 * c.opt (Wint-to-pointer-cast): Available in C++.
9215 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
9216
9217 2010-04-08 Eric Botcazou <ebotcazou@adacore.com>
9218
9219 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
9220 * calls.c (expand_call): Pass the function type to aggregate_value_p.
9221 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
9222 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
9223 function type instead. Reorder and simplify checks.
9224
9225 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
9226
9227 2010-04-08 Jing Yu <jingyu@google.com>
9228 Zdenek Dvorak <ook@ucw.cz>
9229
9230 PR tree-optimization/42720
9231 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
9232 loop unswitch conditions here from ...
9233 (tree_unswitch_single_loop): ... here.
9234
9235 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
9236
9237 * tree-if-conv.c: Fix comments and simplify logic.
9238
9239 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
9240
9241 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
9242 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
9243 (main_tree_if_conversion): Update call to tree_if_conversion.
9244
9245 2010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
9246
9247 PR 42485
9248 * doc/invoke.texi (-b,-V): Delete.
9249 * doc/tm.texi: Do not mention -b.
9250 * gcc.c (display_help): Delete -b and -V.
9251 (process_command): Delete -b and -V.
9252 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
9253
9254 2010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
9255 Wolfgang Gellerich <gellerich@de.ibm.com>
9256
9257 Implement target hook for loop unrolling
9258 * target.h (loop_unroll_adjust): Add a new target hook function.
9259 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
9260 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
9261 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
9262 (s390_loop_unroll_adjust): Implement the new target hook for s390.
9263 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
9264 target hook.
9265 (decide_unroll_stupid): Likewise.
9266
9267 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9268
9269 PR target/43643
9270 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
9271
9272 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9273
9274 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
9275 (Specific, *-*-solaris2*): Likewise.
9276 Don't prefer Sun as over GNU as.
9277
9278 2010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
9279
9280 * config/s390/s390.c (override_options): Adjust the z10 defaults
9281 for max-unroll-times, max-completely-peeled-insns
9282 and max-completely-peel-times.
9283
9284 2010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9285
9286 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
9287 instructions for z10.
9288 (s390_expand_setmem): Likewise.
9289 (s390_expand_cmpmem): Likewise.
9290
9291 2010-04-08 Richard Guenther <rguenther@suse.de>
9292
9293 PR tree-optimization/43679
9294 * tree-ssa-pre.c (eliminate): Only propagate copies.
9295
9296 2010-04-08 Jakub Jelinek <jakub@redhat.com>
9297
9298 PR bootstrap/43681
9299 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
9300 set but not used variable warning.
9301
9302 2010-04-08 Wei Guozhi <carrot@google.com>
9303
9304 PR target/41653
9305 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
9306 (arm_size_rtx_costs): Call the new function when optimized for size.
9307
9308 2010-04-08 Jakub Jelinek <jakub@redhat.com>
9309
9310 PR debug/43670
9311 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
9312 op0 is not a MEM, just return NULL instead of assertion
9313 failure.
9314 (discover_nonconstant_array_refs): Don't walk debug stmts.
9315
9316 2010-04-08 Doug Kwan <dougkwan@google.com>
9317
9318 * configure.ac: Recognize gold and do not use its version number
9319 to test ld features.
9320 * configure: Regenerate.
9321
9322 2010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
9323
9324 PR middle-end/40815
9325 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
9326 (negate_value): Move code to push elements to broken_up_substracts ...
9327 (eliminate_plus_minus_pair): ... here. Push operands that have no
9328 negative pair to plus_negates.
9329 (repropagate_negates, init_reassoc, fini_reassoc): Update.
9330
9331 2010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9332
9333 * doc/install.texi (Configuration): Move description of
9334 --enable-lto, --with-libelf*, --enable-gold from Java section to
9335 general section.
9336
9337 * doc/generic.texi (Working with declarations)
9338 (Function Properties, C and C++ Trees): Fix typos.
9339 * doc/sourcebuild.texi (Top Level): Likewise.
9340
9341 2010-04-07 Jakub Jelinek <jakub@redhat.com>
9342
9343 PR c/18624
9344 * tree.h (DECL_READ_P): Define.
9345 (struct tree_decl_common): Add decl_read_flag.
9346 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
9347 a set but not used warning.
9348 (merge_decls): Merge DECL_READ_P flag.
9349 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
9350 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
9351 * c-common.c (handle_used_attribute, handle_unused_attribute):
9352 Likewise.
9353 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
9354 New prototypes.
9355 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
9356 New functions.
9357 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
9358 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
9359 c_parser_binary_expression, c_parser_cast_expression,
9360 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
9361 Call default_function_array_read_conversion instead of
9362 default_function_array_conversion where needed.
9363 (c_parser_unary_expression, c_parser_conditional_expression,
9364 c_parser_postfix_expression_after_primary, c_parser_initelt):
9365 Likewise. Call mark_exp_read where needed.
9366 (c_parser_statement_after_labels, c_parser_asm_operands,
9367 c_parser_typeof_specifier, c_parser_sizeof_expression,
9368 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
9369 where needed.
9370 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
9371 New.
9372 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
9373 (warn_unused_but_set_parameter): Default to warn_unused
9374 && extra_warnings.
9375 * doc/invoke.texi: Document -Wunused-but-set-variable and
9376 -Wunused-but-set-parameter.
9377
9378 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
9379 used count variable.
9380 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
9381 when operandN variables aren't used in the body of the expander
9382 or splitter.
9383 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
9384 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
9385 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
9386 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
9387 FOR_EACH_IMM_USE_ON_STMT): Likewise.
9388 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
9389 * tree.c (PROCESS_ARG): Likewise.
9390
9391 2010-04-07 Simon Baldwin <simonb@google.com>
9392
9393 * diagnostic.h (diagnostic_override_option_index): New macro to
9394 set a diagnostic's option_index.
9395 * c-tree.h (c_cpp_error): Add warning reason argument.
9396 * opts.c (_warning_as_error_callback): New.
9397 (register_warning_as_error_callback): Store callback for
9398 warnings enabled via enable_warning_as_error.
9399 (enable_warning_as_error): Call callback, minor code tidy.
9400 * opts.h (register_warning_as_error_callback): Declare.
9401 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
9402 response to -Werror=.
9403 (c_common_init_options): Register warning_as_error_callback in opts.c.
9404 * common.opt: Add -Wno-cpp option.
9405 * c-common.c (struct reason_option_codes_t): Map cpp warning
9406 reason codes to gcc option indexes.
9407 * (c_option_controlling_cpp_error): New function, lookup the gcc
9408 option index for a cpp warning reason code.
9409 * (c_cpp_error): Add warning reason argument, call
9410 c_option_controlling_cpp_error for diagnostic_override_option_index.
9411 * doc/invoke.texi: Document -Wno-cpp.
9412
9413 2010-04-07 Richard Guenther <rguenther@suse.de>
9414
9415 * ipa-reference.c (mark_load): Use get_base_address.
9416 (mark_store): Likewise.
9417
9418 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
9419 inserting GIMPLE_NOPs into the IL.
9420 * tree-ssa-structalias.c (get_constraint_for_component_ref):
9421 Explicitly strip handled components and indirect references.
9422
9423 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
9424 folding address expressions.
9425 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
9426 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
9427 operand_equal_p to compare decls.
9428 (ptr_deref_may_alias_decl_p): Likewise.
9429 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
9430 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
9431 Handle reversed comparison ops.
9432 * tree-sra.c (asm_visit_addr): Use get_base_address.
9433 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
9434 * ipa-reference.c (mark_address): Use get_base_address.
9435
9436 2010-04-07 Richard Guenther <rguenther@suse.de>
9437
9438 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
9439 Propagate constants everywhere.
9440
9441 2010-04-07 Jakub Jelinek <jakub@redhat.com>
9442
9443 PR debug/43516
9444 * tree.c (MAX_INT_CACHED_PREC): Define.
9445 (nonstandard_integer_type_cache): New array.
9446 (build_nonstandard_integer_type): Cache results for precision
9447 <= MAX_INT_CACHED_PREC.
9448
9449 2010-04-07 Richard Guenther <rguenther@suse.de>
9450
9451 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
9452 -fargument-noalias-global, -fargument-noalias-anything): Remove.
9453 * common.opt: Likewise.
9454 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
9455 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
9456 (nonoverlapping_memrefs_p): Likewise.
9457 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9458 * opts.c (common_handle_option): Handle OPT_fargument_alias,
9459 OPT_fargument_noalias, OPT_fargument_noalias_anything and
9460 OPT_fargument_noalias_global for backward compatibility.
9461
9462 2010-04-07 Richard Guenther <rguenther@suse.de>
9463
9464 PR tree-optimization/43270
9465 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
9466 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
9467 * tree-ssa-pre.c (phi_translate_1): Adjust.
9468 (fully_constant_expression): Split out vn_reference handling to ...
9469 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
9470 Fold reads from constant strings.
9471 (vn_reference_lookup): Handle fully constant references.
9472 (vn_reference_lookup_pieces): Likewise.
9473 * Makefile.in (expmed.o-warn): Add -Wno-error.
9474
9475 2010-04-07 Martin Jambor <mjambor@suse.cz>
9476
9477 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
9478
9479 2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
9480
9481 PR driver/41594
9482 * gcc.c: Add -static-libstdc++ to list of recognized options.
9483
9484 2010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9485
9486 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
9487
9488 2010-04-07 Richard Guenther <rguenther@suse.de>
9489
9490 PR middle-end/42617
9491 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
9492 bases build simple mem attributes to retain points-to information.
9493
9494 2010-04-07 Richard Guenther <rguenther@suse.de>
9495
9496 PR middle-end/42617
9497 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
9498 preserve points-to related information.
9499
9500 2010-04-07 Richard Guenther <rguenther@suse.de>
9501
9502 PR middle-end/42617
9503 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
9504 discard plain indirect references.
9505 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
9506 * tree.c (tree_nop_conversion): Likewise.
9507
9508 2010-04-07 Dodji Seketeli <dodji@redhat.com>
9509
9510 PR debug/43628
9511 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
9512
9513 2010-04-06 Kai Tietz <kai.tietz@onevision.com>
9514
9515 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
9516 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
9517
9518 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
9519
9520 * tree-if-conv.c: Fix indentation and comments.
9521
9522 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
9523
9524 * tree-if-conv.c: Sort static functions in topological order.
9525
9526 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
9527
9528 * tree-if-conv.c: Fix indentation and comments.
9529
9530 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
9531
9532 PR middle-end/43519
9533 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
9534 lang_hooks.types.type_for_size instead of
9535 build_nonstandard_integer_type.
9536 When converting an unsigned type to signed, double its precision.
9537 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
9538 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
9539 (graphite_create_new_loop_guard): When ub + 1 wraps around,
9540 use lb <= ub.
9541
9542 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
9543
9544 PR middle-end/43519
9545 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
9546 POINTER_PLUS_EXPR for pointer types.
9547
9548 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
9549
9550 PR middle-end/43519
9551 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
9552 * graphite-clast-to-gimple.c: Include langhooks.h.
9553 (max_signed_precision_type): New.
9554 (max_precision_type): Takes two types as arguments.
9555 (precision_for_value): New.
9556 (precision_for_interval): New.
9557 (gcc_type_for_interval): New.
9558 (gcc_type_for_value): New.
9559 (gcc_type_for_clast_term): New.
9560 (gcc_type_for_clast_red): New.
9561 (gcc_type_for_clast_bin): New.
9562 (gcc_type_for_clast_expr): Split up into several functions.
9563 (gcc_type_for_clast_eq): Rewritten.
9564 (compute_bounds_for_level): New.
9565 (compute_type_for_level_1): New.
9566 (compute_type_for_level): New.
9567 (gcc_type_for_cloog_iv): Removed.
9568 (gcc_type_for_iv_of_clast_loop): Rewritten.
9569 (graphite_create_new_loop): Compute the lower and upper bound types
9570 with gcc_type_for_clast_expr.
9571 (graphite_create_new_loop_guard): Same.
9572 (find_cloog_iv_in_expr): Removed.
9573 (compute_cloog_iv_types_1): Removed.
9574 (compute_cloog_iv_types): Removed.
9575 (gloog): Do not call compute_cloog_iv_types.
9576 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
9577 GBB_CLOOG_IV_TYPES.
9578 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
9579 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
9580 (GBB_CLOOG_IV_TYPES): Removed.
9581
9582 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
9583
9584 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
9585 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
9586 (detect_commutative_reduction): Same.
9587
9588 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
9589
9590 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
9591 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
9592 argument.
9593 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
9594 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
9595 (rewrite_commutative_reductions_out_of_ssa): Same.
9596 * passes.c (execute_function_todo): Call verify_ssa for every pass
9597 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
9598 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
9599 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
9600 with an extra argument.
9601 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
9602 verify_ssa only when the extra argument is true.
9603 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
9604 with an extra argument.
9605 (tree_transform_and_unroll_loop): Same.
9606
9607 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
9608
9609 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
9610 for all the passes of the LNO having LOOP_CLOSED_SSA.
9611 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
9612 * tree-loop-distribution.c (pass_loop_distribution): Same.
9613 * tree-pass.h (TODO_verify_loops): Removed.
9614 * tree-ssa-loop.c (pass_tree_loop_init): Same.
9615 (pass_lim): Same.
9616 (pass_tree_unswitch): Same.
9617 (pass_predcom): Same.
9618 (pass_vectorize): Same.
9619 (pass_linear_transform): Same.
9620 (pass_graphite_transforms): Same.
9621 (pass_iv_canon): Same.
9622 (pass_complete_unroll): Same.
9623 (pass_complete_unrolli): Same.
9624 (pass_parallelize_loops): Same.
9625 (pass_loop_prefetch): Same.
9626 (pass_iv_optimize): Same.
9627
9628 2010-04-06 Changpeng Fang <changpeng.fang@amd.com>
9629
9630 PR middle-end/32824
9631 * passes.c (init_optimization_passes): Move pass_lim before
9632 pass_copy_prop and pass_dce_loop.
9633
9634 2010-04-06 Jakub Jelinek <jakub@redhat.com>
9635
9636 PR target/43667
9637 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
9638 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
9639 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
9640 MULTI_* defines for 4 argument vpermil2p* builtins.
9641
9642 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
9643
9644 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
9645 * config/i386/i386.c (x86_maybe_negate_const_int): New.
9646 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
9647 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
9648 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
9649 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
9650 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
9651 Use x86_maybe_negate_const_int to output insn mnemonic.
9652 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
9653 check from instruction predicate. Update comments.
9654 * config/i386/sync.md (sync_add<mode>): Use
9655 x86_maybe_negate_const_int to output insn mnemonic.
9656
9657 2010-04-06 Jan Hubicka <jh@suse.cz>
9658
9659 PR tree-optimization/42906
9660 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
9661 IGNORE_SELF argument. Set visited_control_parents for fully
9662 processed BBs.
9663 (find_obviously_necessary_stmts): Update call of
9664 mark_control_dependent_edges_necessary.
9665 (propagate_necessity): Likewise. Handle PHI edges more curefully.
9666
9667 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
9668
9669 * config/i386/i386.md: Remove comment about 'e' and 'E'
9670 operand modifier.
9671
9672 2010-04-06 Richard Guenther <rguenther@suse.de>
9673
9674 PR tree-optimization/43627
9675 * tree-vrp.c (extract_range_from_unary_expr): Widenings
9676 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
9677 not varying.
9678
9679 2010-04-06 Jakub Jelinek <jakub@redhat.com>
9680
9681 * BASE-VER: Change to 4.6.0.
9682
9683 PR target/43638
9684 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
9685 handling.
9686
9687 2010-04-06 Richard Guenther <rguenther@suse.de>
9688
9689 PR middle-end/43661
9690 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
9691
9692 2010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9693
9694 * doc/invoke.texi (Optimize Options): Document that LTO
9695 won't remove object access purely due to incompatible
9696 declarations.
9697
9698 2010-04-04 Matthias Klose <doko@ubuntu.com>
9699
9700 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
9701 Initialize variable.
9702
9703 2010-04-03 Richard Guenther <rguenther@suse.de>
9704
9705 PR middle-end/42509
9706 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
9707 require a non-NULL MEM_OFFSET.
9708
9709 2010-04-02 Steven Bosscher <steven@gcc.gnu.org>
9710
9711 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
9712 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
9713 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
9714 config/alpha/predicates.md, config/arm/arm.md,
9715 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
9716 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
9717 config/darwin9.h, config/darwin.c, config/darwin.h,
9718 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
9719 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
9720 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
9721 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
9722 config/mips/mips.md, config/mn10300/mn10300.c,
9723 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
9724 config/rs6000/aix.h, config/rs6000/dfp.md,
9725 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
9726 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
9727 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
9728 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
9729 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
9730 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
9731 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
9732 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
9733 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
9734 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
9735 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
9736 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
9737 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
9738 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
9739 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
9740 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
9741 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
9742 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
9743 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
9744 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
9745 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
9746 opt-functions.awk, opth-gen.awk, params.def, passes.c,
9747 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
9748 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
9749 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
9750 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
9751 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
9752 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
9753 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
9754 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
9755 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
9756 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
9757 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
9758 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
9759 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
9760 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
9761
9762 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9763
9764 PR other/43620
9765 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
9766 * aclocal.m4: Regenerate.
9767
9768 2010-04-02 Richard Guenther <rguenther@suse.de>
9769
9770 PR tree-optimization/43629
9771 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
9772 if we have seen a constant value.
9773
9774 2010-04-02 Joseph Myers <joseph@codesourcery.com>
9775
9776 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
9777
9778 2010-04-02 Richard Earnshaw <rearnsha@arm.com>
9779
9780 PR target/43469
9781 * arm.c (legitimize_tls_address): Adjust call to
9782 gen_tls_load_dot_plus_four.
9783 (arm_note_pic_base): New function.
9784 (arm_cannot_copy_insn_p): Use it.
9785 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
9786 constraint.
9787
9788 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9789
9790 PR bootstrap/43531
9791
9792 Revert:
9793 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9794
9795 * Makefile.in ($(out_object_file)): Depend on
9796 gt-$(basename $(notdir $(out_file))).h.
9797
9798 2010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
9799
9800 * config.gcc (lm32-*-rtems*): Add t-lm32.
9801
9802 2010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
9803
9804 * config.gcc: Add lm32-*-rtems*.
9805 * config/lm32/rtems.h: New file.
9806
9807 2010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
9808
9809 PR target/42609
9810 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
9811
9812 2010-04-01 Jakub Jelinek <jakub@redhat.com>
9813
9814 * dwarf2out.c (output_compilation_unit_header): For
9815 -gdwarf-4 use version 4 instead of version 3.
9816 (output_line_info): For version 4 and above emit additional
9817 maximum ops per insn header field.
9818 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
9819
9820 * dwarf2out.c (is_c_family, is_java): Remove.
9821 (lower_bound_default): New function.
9822 (add_bound_info, gen_descr_array_type_die): Use it.
9823
9824 2010-04-01 Dodji Seketeli <dodji@redhat.com>
9825
9826 PR debug/43325
9827 * dwarf2out.c (gen_variable_die): Allow debug info for variable
9828 re-declaration when it happens in a function.
9829
9830 2010-04-01 Aldy Hernandez <aldyh@redhat.com>
9831
9832 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
9833 (cgraph_remove_function_insertion_hook): Same.
9834 (cgraph_call_function_insertion_hooks): Same.
9835
9836 2010-04-01 Richard Guenther <rguenther@suse.de>
9837
9838 PR middle-end/43614
9839 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
9840 and TREE_THIS_VOLATILE.
9841 (copy_ref_info): Likewise.
9842 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
9843 * tree.c (build6_stat): Ignore side-effects of all but arg5
9844 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
9845 TARGET_MEM_REF.
9846
9847 2010-04-01 Richard Guenther <rguenther@suse.de>
9848
9849 PR tree-optimization/43607
9850 * ipa-type-escape.c (check_call): Do not access non-existing
9851 arguments.
9852
9853 2010-04-01 Richard Guenther <rguenther@suse.de>
9854
9855 PR middle-end/43602
9856 Revert
9857 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
9858 Jack Howarth <howarth@bromo.med.uc.edu>
9859
9860 * tree-profile.c (tree_init_ic_make_global_vars): Make static
9861 variables TLS.
9862
9863 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9864
9865 * doc/install.texi (Prerequisites): Document libelf usability on
9866 IRIX 5/6 and Solaris 2.
9867 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
9868 Update GNU as, GNU ld requirements.
9869 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
9870 Document Sun Studio compiler download.
9871 Update and simplify as, ld recommendations.
9872 (Specific, *-*-solaris2.7): Note obsoletion, removal.
9873
9874 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9875
9876 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
9877 with_tune_32 to pentium4.
9878
9879 2010-04-01 Uros Bizjak <ubizjak@gmail.com>
9880
9881 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
9882
9883 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9884
9885 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
9886 obsoletion, removal.
9887 Update IDO URL.
9888 Document GNU as requirement.
9889 Update configure requirements.
9890 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
9891 Recomment IRIX 6.5.18+.
9892 Document IDF/IDL requirement.
9893 Document GNU as requirement.
9894 Document GNU ld bootstrap failure.
9895 Remove freeware.sgi.com reference.
9896
9897 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9898
9899 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
9900 UNIX V4.0, V5.0 obsoletion, removal.
9901 Remove --with-gc=simple reference.
9902 Update VM requirements during bootstrap.
9903 Remove -oldas bootstrap description.
9904 Update binutils reference.
9905 Remove comparison failure note.
9906
9907 2010-03-31 Richard Guenther <rguenther@suse.de>
9908 Zdenek Dvorak <ook@ucw.cz>
9909 Sebastian Pop <sebastian.pop@amd.com>
9910
9911 PR middle-end/43464
9912 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
9913 with multiple arguments.
9914 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
9915
9916 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
9917
9918 * graphite-dependences.c (print_pddr): Call print_pdr with an
9919 extra argument.
9920 * graphite-poly.c (debug_pdr): Add an extra argument for the
9921 verbosity level.
9922 (print_pdr): Same.
9923 (print_pbb_domain): Same.
9924 (print_pbb): Same.
9925 (print_scop_context): Same.
9926 (print_scop): Same.
9927 (print_cloog): Same.
9928 (debug_pbb_domain): Same.
9929 (debug_pbb): Same.
9930 (print_pdrs): Same.
9931 (debug_pdrs): Same.
9932 (debug_scop_context): Same.
9933 (debug_scop): Same.
9934 (debug_cloog): Same.
9935 (print_scop_params): Same.
9936 (debug_scop_params): Same.
9937 (print_iteration_domain): Same.
9938 (print_iteration_domains): Same.
9939 (debug_iteration_domain): Same.
9940 (debug_iteration_domains): Same.
9941 (print_scattering_function): Same.
9942 (print_scattering_functions): Same.
9943 (debug_scattering_function): Same.
9944 (debug_scattering_functions): Same.
9945 * graphite-poly.h (debug_pdr): Update declaration.
9946 (print_pdr): Same.
9947 (print_pbb_domain): Same.
9948 (print_pbb): Same.
9949 (print_scop_context): Same.
9950 (print_scop): Same.
9951 (print_cloog): Same.
9952 (debug_pbb_domain): Same.
9953 (debug_pbb): Same.
9954 (print_pdrs): Same.
9955 (debug_pdrs): Same.
9956 (debug_scop_context): Same.
9957 (debug_scop): Same.
9958 (debug_cloog): Same.
9959 (print_scop_params): Same.
9960 (debug_scop_params): Same.
9961 (print_iteration_domain): Same.
9962 (print_iteration_domains): Same.
9963 (debug_iteration_domain): Same.
9964 (debug_iteration_domains): Same.
9965 (print_scattering_function): Same.
9966 (print_scattering_functions): Same.
9967 (debug_scattering_function): Same.
9968 (debug_scattering_functions): Same.
9969
9970 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
9971
9972 * graphite-poly.c (print_scattering_function_1): New.
9973 (print_scattering_function): Call it.
9974 (print_scop_params): Remove spaces at the end of lines.
9975 (print_cloog): New.
9976 (debug_cloog): New.
9977 * graphite-poly.h (print_cloog): Declared.
9978 (debug_cloog): Declared.
9979
9980 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
9981
9982 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
9983 in loop->header.
9984 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
9985 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
9986 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
9987 to switch between adding the IV bump in loop->latch or in loop->header.
9988
9989 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
9990
9991 * graphite-poly.c (print_scattering_function): Pretty print following
9992 the scoplib format.
9993 (print_pdr): Same.
9994 (print_pbb_domain): Same.
9995 (dump_gbb_cases): Same.
9996 (dump_gbb_conditions): Same.
9997 (print_pdrs): Same.
9998 (print_pbb): Same.
9999 (print_scop_params): Same.
10000 (print_scop_context): Same.
10001 (print_scop): Same.
10002 (print_pbb_body): New.
10003 (lst_indent_to): New.
10004 (print_lst): Start new lines with a #.
10005 * graphite-poly.h (pbb_bb): New.
10006 (pbb_index): Use pbb_bb.
10007 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
10008 disjuncts.
10009 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
10010
10011 2010-03-31 Jakub Jelinek <jakub@redhat.com>
10012
10013 * dwarf2out.c (size_of_die): For -gdwarf-4 use
10014 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
10015 and 0 instead of 1 for dw_val_class_flag.
10016 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
10017 dw_val_class_range_list, dw_val_class_loc_list,
10018 dw_val_class_lineptr and dw_val_class_macptr, use
10019 DW_FORM_flag_present for dw_val_class_flag and
10020 DW_FORM_exprloc for dw_val_class_loc.
10021 (output_die): For -gdwarf-4 print dw_val_class_loc
10022 size as uleb128 instead of 1 or 2 bytes and don't print
10023 anything for dw_val_class_flag.
10024
10025 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
10026 instead of cselib_lookup following by tweaking locs->setting_insn.
10027
10028 PR bootstrap/43596
10029 * cselib.c (cselib_process_insn): Clear cselib_current_insn
10030 even before returning from label, setjmp call or volatile asm
10031 handling.
10032
10033 2010-03-31 Richard Guenther <rguenther@suse.de>
10034
10035 PR middle-end/43600
10036 * cgraphunit.c (cgraph_output_in_order): Do not allocate
10037 temporary data on stack.
10038
10039 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10040
10041 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
10042 (PUSHSECTION_ASM_OP): Remove.
10043 (POPSECTION_ASM_OP): Remove.
10044 (PUSHSECTION_FORMAT): Remove.
10045 * config/sol2.h (PUSHSECTION_FORMAT): Define.
10046 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
10047 * config/sol2.c (solaris_output_init_fini): Use it.
10048
10049 2010-03-31 Jie Zhang <jie@codesourcery.com>
10050
10051 PR 43574
10052 * opt-functions.awk (var_type_struct): Use signed char type
10053 for simple variables.
10054
10055 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10056
10057 * config/sol2.c: Include output.h.
10058 (solaris_assemble_visibility): New function.
10059 * config/t-sol2 (sol2.o): Add output.h dependency.
10060 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
10061 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
10062 Redefine.
10063
10064 2010-03-31 Jakub Jelinek <jakub@redhat.com>
10065
10066 PR target/43580
10067 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
10068 V2SImode or XFmode on PRE_DEC.
10069
10070 PR debug/43557
10071 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
10072 BLKmode.
10073
10074 2010-03-31 Jie Zhang <jie@codesourcery.com>
10075
10076 PR 43562
10077 * reload.h (caller_save_initialized_p): Declare.
10078 * toplev.c (backend_init_target): Don't call
10079 init_caller_save but set caller_save_initialized_p to false.
10080 * caller-save.c (caller_save_initialized_p): Define.
10081 (init_caller_save): Check caller_save_initialized_p.
10082 * ira.c (ira): Call init_caller_save if flag_caller_saves.
10083
10084 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10085
10086 PR target/39048
10087 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
10088 and soft-fp/t-softfp to tmake_file.
10089 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
10090 (LIBGCC2_TF_CEXT): Define.
10091 (TF_SIZE): Define.
10092
10093 2010-03-30 Alexandre Oliva <aoliva@redhat.com>
10094
10095 PR debug/42977
10096 * cselib.c (n_useless_values): Document handling of debug locs.
10097 (n_useless_debug_values, n_debug_values): New variables.
10098 (new_elt_loc_list): Don't add to debug values, keep count.
10099 (promote_debug_loc): New.
10100 (cselib_reset_table): Zero new variables.
10101 (entry_and_rtx_equal_p): Promote debug locs.
10102 (discard_useless_locs): Increment n_useless_debug_values for
10103 debug values.
10104 (remove_useless_values): Adjust n_useless_values and n_debug_values
10105 with n_useless_debug_values.
10106 (add_mem_for_addr): Promote debug locs.
10107 (cselib_lookup_mem): Likewise.
10108 (cselib_lookup_addr): Renamed to...
10109 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
10110 (cselib_log_lookup): ... this. Turn into...
10111 (cselib_lookup_addr): ... new wrapper.
10112 (cselib_lookup_from_insn): New.
10113 (cselib_invalidate_regno): Increment n_useless_debug_values for
10114 debug values.
10115 (cselib_invalidate_mem): Likewise.
10116 (cselib_process_insn): Take n_deleted and n_debug_values into
10117 account to guard remove_useless_value call.
10118 (cselib_finish): Zero n_useless_debug_values.
10119 * cselib.h (cselib_lookup_from_insn): Declare.
10120 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
10121 (sched_analyze_2): Likewise.
10122
10123 2010-03-30 Jakub Jelinek <jakub@redhat.com>
10124
10125 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
10126 functions.
10127 (adjust_mems): Replace narrowing SUBREG of expression containing
10128 just PLUS, MINUS, MULT and ASHIFT of registers and constants
10129 with operations in the narrower mode.
10130
10131 PR debug/43593
10132 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
10133 regs_invalidated_by_call instead all call_used_reg_set registers.
10134
10135 2010-03-30 Sebastian Pop <sebastian.pop@amd.com>
10136
10137 PR middle-end/43430
10138 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
10139 pointer comparisons with types_compatible_p.
10140 * tree-vect-stmts.c (vectorizable_call): Same.
10141 (vectorizable_condition): Same.
10142
10143 2010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10144
10145 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
10146 stack check if the mask would be zero.
10147
10148 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
10149 Jack Howarth <howarth@bromo.med.uc.edu>
10150
10151 * tree-profile.c (tree_init_ic_make_global_vars): Make static
10152 variables TLS.
10153
10154 2010-03-30 Joseph Myers <joseph@codesourcery.com>
10155
10156 PR other/25232
10157 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
10158 and __unordtf2.
10159 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
10160 Include ___unordxf2 and ___unordtf2.
10161 * config/i386/libgcc-glibc.ver: Do not define inheritance from
10162 GCC_4.4.0 here.
10163
10164 2010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
10165
10166 * config/lm32/t-lm32: New file.
10167 * config.gcc: Use the above file when targetting lm32.
10168
10169 2010-03-28 Duncan Sands <baldrick@free.fr>
10170
10171 * Makefile.in (PLUGIN_HEADERS): Add except.h.
10172
10173 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
10174
10175 PR middle-end/43431
10176 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
10177 Improve vectorization cost model diagnostic.
10178
10179 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
10180
10181 PR middle-end/43436
10182 * tree-vect-data-refs.c (vect_analyze_data_refs): When
10183 compute_data_dependences_for_loop returns false, early exit
10184 and output an extra diagnostic for the failed data reference
10185 analysis.
10186
10187 2010-03-29 Richard Guenther <rguenther@suse.de>
10188
10189 PR tree-optimization/43560
10190 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
10191 (can_sm_ref_p): Treat stores to readonly locations as trapping.
10192
10193 2010-03-29 Jie Zhang <jie@codesourcery.com>
10194
10195 PR 43564
10196 * toplev.c (process_options): Set optimization_default_node
10197 and optimization_current_node.
10198 * opts.c (decode_options): Don't set optimization_default_node
10199 and optimization_current_node.
10200
10201 2010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
10202
10203 * config/rtems.h: Abandon -qrtems_debug.
10204
10205 2010-03-28 Jan Hubicka <jh@suse.cz>
10206
10207 PR tree-optimization/43505
10208 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
10209 map should not be copied.
10210
10211 2010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10212
10213 PR middle-end/41674
10214 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
10215 cdtors, set DECL_PRESERVE_P.
10216 * ipa.c (cgraph_externally_visible_p): Return true if declaration
10217 should be preseved.
10218
10219 2010-03-27 Uros Bizjak <ubizjak@gmail.com>
10220
10221 PR tree-optimization/43528
10222 * stor-layout.c (place_field): Check that constant fits into
10223 unsigned HWI when skipping calculation of MS bitfield layout.
10224
10225 2010-03-27 Jan Hubicka <jh@suse.cz>
10226
10227 PR middle-end/43391
10228 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
10229 notice_global_symbol work.
10230
10231 2010-03-27 Jakub Jelinek <jakub@redhat.com>
10232
10233 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
10234 instead of dwarf2out_decl.
10235 (struct var_loc_node): Remove section_label field.
10236 (dwarf2out_function_decl): New function.
10237 (dwarf2out_var_location): Don't set section_label field.
10238 (dwarf2out_begin_function): Don't empty decl_loc_table here.
10239
10240 2010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
10241
10242 PR tree-optimization/43544
10243 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
10244 First argument for builtin vectorized function hook is now a
10245 tree to be able to distinguish between machine specific and
10246 standard builtins.
10247 * targhooks.c (default_builtin_vectorized_function): Ditto.
10248 * targhooks.h (default_builtin_vectorized_function): Ditto.
10249 * target.h (struct gcc_target): Ditto.
10250 * tree-vect-stmts.c (vectorizable_function): Ditto.
10251 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
10252 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
10253 Ditto.
10254
10255 2010-03-26 Joseph Myers <joseph@codesourcery.com>
10256
10257 PR c/43381
10258 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
10259 nested binding iff it is a FUNCTION_DECL.
10260 (store_parm_decls_newstyle): Pass nested=true to bind for
10261 FUNCTION_DECLs amongst parameters.
10262
10263 2010-03-26 Jakub Jelinek <jakub@redhat.com>
10264
10265 * var-tracking.c (vt_expand_loc_callback): Don't run
10266 cselib_expand_value_rtx_cb in dummy mode if
10267 cselib_dummy_expand_value_rtx_cb returned false.
10268
10269 * var-tracking.c (emit_note_insn_var_location): For one part
10270 notes with offset 0, don't add EXPR_LIST around the location.
10271 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
10272 add_location_or_const_value_attribute): Adjust for that change.
10273
10274 PR debug/43540
10275 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
10276 into first operand and location into second.
10277 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
10278 dw_cfi_oprnd_loc for DW_CFA_expression.
10279 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
10280 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
10281 assume first argument is regnum and second argument is location.
10282
10283 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
10284
10285 PR target/42113
10286 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
10287 of scratch register to DImode. Split to DImode comparison operator.
10288 Use SImode subreg of scratch register in the multiplication.
10289 (*cmp_sadd_sidi): Ditto.
10290 (*cmp_ssub_si): Ditto.
10291 (*cmp_ssub_sidi): Ditto.
10292
10293 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
10294
10295 PR target/43524
10296 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
10297 Remove invalid assert and wrong comment.
10298
10299 2010-03-26 Jakub Jelinek <jakub@redhat.com>
10300
10301 PR debug/43516
10302 * flags.h (final_insns_dump_p): New extern.
10303 * final.c (final_insns_dump_p): New variable.
10304 (rest_of_clean_state): Set it before -fdump-final-insns=
10305 dumping, clear afterwards.
10306 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
10307 MEM_ALIAS_SET on MEMs.
10308
10309 2010-03-26 David S. Miller <davem@davemloft.net>
10310
10311 * configure.ac: Fix sparc GOTDATA_OP bug check.
10312 * configure: Rebuild.
10313
10314 2010-03-26 Alan Modra <amodra@gmail.com>
10315
10316 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
10317
10318 2010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10319
10320 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
10321 TLS_SECTION_ASM_FLAG.
10322
10323 2010-03-25 Jakub Jelinek <jakub@redhat.com>
10324
10325 PR bootstrap/43511
10326 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
10327 Clear first_function_block_is_cold.
10328
10329 PR c/43385
10330 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
10331 argument if the argument is truth_value_p.
10332
10333 2010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
10334
10335 * config/rs6000/constraints.md: Update copyright year for my changes.
10336
10337 PR target/43484
10338 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
10339 used in reg+reg addressing, swap registers.
10340
10341 2010-03-24 Jakub Jelinek <jakub@redhat.com>
10342
10343 PR debug/43293
10344 * target.h (struct gcc_target): Add code_end hook.
10345 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
10346 if not yet defined.
10347 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
10348 * toplev.c (compile_file): Call targetm.asm_out.code_end
10349 hook before unwind info/debug info output.
10350 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
10351 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
10352 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
10353 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
10354 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
10355 * config/i386/i386.c (ix86_file_end): Renamed to...
10356 (ix86_code_end): ... this. Make static. Don't call
10357 file_end_indicate_exec_stack. Emit unwind info using
10358 final_start_function/final_end_function.
10359 (darwin_x86_file_end): Remove.
10360 (TARGET_ASM_CODE_END): Define.
10361 * config/i386/i386.h (TARGET_ASM_FILE_END,
10362 NEED_INDICATE_EXEC_STACK): Don't define.
10363 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
10364 (TARGET_ASM_FILE_END): Define to darwin_file_end.
10365 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
10366 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
10367
10368 PR target/43498
10369 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
10370 at the beginning and final_end_function at the end.
10371 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
10372
10373 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10374
10375 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
10376 and Sun as TLS syntax.
10377 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
10378 * configure: Regenerate.
10379 * config.in: Regenerate.
10380 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
10381 (default_elf_asm_named_section): Use it.
10382 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
10383 (i386_output_dwarf_dtprel): Likewise.
10384 (output_addr_const_extra): Likewise.
10385 (output_pic_addr_const): Lowercase @GOTTPOFF.
10386 (output_addr_const_extra): Likewise.
10387 (output_pic_addr_const): Lowercase @GOTNTPOFF.
10388 (output_addr_const_extra): Likewise.
10389 (output_pic_addr_const): Lowercase @INDNTPOFF.
10390 (output_addr_const_extra): Likewise.
10391 (output_pic_addr_const): Lowercase @NTPOFF.
10392 (output_addr_const_extra): Likewise.
10393 (output_pic_addr_const): Lowercase @TPOFF.
10394 (output_addr_const_extra): Likewise.
10395 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
10396 (*tls_global_dynamic_64): Likewise.
10397 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
10398 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
10399
10400 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
10401 (ASM_OUTPUT_TLS_COMMON): Use it.
10402 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
10403
10404 PR target/38118
10405 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
10406 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
10407 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
10408 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
10409 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
10410 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
10411
10412 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10413
10414 * config/i386/i386.c (override_options): Don't accept
10415 -mtls-dialect=sun any longer.
10416 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
10417 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
10418 (*tls_local_dynamic_base_32_sun): Likewise.
10419 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
10420
10421 2010-03-24 Jakub Jelinek <jakub@redhat.com>
10422
10423 PR debug/43508
10424 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10425 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
10426
10427 PR debug/43479
10428 * ira.c (adjust_cleared_regs): New function.
10429 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
10430
10431 PR debug/19192
10432 PR debug/43479
10433 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
10434 from gimple_block.
10435 * expr.c (expand_expr_real): Restore previous
10436 curr_insn_source_location and curr_insn_block after
10437 expand_expr_real_1 call.
10438 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
10439 instead of expand_expr_real_1.
10440
10441 2010-03-23 Vladimir Makarov <vmakarov@redhat.com>
10442
10443 PR rtl-optimization/43413
10444 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
10445 hard regs too.
10446
10447 2010-03-22 James E. Wilson <wilson@codesourcery.com>
10448
10449 PR target/43348
10450 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
10451 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
10452
10453 2010-03-22 H.J. Lu <hongjiu.lu@intel.com>
10454
10455 * config/i386/i386.c (ix86_target_string): Add -mfma.
10456 Fix a typo in comment.
10457
10458 2010-03-22 Mike Stump <mikestump@comcast.net>
10459
10460 PR target/23071
10461 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
10462 Don't overly align based upon packed packed fields.
10463
10464 2010-03-22 Jason Merrill <jason@redhat.com>
10465
10466 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
10467 Use () rather than [], and move before the element type.
10468
10469 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10470
10471 * doc/configfiles.texi (Configuration Files): Removed
10472 fixinc/Makefile*, intl/Makefile.*.
10473 * doc/makefile.texi: Fixed markup. Abstract from version
10474 control system used.
10475 (Makefile): Removed obsolete gcc/java/parse.y example.
10476 * doc/sourcebuild.texi: Likewise.
10477 (Top Level): Added config, gnattools, libdecnumber, libgcc,
10478 libgomp, libssp. Removed fastjar.
10479 (Miscellaneous Docs): Clarify location.
10480 Added COPYING3, COPYING3.LIB.
10481 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
10482
10483 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10484
10485 PR target/38085
10486 * config/i386/i386.c (x86_function_profiler)
10487 [!NO_PROFILE_COUNTERS]: Fix typo.
10488 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
10489 instead of callq.
10490
10491 2010-03-22 Janis Johnson <janis187@us.ibm.com>
10492 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10493
10494 * doc/sourcebuild.texi (Test Directives): Split into six
10495 subsections, with most of the current text in new subsections
10496 Directives, Selectors, and Final Actions.
10497 (Directives): Split list of test directives into multiple
10498 subsubsections.
10499 (Selectors): Describe use and syntax of selectors.
10500 (Effective-Target Keywords): Describe all existing keywords.
10501 (Add Options): Describe features for dg-add-options.
10502 (Require Support): Describe variants of dg-require-support.
10503 (Final Actions): Describe commands to use in dg-final.
10504
10505 2010-03-22 Michael Matz <matz@suse.de>
10506
10507 PR middle-end/43475
10508 * recog.c (validate_replace_rtx_group): Replace also in
10509 REG_EQUAL and REG_EQUIV notes.
10510
10511 2010-03-22 Richard Guenther <rguenther@suse.de>
10512
10513 PR tree-optimization/43390
10514 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
10515 sure vector extracts are type correct.
10516
10517 2010-03-22 Richard Guenther <rguenther@suse.de>
10518
10519 PR middle-end/40106
10520 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
10521 x * sqrt (x) even when optimizing for size if the target
10522 has native support for sqrt.
10523
10524 2010-03-22 Jakub Jelinek <jakub@redhat.com>
10525
10526 * varasm.c (make_decl_rtl_for_debug): Also clear
10527 flag_mudflap for the duration of make_decl_rtl call.
10528
10529 PR debug/43443
10530 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
10531 locs from preserved VALUEs.
10532
10533 2010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10534
10535 PR middle-end/42718
10536 * pa.md (movmemsi): Set align to one if zero.
10537 (movmemdi): Likewise.
10538
10539 2010-03-21 Richard Earnshaw <rearnsha@arm.com>
10540
10541 PR target/42321
10542 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
10543 with their corresponding prologue pushes.
10544
10545 2010-03-20 Andrew Pinski <pinskia@gmail.com>
10546
10547 PR target/43156
10548 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
10549 at the begining or end.
10550 (spu_expand_epilogue): Likewise.
10551
10552 2010-03-20 Richard Guenther <rguenther@suse.de>
10553
10554 PR rtl-optimization/43438
10555 * combine.c (make_extraction): Properly zero-/sign-extend an
10556 extraction of the low part of a CONST_INT. Also handle
10557 CONST_DOUBLE.
10558
10559 2010-03-19 Mike Stump <mikestump@comcast.net>
10560
10561 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
10562 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
10563 (override_options): Use SUBTARGET32_DEFAULT_CPU.
10564
10565 2010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
10566
10567 PR c/43211
10568 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
10569 an error.
10570
10571 2010-03-19 Bernd Schmidt <bernds@codesourcery.com>
10572
10573 PR rtl-optimization/42258
10574 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
10575 use that may match DEF.
10576
10577 PR target/40697
10578 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
10579 the cost of loading the constant rather than assuming
10580 COSTS_N_INSNS (1).
10581 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
10582 outer code is AND, do the same tests as the andsi3 expander and
10583 return COSTS_N_INSNS (1) if and is cheap.
10584
10585 * optabs.c (avoid_expensive_constant): Fix formatting.
10586
10587 2010-03-19 Michael Matz <matz@suse.de>
10588
10589 PR c++/43116
10590 * attribs.c (decl_attributes): When rebuilding a function pointer
10591 type use the same qualifiers as the original pointer type.
10592
10593 2010-03-19 Martin Jambor <mjambor@suse.cz>
10594
10595 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
10596 and is_gimple_ip_invariant_address.
10597
10598 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10599
10600 Revert
10601 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10602
10603 * config/arm/arm.c (arm_override_options): Turn off
10604 flag_dwarf2_cfi_asm for AAPCS variants.
10605
10606 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10607
10608 PR target/43399
10609 * config/arm/arm.c (emit_multi_reg_push): Update comments.
10610 Use PRE_MODIFY instead of PRE_DEC.
10611 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
10612 (vfp_emit_fstmd): Likewise.
10613
10614 2010-03-19 Michael Matz <matz@suse.de>
10615
10616 PR target/43305
10617 * builtins.c (expand_builtin_interclass_mathfn,
10618 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
10619 if that fails.
10620
10621 2010-03-19 Richard Guenther <rguenther@suse.de>
10622
10623 PR tree-optimization/43415
10624 * tree-ssa-pre.c (phi_translate): Split out worker to ...
10625 (phi_translate_1): ... this.
10626 (phi_translate): Move all caching here. Cache all NARY
10627 and REFERENCE translations.
10628
10629 2010-03-19 David S. Miller <davem@davemloft.net>
10630
10631 With help from Eric Botcazou.
10632 * config/sparc/sparc.c: Include dwarf2out.h.
10633 (emit_pic_helper): Delete.
10634 (pic_helper_symbol_name): Delete.
10635 (pic_helper_emitted_p): Delete.
10636 (pic_helper_needed): New.
10637 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
10638 (get_pc_thunk_name): New.
10639 (load_pic_register): Remove 'delay_pic_helper' arg. Use
10640 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
10641 Set pic_helper_needed to true. Don't call emit_pic_helper.
10642 (sparc_expand_prologue): Update load_pic_register call.
10643 (sparc_output_mi_thunk): Likewise.
10644 (sparc_file_end): Emit a hidden comdat symbol for the PIC
10645 thunk if possible. Output CFI information as needed.
10646
10647 2010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
10648 Jack Howarth <howarth@bromo.med.uc.edu>
10649
10650 PR target/36399
10651 * config/i386/i386.h: Fix ABI on darwin x86-32.
10652
10653 2010-03-18 Aldy Hernandez <aldyh@redhat.com>
10654
10655 * tree.h: Declare make_decl_rtl_for_debug.
10656 * varasm.c (make_decl_rtl_for_debug): New.
10657 * dwarf2out.c (rtl_for_decl_location): Call it.
10658 * cfgexpand.c (expand_debug_expr): Call it.
10659
10660 2010-03-18 Jakub Jelinek <jakub@redhat.com>
10661
10662 PR bootstrap/43399
10663 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
10664 mem_mode.
10665
10666 PR bootstrap/43403
10667 * var-tracking.c (vt_init_cfa_base): Do nothing if
10668 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
10669
10670 2010-03-18 Alexandre Oliva <aoliva@redhat.com>
10671
10672 PR debug/42873
10673 * var-tracking.c (canonicalize_vars_star): New.
10674 (dataflow_post_merge_adjust): Use it.
10675
10676 2010-03-18 Jakub Jelinek <jakub@redhat.com>
10677
10678 PR debug/43058
10679 * var-tracking.c (non_suitable_const): New function.
10680 (add_uses): For DEBUG_INSNs with constants, don't record any
10681 value, instead just the constant value itself.
10682 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
10683 is not VAR_LOC_UNKNOWN_P, set var to the constant.
10684 (emit_notes_in_bb): Likewise.
10685 (emit_note_insn_var_location): For onepart variables if
10686 cur_loc is a VOIDmode constant, use DECL_MODE.
10687
10688 2010-03-18 Martin Jambor <mjambor@suse.cz>
10689
10690 PR middle-end/42450
10691 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
10692 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
10693 all non-clones. Moved call redirection...
10694 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
10695 (cgraph_materialize_all_clones): Dispose of all
10696 combined_args_to_skip bitmaps.
10697 (verify_cgraph_node): Do not check for edges pointing to wrong
10698 nodes in inline clones.
10699 * tree-inline.c (copy_bb): Call
10700 cgraph_redirect_edge_call_stmt_to_callee.
10701 * ipa.c (cgraph_remove_unreachable_nodes): Call
10702 cgraph_node_remove_callees even when there are used clones.
10703
10704 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
10705
10706 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
10707
10708 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
10709
10710 PR target/43383
10711 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
10712 for 32bit.
10713
10714 2010-03-18 Michael Matz <matz@suse.de>
10715
10716 PR middle-end/43419
10717 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
10718 into sqrt(x) if we need to preserve signed zeros.
10719
10720 2010-03-18 Steven Bosscher <steven@gcc.gnu.org>
10721 Eric Botcazou <ebotcazou@adacore.com>
10722
10723 PR rtl-optimization/43360
10724 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
10725 note if we don't know its invariant status.
10726
10727 2010-03-18 Michael Matz <matz@suse.de>
10728
10729 PR tree-optimization/43402
10730 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
10731 PHI chains of ssa names registered for update.
10732
10733 2010-03-17 Peter Bergner <bergner@vnet.ibm.com>
10734
10735 PR target/42427
10736 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
10737 non-offsettable and pre_modify update addressing.
10738 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
10739 and "2" alternatives "#".
10740 (*movdd_softfloat32): Make all alternatives "#";
10741 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
10742 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
10743 (*movdf_softfloat32): Make all alternatives "#";
10744 (movdi): Use the new DIFD mode iterator to create a common splitter
10745 for movdi, movdf and movdd patterns.
10746
10747 2010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
10748
10749 * common.opt (dumpdir): Remove redundant tab.
10750
10751 2010-03-17 Martin Jambor <mjambor@suse.cz>
10752
10753 PR tree-optimization/43347
10754 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
10755 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
10756
10757 2010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
10758
10759 PR rtl-optimization/42216
10760 * regrename.c (create_new_chain): New function, broken out from...
10761 (scan_rtx_reg): ... here. Call it. Handle the case where we are
10762 appending a use to an empty chain.
10763 (build_def_use): Remove previous changes that convert OP_INOUT to
10764 OP_OUT operands; instead detect the case where an OP_INOUT operand
10765 uses a previously untracked register and create an empty chain for it.
10766
10767 2010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10768
10769 * doc/extend.texi (Function Attributes): Rewrite unfinished
10770 sentence in ms_abi documentation.
10771
10772 2010-03-17 Alan Modra <amodra@gmail.com>
10773
10774 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
10775 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
10776 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
10777 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
10778
10779 2010-03-16 Richard Henderson <rth@redhat.com>
10780
10781 PR middle-end/43365
10782 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
10783 (lower_try_finally): Save and restore eh_seq around the expansion
10784 of the try-finally.
10785
10786 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
10787
10788 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
10789 statements before splitting block.
10790
10791 2010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10792
10793 * doc/sourcebuild.texi (Testsuites): Fix markup.
10794 Use pathnames relative to gcc/testsuite.
10795 (Test Directives): Move description of how timeout is determined.
10796 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
10797 (C Tests): Correct gcc.misc-tests directory.
10798 Framework tests now live in gcc.test-framework.
10799
10800 2010-03-16 Richard Guenther <rguenther@suse.de>
10801
10802 PR middle-end/43379
10803 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
10804 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
10805
10806 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
10807 Alexandre Oliva <aoliva@redhat.com>
10808
10809 PR tree-optimization/42917
10810 * lambda-code.c (remove_iv): Skip debug statements.
10811 (lambda_loopnest_to_gcc_loopnest): Likewise.
10812 (not_interesting_stmt): Debug statements are not interesting.
10813
10814 2010-03-16 Jakub Jelinek <jakub@redhat.com>
10815
10816 PR debug/43051
10817 PR debug/43092
10818 * cselib.c (cselib_preserve_constants,
10819 cfa_base_preserved_val): New static variables.
10820 (preserve_only_constants): New function.
10821 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
10822 clear its REG_VALUES. If cselib_preserve_constants, don't
10823 empty the whole hash table, but preserve there VALUEs with constants,
10824 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
10825 (cselib_preserve_cfa_base_value): New function.
10826 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
10827 (cselib_init): Change argument to int bitfield. Set
10828 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
10829 is in it.
10830 (cselib_finish): Clear cselib_preserve_constants and
10831 cfa_base_preserved_val.
10832 * cselib.h (enum cselib_record_what): New enum.
10833 (cselib_init): Change argument to int.
10834 (cselib_preserve_cfa_base_value): New prototype.
10835 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
10836 * dse.c (dse_step1): Likewise.
10837 * cfgcleanup.c (thread_jump): Likewise.
10838 * sched-deps.c (sched_analyze): Likewise.
10839 * gcse.c (local_cprop_pass): Likewise.
10840 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
10841 If FN is non-NULL, call the callback always and whenever it returns
10842 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
10843 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
10844 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
10845 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
10846 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
10847 * var-tracking.c: Include recog.h.
10848 (bb_stack_adjust_offset): Remove.
10849 (vt_stack_adjustments): Don't call it, instead just gather the
10850 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
10851 (adjust_stack_reference): Remove.
10852 (compute_cfa_pointer): New function.
10853 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
10854 (struct adjust_mem_data): New type.
10855 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
10856 functions.
10857 (get_address_mode): New function.
10858 (replace_expr_with_values): Use it.
10859 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
10860 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
10861 (adjust_sets): Remove.
10862 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
10863 Use get_address_mode.
10864 (get_adjusted_src): Remove.
10865 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
10866 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
10867 (add_with_sets): Don't call adjust_sets.
10868 (fp_setter, vt_init_cfa_base): New functions.
10869 (vt_initialize): Change return type to bool. Move most of pool etc.
10870 initialization to the beginning of the function from end. Pass
10871 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
10872 If !frame_pointer_needed, call vt_stack_adjustment before mos
10873 vector is filled, call vt_init_cfa_base if argp/framep has been
10874 eliminated to sp. If frame_pointer_needed and argp/framep has
10875 been eliminated to hard frame pointer, set
10876 hard_frame_pointer_adjustment and call vt_init_cfa_base after
10877 encountering fp setter in the prologue. For MO_ADJUST, call
10878 log_op_type before pusing the op into mos vector, not afterwards.
10879 Call adjust_insn before cselib_process_insn/add_with_sets,
10880 call cancel_changes (0) afterwards.
10881 (variable_tracking_main_1): Adjust for vt_initialize calling
10882 vt_stack_adjustments and returning whether it succeeded or not.
10883
10884 2010-03-15 Aldy Hernandez <aldyh@redhat.com>
10885
10886 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
10887 debug statements.
10888
10889 2010-03-15 Jakub Jelinek <jakub@redhat.com>
10890
10891 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
10892 has been set.
10893 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
10894 drap_reg has not been set.
10895
10896 2010-03-15 Michael Matz <matz@suse.de>
10897
10898 PR middle-end/43300
10899 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
10900 use it to expand block copies.
10901 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
10902 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
10903 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
10904
10905 2010-03-15 Richard Guenther <rguenther@suse.de>
10906
10907 PR tree-optimization/43367
10908 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
10909 elimination check.
10910
10911 2010-03-15 Richard Guenther <rguenther@suse.de>
10912
10913 PR tree-optimization/43317
10914 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
10915
10916 2010-03-15 Martin Jambor <mjambor@suse.cz>
10917
10918 PR tree-optimization/43141
10919 * tree-sra.c (create_abstract_origin): New function.
10920 (modify_function): Call create_abstract_origin.
10921
10922 2010-03-15 Chris Demetriou <cgd@google.com>
10923
10924 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
10925 wasn't copied.
10926
10927 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
10928
10929 PR middle-end/43354
10930 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
10931 call insert_out_of_ssa_copy for default definitions.
10932
10933 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
10934
10935 * graphite-clast-to-gimple.c (my_long_long): Defined.
10936 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
10937 * graphite-sese-to-poly.c (my_long_long): Defined.
10938 (scop_ivs_can_be_represented): Use it.
10939
10940 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
10941
10942 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
10943 graphite-max-bbs-per-function, and loop-block-tile-size.
10944 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
10945 with "maximum".
10946 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
10947
10948 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
10949
10950 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
10951 forward declaration.
10952 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
10953 (add_upper_bounds_from_estimated_nit): New.
10954 (build_loop_iteration_domains): Use it.
10955
10956 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
10957
10958 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
10959
10960 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
10961
10962 PR middle-end/43306
10963 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
10964 should be an INTEGER_CST. Also handle CASE_CONVERT.
10965
10966 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
10967
10968 * graphite.c (graphite_initialize): To bound the number of bbs per
10969 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
10970 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
10971 * doc/invoke.texi: Document it.
10972
10973 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
10974
10975 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
10976 * graphite-sese-to-poly.h (build_poly_scop): Same.
10977
10978 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
10979
10980 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
10981 the number of parameters in the scop. Use as an upper bound
10982 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
10983 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
10984 * doc/invoke.texi: Document it.
10985
10986 2010-03-13 Jerry Quinn <jlquinn@optonline.net>
10987
10988 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
10989 * doc/c-tree.texi: Remove.
10990 * doc/generic.texi: Merge c-tree.texi here.
10991 * doc/gccint.texi (Trees): Remove menu entry.
10992 (c-tree.texi): Remove @include.
10993 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
10994 * doc/languages.texi (Reading RTL): Ditto.
10995
10996 2010-03-12 Steve Ellcey <sje@cup.hp.com>
10997
10998 PR target/42869
10999 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
11000
11001 2010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
11002
11003 PR middle-end/42431
11004 * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
11005 code added to work around reload clobbering CONST insns.
11006
11007 2010-03-12 Jakub Jelinek <jakub@redhat.com>
11008
11009 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
11010 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
11011 (cselib_preserve_only_values): Remove retain argument, don't
11012 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
11013 * cselib.h (cselib_preserve_only_values): Remove retain argument.
11014 * var-tracking.c (micro_operation): Move insn field before union.
11015 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
11016 (struct variable_tracking_info_def): Remove n_mos field, change
11017 mos into a vector of micro_operations.
11018 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
11019 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
11020 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
11021 changing into a vector.
11022 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
11023 come before all other uops generated by add_stores.
11024 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
11025 argument removal.
11026 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
11027 a vector. Run just one pass over the bbs instead of separate counting
11028 and computation phase.
11029 (vt_finalize): Free VTI (bb)->mos vector instead of array.
11030
11031 PR debug/43329
11032 * tree-inline.c (remap_decls): Put old_var rather than origin_var
11033 into *nonlocalized_list vector.
11034 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
11035 even if origin is non-NULL.
11036 (gen_variable_die): Likewise.
11037 (process_scope_var): Don't change origin.
11038 (gen_decl_die): Likewise.
11039 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
11040 before adding new edges instead of after it, fix moving over
11041 debug stmts.
11042
11043 2010-03-11 David S. Miller <davem@davemloft.net>
11044
11045 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
11046 of four.
11047 * configure: Rebuild.
11048
11049 2010-03-11 Martin Jambor <mjambor@suse.cz>
11050
11051 PR tree-optimization/43257
11052 * tree.c (assign_assembler_name_if_neeeded): New function.
11053 (free_lang_data_in_cgraph): Assembler name assignment moved to the
11054 above new function.
11055 * tree.h (assign_assembler_name_if_neeeded): Declare.
11056 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
11057 the function if needed.
11058
11059 2010-03-11 Chris Demetriou <cgd@google.com>
11060
11061 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
11062 include/stdint-gcc.h, and include/stdint.h world-readable.
11063
11064 2010-03-11 Richard Guenther <rguenther@suse.de>
11065
11066 PR tree-optimization/43255
11067 * tree-vrp.c (process_assert_insertions_for): Do not insert
11068 asserts for trivial conditions.
11069
11070 2010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11071
11072 PR tree-optimization/43280
11073 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
11074 generation. Move calculation of size out of the if branch.
11075 (find_bswap): Modify compare number generation.
11076
11077 2010-03-11 Richard Guenther <rguenther@suse.de>
11078
11079 PR lto/43200
11080 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
11081 (input_gimple_stmt): Fixup handled component types during
11082 operand read. Also fix up decls in ADDR_EXPRs.
11083
11084 2010-03-10 Eric Botcazou <ebotcazou@adacore.com>
11085
11086 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
11087 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
11088
11089 2010-03-10 Jan Hubicka <jh@suse.cz>
11090
11091 PR c/43288
11092 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
11093 * varasm.c (get_variable_section): Don't do that here...
11094 (make_decl_rtl): ... and here.
11095 (do_assemble_alias): Produce decl RTL.
11096 (assemble_alias): Likewise.
11097
11098 2010-03-10 Jakub Jelinek <jakub@redhat.com>
11099
11100 PR debug/43290
11101 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
11102 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
11103 of fde->vdrap_reg.
11104 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
11105 (based_loc_descr): Only express drap or vdrap regno based expressions
11106 using DW_OP_fbreg when not optimizing.
11107 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
11108 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
11109 REG_CFA_SET_VDRAP note.
11110
11111 2010-03-10 Alexander Monakov <amonakov@ispras.ru>
11112
11113 PR tree-optimization/43236
11114 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
11115 error in calculation of base address in reverse iteration case.
11116 (generate_builtin): Take number of latch executions if the statement
11117 is in the latch.
11118
11119 2010-03-10 Andrey Belevantsev <abel@ispras.ru>
11120
11121 PR middle-end/42859
11122 * tree-eh.c: Include pointer-set.h.
11123 (lower_eh_dispatch): Filter out duplicate case labels and
11124 remove the unneeded edge when the label is unused. Return
11125 true when some edges are removed.
11126 (execute_lower_eh_dispatch): When any lowering resulted in
11127 removing an edge, also delete unreachable blocks.
11128
11129 2010-03-10 Jakub Jelinek <jakub@redhat.com>
11130
11131 PR bootstrap/43287
11132 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11133 UNSPEC_MACHOPIC_OFFSET.
11134
11135 2010-03-09 Andreas Schwab <schwab@linux-m68k.org>
11136
11137 PR target/43294
11138 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
11139 (m68k_delegitimize_address): New function.
11140
11141 2010-03-09 Jakub Jelinek <jakub@redhat.com>
11142
11143 PR debug/43299
11144 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
11145
11146 PR debug/43299
11147 * var-tracking.c (adjust_sets): New function.
11148 (count_with_sets, add_with_sets): Use it.
11149 (get_adjusted_src): New inline function.
11150 (add_stores): Use it.
11151
11152 PR debug/43304
11153 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
11154 call cselib_dummy_expand_value_rtx_cb instead of
11155 cselib_expand_value_rtx_cb.
11156
11157 PR debug/43293
11158 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
11159 * config/i386/i386.c: Include debug.h and dwarf2out.h.
11160 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
11161 and .cfi_endproc around the pic thunks.
11162 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
11163 all queued unwind info register saves are saved before the call.
11164 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
11165 considered as sp-=4 for unwind info and the pop as sp+=4 which
11166 also clobbers dest, but doesn't actually restore it.
11167
11168 PR debug/43290
11169 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
11170 RTX_FRAME_RELATED_P.
11171
11172 2010-03-09 Jie Zhang <jie@codesourcery.com>
11173
11174 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
11175 whitespaces in output template.
11176
11177 2010-03-09 Jie Zhang <jie@codesourcery.com>
11178
11179 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
11180 out array boundary.
11181
11182 2010-03-08 Jakub Jelinek <jakub@redhat.com>
11183
11184 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
11185 builtins.exp in a separate job.
11186
11187 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
11188
11189 * graphite-sese-to-poly.c (add_param_constraints): Use
11190 lower_bound_in_type and upper_bound_in_type.
11191
11192 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
11193
11194 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
11195 instead of unsigned_type_node.
11196
11197 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
11198 Reza Yazdani <reza.yazdani@amd.com>
11199
11200 PR middle-end/43065
11201 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
11202 on pointer type parameters.
11203
11204 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
11205
11206 PR middle-end/42644
11207 PR middle-end/42130
11208 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
11209 handle conversions from pointer to integers.
11210 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
11211 induction variable, to be able to work with code generated by CLooG.
11212 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
11213 (build_poly_scop): Bail out if we cannot codegen a loop.
11214
11215 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
11216
11217 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
11218 code generation with gloog_error.
11219
11220 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
11221
11222 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
11223 Call fold_convert on all the returned values.
11224 (expand_scalar_variables_expr): Pass to
11225 expand_scalar_variables_ssa_name the type of the resulting expression.
11226
11227 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
11228
11229 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
11230 ppl_min_for_le_pointset.
11231 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
11232 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
11233
11234 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
11235
11236 * graphite-dependences.c (map_into_dep_poly): Removed.
11237 (dependence_polyhedron_1): Use combine_context_id_scat.
11238
11239 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
11240
11241 * graphite-poly.h (struct poly_scattering): Add layout documentation.
11242 (struct poly_bb): Same.
11243 (combine_context_id_scat): New.
11244
11245 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
11246
11247 PR middle-end/42326
11248 * sese.c (name_defined_in_loop_p): Return false for default
11249 definitions.
11250
11251 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
11252
11253 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
11254 and clean up the logic.
11255
11256 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
11257
11258 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
11259 early return.
11260
11261 2010-03-08 Jakub Jelinek <jakub@redhat.com>
11262
11263 * var-tracking.c (remove_cselib_value_chains): Define only for
11264 ENABLE_CHECKING.
11265 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
11266 delete_slot_part, emit_notes_for_differences_1): Don't call
11267 remove_cselib_value_chains here.
11268 (set_slot_part, emit_notes_for_differences_2): Don't call
11269 add_cselib_value_chains here.
11270 (preserved_values): New vector.
11271 (preserve_value): New function.
11272 (add_uses, add_stores, vt_add_function_parameters): Use it
11273 instead of cselib_preserve_value.
11274 (changed_values_stack): New vector.
11275 (check_changed_vars_0): New function.
11276 (check_changed_vars_1, check_changed_vars_2): Use it.
11277 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
11278 changed_values_stack VALUEs.
11279 (vt_emit_notes): For all preserved_values call
11280 add_cselib_value_chains. If ENABLE_CHECKING call
11281 remove_cselib_value_chains before verifying value_chains is empty.
11282 Initialize and free changed_values_stack.
11283 (vt_initialize): Initialize preserved_values.
11284 (vt_finalize): Free preserved_values.
11285
11286 2010-03-08 Richard Guenther <rguenther@suse.de>
11287
11288 PR tree-optimization/43269
11289 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
11290 region detection.
11291
11292 2010-03-08 Martin Jambor <mjambor@suse.cz>
11293
11294 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
11295 (ipa_is_param_called): Removed.
11296 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
11297 (ipa_print_node_params): Do not print the called flag.
11298 (ipa_write_node_info): Do not stream the called flag.
11299 (ipa_read_node_info): Likewise.
11300
11301 2010-03-07 Jakub Jelinek <jakub@redhat.com>
11302
11303 PR debug/43176
11304 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
11305 * cselib.c (struct expand_value_data): Add dummy field.
11306 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
11307 dummy to false.
11308 (cselib_dummy_expand_value_rtx_cb): New function.
11309 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
11310 any rtl.
11311 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
11312 * var-tracking.c: Include pointer-set.h.
11313 (variable): Change n_var_parts to char from int. Add
11314 cur_loc_changed and in_changed_variables fields.
11315 (variable_canonicalize): Remove.
11316 (shared_var_p): New inline function.
11317 (unshare_variable): Maintain cur_loc_changed and
11318 in_changed_variables fields. If var was in changed_variables,
11319 replace it there with new_var. Just copy cur_loc instead of
11320 resetting it to something else.
11321 (variable_union): Don't recompute cur_loc. Use shared_var_p.
11322 (dataflow_set_union): Don't call variable_canonicalize.
11323 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
11324 of their DEBUG_EXPR_TREE_DECLs.
11325 (canonicalize_loc_order_check): Verify that cur_loc is NULL
11326 and in_changed_variables and cur_loc_changed is false.
11327 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
11328 and cur_loc_changed. Don't update cur_loc here.
11329 (variable_merge_over_src): Don't call variable_canonicalize.
11330 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
11331 removing loc that is equal to cur_loc, clear cur_loc,
11332 set cur_loc_changed and ensure variable_was_changed is called.
11333 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
11334 compare pointers in cur_loc check, if it is equal to loc,
11335 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
11336 (variable_different_p): Remove compare_current_location argument,
11337 don't compare cur_loc.
11338 (dataflow_set_different_1): Adjust variable_different_p caller.
11339 (variable_was_changed): If dv had some var in changed_variables
11340 already, reset in_changed_variables flag for it and propagate
11341 cur_loc_changed over to the new variable. On empty var
11342 always set cur_loc_changed. Set in_changed_variables on whatever
11343 var is added to changed_variables.
11344 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
11345 Use shared_var_p. When removing loc that is equal to cur_loc,
11346 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
11347 end, don't set it to something else, just call variable_was_changed.
11348 (delete_slot_part): Use shared_var_p. When cur_loc equals to
11349 loc being removed, clear cur_loc and set cur_loc_changed.
11350 Set cur_loc_changed if all locations have been removed.
11351 (struct expand_loc_callback_data): New type.
11352 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
11353 allocated. Always create SUBREGs if simplify_subreg failed.
11354 Prefer to use cur_loc, when that fails and still in
11355 changed_variables (and seen first time) recompute it. Set
11356 cur_loc_changed of variables which had to change cur_loc and
11357 compute elcd->cur_loc_changed if any of the subexpressions used
11358 had to change cur_loc.
11359 (vt_expand_loc): Adjust to pass arguments in
11360 expand_loc_callback_data structure.
11361 (vt_expand_loc_dummy): New function.
11362 (emitted_notes): New variable.
11363 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
11364 that weren't used for any other decl in current
11365 emit_notes_for_changes call call vt_expand_loc_dummy to update
11366 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
11367 first loc_chain location if NULL before. Always use just
11368 cur_loc instead of first loc_chain location. When cur_loc_changed
11369 is false, when not --enable-checking=rtl just don't emit any note.
11370 When rtl checking, compute the note and assert it is the same
11371 as previous note. Clear cur_loc_changed and in_changed_variables
11372 at the end before removing from changed_variables.
11373 (check_changed_vars_3): New function.
11374 (emit_notes_for_changes): Traverse changed_vars to call
11375 check_changed_vars_3 on each changed var.
11376 (emit_notes_for_differences_1): Clear cur_loc_changed and
11377 in_changed_variables. Recompute cur_loc of new_var.
11378 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
11379 (vt_emit_notes): Initialize and destroy emitted_notes.
11380
11381 2010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
11382
11383 PR rtl-optimization/42220
11384 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
11385 Use verify_reg_tracked to determine if we should use OP_OUT rather
11386 than OP_INOUT.
11387 (build_def_use): If we see an in-out operand for a register that we
11388 know nothing about, treat is an output if possible, fail the block if
11389 not.
11390
11391 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
11392
11393 PR debug/42897
11394 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
11395 permanently.
11396
11397 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
11398
11399 PR debug/42897
11400 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
11401 uses of relevant DEFs that are dead outside the loop too.
11402
11403 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
11404
11405 * var-tracking.c (dataflow_set_merge): Swap src and src2.
11406 Reverted:
11407 2010-01-13 Jakub Jelinek <jakub@redhat.com>
11408 PR debug/41371
11409 * var-tracking.c (values_to_unmark): New variable.
11410 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
11411 values_to_unmark vector. Moved body to...
11412 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
11413 instead queue it into values_to_unmark vector.
11414 (vt_find_locations): Free values_to_unmark vector.
11415
11416 2010-03-05 Eric Botcazou <ebotcazou@adacore.com>
11417
11418 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
11419 (site.exp): Export them when plugins are enabled.
11420
11421 2010-03-05 Sebastian Pop <sebastian.pop@amd.com>
11422
11423 PR middle-end/42326
11424 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
11425 that contain scevs.
11426 (chrec_fold_multiply): Same.
11427
11428 2010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
11429
11430 PR c/43248
11431 * c-decl.c (build_compound_literal): Return early if init is
11432 an error_mark_node.
11433
11434 2010-03-04 Martin Jambor <mjambor@suse.cz>
11435
11436 PR tree-optimization/43164
11437 PR tree-optimization/43191
11438 * tree-sra.c (type_consists_of_records_p): Reject records with
11439 zero-size bit-fields at the end.
11440
11441 2010-03-04 Mike Stump <mikestump@comcast.net>
11442
11443 * Makefile.in (TAGS): Remove *.y.
11444
11445 2010-03-04 Richard Guenther <rguenther@suse.de>
11446
11447 PR tree-optimization/40761
11448 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
11449 in reverse order.
11450 (my_rev_post_order_compute): New function.
11451 (init_pre): Call it.
11452
11453 2010-03-04 Changpeng Fang <changpeng.fang@amd.com>
11454
11455 PR middle-end/43209
11456 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
11457 decrease the cost of an IV candidate when the cost is infinite.
11458
11459 2010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11460
11461 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
11462 Use '3DNow!' for the extension of that name, ensure normal space
11463 after the string.
11464 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
11465
11466 2010-03-03 Jeff Law <law@redhat.com>
11467
11468 * PR middle-end/32693
11469 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
11470 than gen_rtx_SUBREG.
11471 (extract_bit_field_1): Likewise.
11472
11473 2010-03-03 Janis Johnson <janis187@us.ibm.com>
11474
11475 * doc/sourcebuild.texi (Test directives): Document that arguments
11476 include-opts and exclude-opts are now optional for dg-skip-if,
11477 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
11478
11479 2010-03-03 Jason Merrill <jason@redhat.com>
11480
11481 PR c++/12909
11482 * cgraph.h (varpool_node): Add extra_name field.
11483 * varpool.c (varpool_extra_name_alias): New.
11484 (varpool_assemble_decl): Emit extra name aliases.
11485 (varpool_mark_needed_node): Look past an extra name alias.
11486 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
11487 * lto-streamer-in.c (lto_input_tree): Read it.
11488 * lto-streamer-out.c (output_unreferenced_globals): Write it.
11489
11490 2010-03-03 Eric Botcazou <ebotcazou@adacore.com>
11491
11492 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
11493 (sparc*-*-solaris2*): ...this.
11494
11495 2010-03-03 Jakub Jelinek <jakub@redhat.com>
11496
11497 PR debug/43229
11498 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
11499 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
11500 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
11501 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
11502
11503 PR debug/43237
11504 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
11505 fallthrough to default handling, just with want_address 0 instead of 2.
11506 For single element lists, add_AT_loc directly, otherwise create an
11507 artificial variable DIE and stick location list to it.
11508
11509 PR debug/43177
11510 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
11511 (VAL_EXPR_HAS_REVERSE): Define.
11512 (reverse_op): New function.
11513 (add_stores): For reversible operations add an extra MO_VAL_USE.
11514
11515 2010-03-02 Jason Merrill <jason@redhat.com>
11516
11517 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
11518
11519 2010-03-02 Eric Botcazou <ebotcazou@adacore.com>
11520
11521 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
11522 (sparc64-*-linux*): Likewise.
11523 (sparc64-*-solaris2*): Include assembler files before linker ones.
11524 (sparc-*-solaris2*): Simplify and reorder to match previous case.
11525 * config/sparc/gas.h: Delete.
11526 * config/sparc/sol2-64.h: Add copyright notice.
11527 * config/sparc/sol2-gas-bi.h: Likewise.
11528 * config/sparc/sol2-gld.h: Likewise.
11529 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
11530 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
11531 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
11532 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
11533 (sparc_elf_asm_named_section): Rename into...
11534 (sparc_solaris_elf_asm_named_section): ...this. Always define.
11535
11536 2010-03-02 Uros Bizjak <ubizjak@gmail.com>
11537
11538 * config/alpha/alpha.c (override_options): Fix -mtune error message.
11539
11540 2010-03-02 Jeff Law <law@redhat.com>
11541
11542 PR middle-end/42431
11543 * reload1.c (rtx_p, substitute_stack): Declare.
11544 (substitute): Record addresses of changed rtxs.
11545 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
11546 Restore the original rtx when complete.
11547 (reload): Free subsitute_stack when complete.
11548
11549 2010-03-02 Janis Johnson <janis187@us.ibm.com>
11550
11551 * doc/gccint.texi (menu): Add Testsuites as a chapter.
11552 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
11553 new chapter.
11554 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
11555 LTO Testing, gcov Testing, profopt Testing, compat Testing,
11556 Torture Tests): Change from subsection to section.
11557
11558 2010-03-02 Jakub Jelinek <jakub@redhat.com>
11559 Steven Bosscher <steven@gcc.gnu.org>
11560
11561 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
11562 instead of bb.
11563
11564 2010-03-02 Reza Yazdani <reza.yazdani@amd.com>
11565
11566 PR middle-end/42640
11567 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
11568 the assignment from the new induction variable to the assignment
11569 of the value from the original loop PHI function.
11570
11571 2010-03-01 Janis Johnson <janis187@us.ibm.com>
11572 Daniel Jacobowitz <dan@codesourcery.com>
11573
11574 * doc/sourcebuild.texi (Test directives): Clarify options to
11575 dg-skip-if.
11576
11577 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11578
11579 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
11580 Disable cfi directives unless GCC and gas agree on using read-only
11581 .eh_frame sections for 64-bit.
11582 * configure: Regenerate.
11583
11584 2010-03-01 Richard Guenther <rguenther@suse.de>
11585
11586 PR tree-optimization/43220
11587 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
11588 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
11589
11590 2010-03-01 Richard Guenther <rguenther@suse.de>
11591 Martin Jambor <mjambor@suse.cz>
11592
11593 PR middle-end/41250
11594 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
11595 gimplified parameters.
11596
11597 2010-03-01 Christian Bruel <christian.bruel@st.com>
11598
11599 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
11600
11601 2010-03-01 H.J. Lu <hongjiu.lu@intel.com>
11602
11603 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
11604
11605 2010-03-01 Richard Guenther <rguenther@suse.de>
11606
11607 PR middle-end/43213
11608 * expr.c (expand_assignment): Use the alias-oracle to tell
11609 if the rhs aliases the result decl.
11610
11611 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11612
11613 PR pch/14940
11614 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
11615 to sol_gt_pch_get_address.
11616 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
11617 64-bit, SPARC and x86.
11618 (sol_gt_pch_get_address): New function.
11619
11620 2010-03-01 Marco Poletti <poletti.marco@gmail.com>
11621
11622 * toplev.h (inform_n, error_n): Declare.
11623 * diagnostic.c (inform_n, error_n): New function.
11624
11625 2010-03-01 Jakub Jelinek <jakub@redhat.com>
11626
11627 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
11628 has no rtl yet when processing local_decls, queue it and recheck
11629 if deferred stack allocation hasn't assigned it rtl.
11630
11631 2010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
11632
11633 * config/sh/sh.c (unspec_bbr_uid): New.
11634 (gen_block_redirect): Use it instead of INSN_UID.
11635 (gen_far_branch): Likewise.
11636
11637 2010-02-28 H.J. Lu <hongjiu.lu@intel.com>
11638
11639 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
11640 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
11641
11642 2010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11643
11644 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
11645 (Warning Options): -Wno-conversion-null is valid for
11646 Objective-C++ as well.
11647 * doc/tm.texi (Named Address Spaces): Likewise.
11648 * doc/plugins.texi (Plugins): Replace TABs with spaces.
11649 * doc/tree-ssa.texi (Tree SSA): Likewise.
11650
11651 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
11652
11653 PR bootstrap/43202
11654 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
11655 by default. Don't set the default arch for
11656 i[34567]86-*-darwin*|x86_64-*-darwin*.
11657
11658 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
11659
11660 PR bootstrap/43202
11661 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
11662 default. Set the default 32bit/64bit archs with $with_arch
11663 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
11664
11665 2010-02-27 Richard Guenther <rguenther@suse.de>
11666
11667 PR tree-optimization/43186
11668 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
11669 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
11670 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
11671 unroller iterations.
11672
11673 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
11674
11675 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
11676 required and i[34567]86-*-* targets don't support 64bit ISA.
11677
11678 2010-02-26 Eric Botcazou <ebotcazou@adacore.com>
11679
11680 PR ada/43096
11681 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
11682 the same alias set.
11683
11684 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
11685
11686 * config.gcc: Set the default arch at least to Prescott for
11687 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
11688 if SSE math is enabled.
11689
11690 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
11691
11692 * diagnostic.c (diagnostic_initialize): Update.
11693 (diagnostic_report_diagnostic): Test inhibit_notes_p for
11694 informative notes.
11695 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
11696 (diagnostic_inhibit_notes): New.
11697 * toplev.c (process_options): inhibit notes with -fcompare-debug.
11698
11699 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
11700
11701 PR c/20631
11702 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
11703 * doc/standards.texi: Likewise.
11704 * doc/extend.texi: Likewise.
11705 * doc/trouble.texi: Likewise.
11706 * doc/cppopts.texi: Likewise.
11707 * doc/install.texi: Likewise.
11708 * c.opt (std=c90,std=gnu90): New options.
11709 * c-opts.c (c_common_handle_option): Handle them.
11710
11711 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
11712
11713 PR c/24577
11714 * c-decl.c (undeclared_variable): Use an informative note.
11715
11716 2010-02-26 Richard Guenther <rguenther@suse.de>
11717
11718 PR tree-optimization/43186
11719 * gimple.h (gimple_fold): Remove.
11720 * gimple.c (gimple_fold): Remove. Inline into single user ...
11721 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
11722 Try harder for conditions.
11723
11724 2010-02-26 Jakub Jelinek <jakub@redhat.com>
11725
11726 PR debug/43190
11727 * function.c (used_types_insert): Don't skip through named pointer
11728 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
11729 and it is different from the main variant's type.
11730
11731 2010-02-26 Nick Clifton <nickc@redhat.com>
11732
11733 * config/rx/rx.md (sminsi3): Remove bogus alternative.
11734
11735 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
11736
11737 * config.gcc: Support --with-fpmath=sse for x86.
11738
11739 * config/i386/ssemath.h: New.
11740
11741 * doc/install.texi (--with-fpmath=sse): Documented.
11742
11743 2010-02-26 Richard Guenther <rguenther@suse.de>
11744
11745 PR tree-optimization/43188
11746 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
11747 vector types of over-aligned element type.
11748
11749 2010-02-26 Uros Bizjak <ubizjak@gmail.com>
11750
11751 PR target/43175
11752 * config/i386/i386.c (expand_vec_perm_blend): Use correct
11753 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
11754
11755 2010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
11756
11757 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
11758
11759 2010-02-26 Jakub Jelinek <jakub@redhat.com>
11760
11761 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
11762 * var-tracking.c: Include diagnostic.h.
11763 (debug_dv): New function.
11764 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
11765
11766 PR debug/43160
11767 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
11768 (add_value_chain, add_value_chains, remove_value_chain,
11769 remove_value_chains): Handle DEBUG_EXPRs.
11770 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
11771
11772 PR debug/43161
11773 * regcprop.c (struct queued_debug_insn_change): New type.
11774 (struct value_data_entry): Add debug_insn_changes field.
11775 (struct value_data): Add n_debug_insn_changes field.
11776 (debug_insn_changes_pool): New variable.
11777 (free_debug_insn_changes, apply_debug_insn_changes,
11778 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
11779 (kill_value_one_regno): Call free_debug_insn_changes if needed.
11780 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
11781 fields.
11782 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
11783 changes for them.
11784 (copyprop_hardreg_forward_1): Don't call apply_change_group for
11785 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
11786 changes, call cprop_find_used_regs via note_stores.
11787 (copyprop_hardreg_forward): When copying vd from predecessor
11788 which has any queued DEBUG_INSN changes, make sure the pointers are
11789 cleared. At the end call df_analyze and then if there are any
11790 DEBUG_INSN changes queued at the end of some basic block for still
11791 live registers, apply them.
11792 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
11793
11794 2010-02-25 Uros Bizjak <ubizjak@gmail.com>
11795
11796 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
11797 (arm*-*-*): Ditto.
11798
11799 2010-02-25 H.J. Lu <hongjiu.lu@intel.com>
11800
11801 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
11802 targets. Set the default with_cpu/with_arch from arch/cpu.
11803 Allow x86-64 and native for with_cpu/with_arch.
11804
11805 2010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
11806
11807 * ebitmap.c: Change calls to verify_popcount with calls to
11808 sbitmap_verify_popcount.
11809 (ebitmap_clear_bit): Fixed map->cacheindex test and
11810 map>cache update when bit clearing results in an empty
11811 element.
11812
11813 2010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
11814
11815 PR target/43154
11816 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
11817 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
11818 and support both V2DF and V2DI modes.
11819 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
11820 support both V2DF and V2DI modes.
11821 (general): Delete trailing whitespace from a few patterns.
11822
11823 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11824 V2DF/V2DI interleave high/low builtins.
11825
11826 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
11827 new VSX builtins.
11828
11829 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
11830 interleave high/low functions.
11831
11832 2010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
11833
11834 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
11835 #pragma extern_prefix.
11836
11837 2010-02-25 Jakub Jelinek <jakub@redhat.com>
11838
11839 PR debug/43166
11840 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
11841 BLKmode, assert op0 is a MEM and just adjust its mode.
11842
11843 PR debug/43165
11844 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
11845 if bitpos isn't multiple of mode's bitsize.
11846
11847 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
11848
11849 * c.opt (-ftemplate-depth=): New.
11850 (-ftemplate-depth-): Deprecate.
11851 * optc-gen.awk: Handle -ftemplate-depth=.
11852 * opth-gen.awk: Likewise.
11853 * c-opts.c (c_common_handle_option): Likewise.
11854 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
11855
11856 2010-02-24 Jason Merrill <jason@redhat.com>
11857
11858 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
11859
11860 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11861
11862 * cfg.c (alloc_aux_for_block): Remove inline.
11863 (alloc_aux_for_edge): Likewise.
11864
11865 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11866
11867 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
11868
11869 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11870
11871 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
11872 * config/i386/sol2-gas.h: New file.
11873 * config.gcc (i[34567]86-*-solaris2*): Use it.
11874
11875 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
11876
11877 PR c/43128
11878 * c-typeck.c (ep_convert_and_check): New.
11879 (build_conditional_expr): Use it.
11880 (build_binary_op): Likewise.
11881
11882 2010-02-24 Jakub Jelinek <jakub@redhat.com>
11883
11884 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
11885
11886 PR debug/43150
11887 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
11888 bounds even for -O+.
11889 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
11890 expr needs to have DECL_NAME set.
11891
11892 2010-02-24 Nick Clifton <nickc@redhat.com>
11893
11894 * config/mep/mep.c: Include gimple.h.
11895 (mep_function_uses_sp): Delete unused function.
11896 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
11897 parameters. Use unsigned integers to count args. Return a
11898 NULL_RTX instead of an error_mark_node. Toidy up formatting.
11899
11900 2010-02-23 Jakub Jelinek <jakub@redhat.com>
11901
11902 PR target/43107
11903 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
11904 greater or equal to nelt instead of 2 * nelt.
11905 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
11906 with nelt - 1.
11907
11908 2010-02-23 Jason Merrill <jason@redhat.com>
11909
11910 PR debug/42800
11911 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
11912 in cfun->local_decls even if they have register types.
11913
11914 PR c++/42837
11915 * stor-layout.c (place_field): Don't warn about unnecessary
11916 DECL_PACKED if the type is packed.
11917
11918 2010-02-23 Jakub Jelinek <jakub@redhat.com>
11919
11920 PR target/43139
11921 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
11922 GOTOFF relocs, even when the base reg isn't pic pointer.
11923
11924 2010-02-23 Michael Matz <matz@suse.de>
11925
11926 PR debug/43077
11927 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
11928 (expand_gimple_basic_block): Generate and use debug temps if there
11929 are debug uses left after the last real use of TERed ssa names.
11930 Unlink debug immediate uses when they are expanded.
11931
11932 2010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
11933
11934 PR 43123
11935 * config/i386/i386.c (override_options): Reorganise to provide
11936 better error messages.
11937
11938 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
11939
11940 PR middle-end/43083
11941 * graphite-scop-detection.c (create_single_exit_edge): Move
11942 the call to find_single_exit_edge to....
11943 (create_sese_edges): ...here. Don't handle multiple edges
11944 exiting the function.
11945 (build_graphite_scops): Don't handle multiple edges
11946 exiting the function.
11947
11948 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
11949
11950 PR middle-end/43097
11951 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
11952 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
11953
11954 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
11955
11956 PR middle-end/43026
11957 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
11958
11959 2010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
11960
11961 PR c++/43126
11962 * c-typeck.c (convert_arguments): Print declaration location.
11963 * c-common.c (validate_nargs): Rename as
11964 builtin_function_validate_nargs.
11965 (check_builtin_function_arguments): Update.
11966
11967 2010-02-22 Richard Guenther <rguenther@suse.de>
11968
11969 PR lto/43045
11970 * tree-inline.c (declare_return_variable): Use the type of
11971 the call stmt lhs if available.
11972
11973 2010-02-22 Duncan Sands <baldrick@free.fr>
11974
11975 * passes.c (register_pass): Always consider all pass lists when
11976 ref_pass_instance_number is zero.
11977
11978 2010-02-22 Richard Guenther <rguenther@suse.de>
11979
11980 PR tree-optimization/42749
11981 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
11982 parameter. Do arithmetic in the original type.
11983 (update_accumulator_with_ops): Likewise.
11984 (adjust_accumulator_values): Adjust.
11985
11986 2010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11987
11988 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
11989 (QI to BLKmode splitter): New splitter.
11990
11991 2010-02-22 H.J. Lu <hongjiu.lu@intel.com>
11992
11993 * config/i386/i386.c (initial_ix86_tune_features): Turn on
11994 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
11995
11996 2010-02-22 Richard Guenther <rguenther@suse.de>
11997
11998 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
11999
12000 2010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
12001
12002 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
12003 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
12004 ($(T)crti.o, $(T)crtn.o): Remove rules.
12005
12006 2010-02-21 Tobias Burnus <burnus@net-b.de>
12007
12008 PR fortran/35259
12009 * doc/invoke.texi (-fassociative-math): Document that this
12010 option is automatically enabled for Fortran.
12011
12012 2010-02-20 David S. Miller <davem@davemloft.net>
12013
12014 * configure.ac: Test if linker and assembler properly support
12015 GOTDATA_OP relocations.
12016 * configure: Rebuild.
12017 * config.in: Likewise.
12018 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
12019 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
12020 (movsi_high_pic): Likewise.
12021 (movdi_lo_sum_pic): Likewise.
12022 (movdi_high_pic): Likewise.
12023 (movsi_pic_gotdata_op): New pattern.
12024 (movdi_pic_gotdata_op): Likewise.
12025 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
12026 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
12027
12028 2010-02-20 Uros Bizjak <ubizjak@gmail.com>
12029
12030 PR target/43067
12031 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
12032 attribute to ssemul.
12033 (xop_mulv2div2di3_high): Ditto.
12034
12035 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
12036
12037 PR c++/35669
12038 * c.opt (Wconversion-null): New option.
12039 * doc/invoke.texi (Wconversion-null): Document.
12040
12041 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
12042
12043 * common.opt (Wlarger-than-): Add Undocumented.
12044
12045 2010-02-19 Mike Stump <mikestump@comcast.net>
12046
12047 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
12048
12049 2010-02-19 Jason Merrill <jason@redhat.com>
12050
12051 PR target/40332
12052 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
12053 * configure: Likewise.
12054
12055 2010-02-20 Alan Modra <amodra@gmail.com>
12056
12057 PR middle-end/42344
12058 * cgraph.h (cgraph_make_decl_local): Declare.
12059 * cgraph.c (cgraph_make_decl_local): New function.
12060 (cgraph_make_node_local): Use it.
12061 * cgraphunit.c (cgraph_function_versioning): Likewise.
12062 * ipa.c (function_and_variable_visibility): Likewise.
12063
12064 2010-02-19 Jakub Jelinek <jakub@redhat.com>
12065
12066 PR bootstrap/43121
12067 * except.c (sjlj_emit_function_enter): Don't call
12068 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
12069 directly.
12070 * rtl.h (add_reg_br_prob_note): Remove prototype.
12071
12072 2010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
12073
12074 PR 41779
12075 * c-common.c (conversion_warning): Remove widening conversions
12076 before checking the conversion of integers to reals.
12077
12078 2010-02-19 Mike Stump <mikestump@comcast.net>
12079
12080 PR middle-end/43125
12081 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
12082
12083 PR objc/43061
12084 * cgraphunit.c (process_function_and_variable_attributes): Check
12085 DECL_PRESERVE_P instead of looking up attribute "used".
12086 * ipa-pure-const.c (check_decl): Likewise.
12087 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
12088 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
12089 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
12090 instead of attribute "used".
12091 * config/sol2-c.c (solaris_pragma_init): Likewise.
12092 (solaris_pragma_fini): Likewise.
12093
12094 2010-02-19 Jakub Jelinek <jakub@redhat.com>
12095
12096 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
12097 Use XCNEW instead of xcalloc.
12098 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
12099 XNEW instead of xmalloc.
12100 (get_fields): Use XNEWVEC instead of xmalloc.
12101
12102 PR debug/43084
12103 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
12104 populate vars array.
12105 (create_new_general_access): For debug stmts just reset value.
12106 (get_stmt_accesses): For accesses within debug stmts just record them
12107 using add_access_to_acc_sites instead of preventing the peeling or
12108 counting them as accesses.
12109
12110 PR middle-end/42233
12111 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
12112
12113 2010-02-19 Richard Guenther <rguenther@suse.de>
12114
12115 PR tree-optimization/42916
12116 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
12117 instructions.
12118
12119 2010-02-19 Andreas Schwab <schwab@linux-m68k.org>
12120
12121 * configure.ac: Replace all uses of changequote in macro arguments
12122 with proper quoting.
12123
12124 2010-02-19 Jakub Jelinek <jakub@redhat.com>
12125
12126 PR middle-end/42233
12127 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
12128
12129 2010-02-19 Richard Guenther <rguenther@suse.de>
12130
12131 PR tree-optimization/42944
12132 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
12133 test for aliasing with errno.
12134
12135 2010-02-19 Jakub Jelinek <jakub@redhat.com>
12136
12137 PR middle-end/42233
12138 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
12139 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
12140 * dojump.c: Include output.h.
12141 (inv): New inline function.
12142 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
12143 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
12144 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
12145 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
12146 argument, pass it down to other calls.
12147 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
12148 add REG_BR_PROB note to the conditional jump.
12149 * cfgexpand.c (add_reg_br_prob_note): Removed.
12150 (expand_gimple_cond): Don't call it, add the probability
12151 as last argument to jumpif_1/jumpifnot_1.
12152 * Makefile.in (dojump.o): Depend on output.h.
12153 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
12154 callers.
12155 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
12156 * stmt.c (do_jump_if_equal): Likewise.
12157 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
12158 * loop-unswitch.c (compare_and_jump_seq): Likewise.
12159 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
12160 Likewise.
12161 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
12162 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
12163 jumpifnot_1 callers.
12164 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
12165 callers.
12166 (store_expr): Adjust jumpifnot caller.
12167 (store_constructor): Adjust jumpif caller.
12168
12169 PR middle-end/42233
12170 * gimplify.c (gimple_boolify): For __builtin_expect call
12171 gimple_boolify also on its first argument.
12172
12173 2010-02-18 Uros Bizjak <ubizjak@gmail.com>
12174
12175 * configure.ac (gnu-unique-object): Wrap regexps using [] in
12176 changequote block.
12177 (__stack_chk_fail): Ditto. Remove quadrigraphs.
12178 * configure: Regenerated.
12179
12180 2010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12181
12182 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
12183 lang_hooks.types_compatible_p instead of comptypes.
12184
12185 2010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
12186
12187 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
12188 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
12189 if __prefer_thumb__ is defined.
12190
12191 2010-02-18 Martin Jambor <mjambor@suse.cz>
12192
12193 PR tree-optimization/43066
12194 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
12195 array with zero-sized element type.
12196
12197 2010-02-18 Jakub Jelinek <jakub@redhat.com>
12198
12199 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
12200 rtx, allocate struct var_loc_node here and return it to the
12201 caller, and only if it is actually needed.
12202 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
12203 move it earlier and return immediately if it returns NULL.
12204
12205 2010-02-17 Mikael Pettersson <mikpe@it.uu.se>
12206
12207 * config/sparc/gas.h: New file. Restore
12208 TARGET_ASM_NAMED_SECTION to its ELF default.
12209 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
12210 check !HAVE_GNU_AS.
12211 * config/sparc/sparc.c (sparc_elf_asm_named_section):
12212 Likewise. Add ATTRIBUTE_UNUSED to prototype.
12213 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
12214 after sparc/sysv4.h.
12215
12216 2010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
12217
12218 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
12219
12220 2010-02-17 Steven Bosscher <steven@gcc.gnu.org>
12221
12222 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
12223 patterns from predicated pattern.
12224
12225 2010-02-17 Uros Bizjak <ubizjak@gmail.com>
12226
12227 PR target/43103
12228 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
12229 for insn mnemonic suffix.
12230
12231 2010-02-17 Richard Guenther <rguenther@suse.de>
12232
12233 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
12234 to loop PHI nodes.
12235
12236 2010-02-17 Jakub Jelinek <jakub@redhat.com>
12237
12238 PR debug/42918
12239 * caller-save.c (save_call_clobbered_regs): If BB ends with
12240 a DEBUG_INSN, move any notes in between last real insn and the last
12241 DEBUG_INSN after the last DEBUG_INSN.
12242
12243 2010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
12244
12245 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
12246 Fix return type. Fix argument type. Explain meaning of return value.
12247
12248 2010-02-16 Richard Guenther <rguenther@suse.de>
12249
12250 PR tree-optimization/41043
12251 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
12252 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
12253 statements ...
12254 (vrp_visit_phi_node): ... but only for loop PHI nodes.
12255
12256 2010-02-16 Ira Rosen <irar@il.ibm.com>
12257
12258 PR tree-optimization/43074
12259 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
12260 * tree-vect-loop.c (vect_analyze_loop_operations): Add
12261 vectorizable cycles in hybrid SLP check.
12262 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
12263
12264 2010-02-16 Richard Guenther <rguenther@suse.de>
12265
12266 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
12267 (true_dependence): If memrefs_conflict_p computes must-alias
12268 trust it. Move TBAA check after offset-based disambiguation.
12269 (canon_true_dependence): Likewise.
12270
12271 2010-02-16 Alexandre Oliva <aoliva@redhat.com>
12272
12273 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
12274 * doc/invoke.texi: Document it.
12275 * var-tracking.c: Include toplev.h and params.h.
12276 (vt_find_locations): Return bool indicating success. Compute
12277 hash sizes unconditionally. Check new parameter, report.
12278 (variable_tracking_main_1): Check vt_find_locations results and
12279 retry. Renamed from...
12280 (variable_tracking_main): ... this. New wrapper to preserve
12281 flag_var_tracking_assignments.
12282 * Makefile.in (var-tracking.o): Adjust dependencies.
12283
12284 2010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
12285 Jakub Jelinek <jakub@redhat.com>
12286
12287 PR target/42854
12288 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
12289 if weak_import attribute is present.
12290 * config/darwin.c (machopic_select_section): Likewise.
12291
12292 2010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
12293
12294 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
12295 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
12296 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
12297 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
12298
12299 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
12300 types.
12301
12302 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
12303 Fix argument types.
12304
12305 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
12306 Rewrite text to refer to the names.
12307
12308 2010-02-15 Sebastian Pop <sebastian.pop@amd.com>
12309
12310 * config/i386/i386-builtin-types.def
12311 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
12312 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
12313 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
12314 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
12315 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
12316 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
12317 IX86_BUILTIN_VPERMIL2PS256.
12318 (MULTI_ARG_4_DF2_DI_I): Defined.
12319 (MULTI_ARG_4_DF2_DI_I1): Defined.
12320 (MULTI_ARG_4_SF2_SI_I): Defined.
12321 (MULTI_ARG_4_SF2_SI_I1): Defined.
12322 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
12323 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
12324 __builtin_ia32_vpermil2ps256.
12325 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
12326 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
12327 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
12328 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
12329 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
12330 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
12331 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
12332 CODE_FOR_xop_vpermil2v8sf3.
12333 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
12334 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
12335 * config/i386/xopintrin.h (_mm_permute2_pd): New.
12336 (_mm256_permute2_pd): New.
12337 (_mm_permute2_ps): New.
12338 (_mm256_permute2_ps): New.
12339
12340 2010-02-15 Nick Clifton <nickc@redhat.com>
12341
12342 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
12343 boolean parameters. Use emit_jump_insn when emitting a pop
12344 instruction containing a return insn.
12345 (push): Use 'true' rather than '1' as second parameter to F.
12346 (h8300_expand_prologue): Likewise.
12347 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
12348 (h8300_expand_epilogue): Likewise.
12349
12350 2010-02-15 Richard Guenther <rguenther@suse.de>
12351
12352 PR middle-end/43068
12353 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
12354 if that is zero.
12355
12356 2010-02-15 Nick Clifton <nickc@redhat.com>
12357
12358 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
12359 delta.
12360
12361 2010-02-14 Marco Poletti <poletti.marco@gmail.com>
12362
12363 * intl.c (fake_ngettext): New function.
12364 * intl.h (fake_ngettext): Declare.
12365 (ngettext): Define macro.
12366 * collect2.c (notice_translated): New function.
12367 (main): Use notice_translated and ngettext.
12368 * collect2.h (notice_translated): Declare.
12369
12370 2010-02-14 Steven Bosscher <steven@gcc.gnu.org>
12371
12372 * reorg.c (delete_computation): Comment fixes.
12373 * caller-save.c (setup_save_areas): Idem.
12374 * sel-sched-dump.c (dump_lv_set): Idem.
12375 * rtl.def: Idem.
12376
12377 2010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12378
12379 * config/s390/s390.c (s390_sched_init): New function.
12380 (TARGET_SCHED_INIT): Target hook defined.
12381
12382 2010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
12383 Jack Howarth <howarth@bromo.med.uc.edu>
12384 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
12385
12386 PR target/42982
12387 Partial revert of unintended change in fix for PR41605.
12388 * config/darwin.h: Fix typo.
12389 * config/darwin9.h: Same.
12390
12391 2010-02-11 Jakub Jelinek <jakub@redhat.com>
12392
12393 * c-pch.c (pch_init): Clear v.
12394
12395 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
12396
12397 PR middle-end/42930
12398 * graphite-scop-detection.c (graphite_can_represent_scev): Call
12399 graphite_can_represent_init for MULT_EXPR.
12400
12401 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
12402
12403 PR middle-end/42914
12404 PR middle-end/42530
12405 * graphite-sese-to-poly.c (remove_phi): New.
12406 (translate_scalar_reduction_to_array): Call remove_phi.
12407
12408 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
12409
12410 PR middle-end/42771
12411 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
12412 * graphite-clast-to-gimple.h (gloog): Update declaration.
12413 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
12414 * graphite-poly.h (struct poly_bb): Add missing comments.
12415 (struct scop): Add poly_scop_p field.
12416 (POLY_SCOP_P): New.
12417 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
12418 * graphite.c (graphite_transform_loops): Build the polyhedral
12419 representation for each scop before code generation.
12420 * sese.c (rename_variables_in_operand): Removed.
12421 (rename_variables_in_expr): Return the renamed expression.
12422 (rename_sese_parameters): New.
12423 * sese.h (rename_sese_parameters): Declared.
12424
12425 2010-02-11 Richard Guenther <rguenther@suse.de>
12426
12427 PR tree-optimization/42998
12428 * tree-ssa-pre.c (create_expression_by_pieces): Treat
12429 POINTER_PLUS_EXPR properly.
12430
12431 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
12432 Changpeng Fang <changpeng.fang@amd.com>
12433
12434 PR middle-end/40886
12435 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
12436 the cost of an IV candidate when the IV is used in a test against zero.
12437
12438 * gcc.dg/tree-ssa/ivopts-3.c: New.
12439
12440 2010-02-11 Richard Guenther <rguenther@suse.de>
12441
12442 PR lto/41664
12443 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
12444 pointer-vs-decl case by swapping refs. Handle some cases
12445 of pointer-vs-decl disambiguations more conservatively.
12446 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
12447 to false after expanding.
12448
12449 2010-02-11 Richard Guenther <rguenther@suse.de>
12450
12451 PR driver/43021
12452 * gcc.c (process_command): Handle LTO file@offset case more
12453 appropriately.
12454
12455 2010-02-11 Jakub Jelinek <jakub@redhat.com>
12456
12457 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
12458 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
12459 of DEBUG_INSNs.
12460 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
12461
12462 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
12463 if MEM's mode size isn't DWARF2_ADDR_SIZE.
12464 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
12465 Optimize eq/ne comparisons when both arguments are known to be
12466 zero-extended.
12467 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
12468 Don't mask operands unnecessarily if they are known to be already
12469 zero-extended.
12470
12471 2010-02-10 Vladimir Makarov <vmakarov@redhat.com>
12472
12473 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
12474 instead of loop.
12475
12476 2010-02-10 Richard Guenther <rguenther@suse.de>
12477
12478 PR tree-optimization/43017
12479 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
12480 for wrapping signed arithmetic.
12481
12482 2010-02-10 Jakub Jelinek <jakub@redhat.com>
12483
12484 PR debug/43010
12485 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
12486 if no debug info should be emitted for it.
12487
12488 2010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
12489
12490 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
12491 note when flag_exceptions is set.
12492
12493 2010-02-10 Duncan Sands <baldrick@free.fr>
12494
12495 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
12496
12497 2010-02-10 Richard Guenther <rguenther@suse.de>
12498
12499 PR c/43007
12500 * tree.c (get_unwidened): Handle constants.
12501 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
12502
12503 2010-02-10 Martin Jambor <mjambor@suse.cz>
12504
12505 PR lto/42985
12506 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
12507 check for variable argument counts independently.
12508
12509 2010-02-10 Christian Bruel <christian.bruel@st.com>
12510
12511 PR target/42841
12512 * config/sh/sh.c (find_barrier): Increase length for non delayed
12513 conditional branches.
12514
12515 2010-02-10 Christian Bruel <christian.bruel@st.com>
12516
12517 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
12518
12519 2010-02-10 Jakub Jelinek <jakub@redhat.com>
12520
12521 * builtins.c (set_builtin_user_assembler_name): Also handle
12522 ffs if int is smaller than word.
12523
12524 2010-02-09 Vladimir Makarov <vmakarov@redhat.com>
12525
12526 PR middle-end/42973
12527 * ira-conflicts.c (get_dup): Remove.
12528 (process_reg_shuffles): Add new parameter. Use it as an
12529 additional guard for copy generation.
12530 (add_insn_allocno_copies): Rewrite.
12531
12532 2010-02-09 Alexander Monakov <amonakov@ispras.ru>
12533
12534 * common.opt (fsched2-use-traces): Preserved for backward
12535 compatibility.
12536 * doc/invoke.texi: Remove the documentation about option
12537 -fsched2-use-traces.
12538 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
12539 flag_sched2_use_traces.
12540 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
12541 the backward compatibility flag section.
12542
12543 2010-02-09 Richard Guenther <rguenther@suse.de>
12544
12545 PR tree-optimization/43008
12546 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
12547 make HEAP variables initialized from global memory if they
12548 are not known builtin functions.
12549 (find_func_aliases): Adjust.
12550
12551 2010-02-09 Richard Guenther <rguenther@suse.de>
12552
12553 PR tree-optimization/43000
12554 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
12555 arithmetic manually.
12556
12557 2010-02-08 Jakub Jelinek <jakub@redhat.com>
12558
12559 PR tree-optimization/42931
12560 * tree-loop-linear.c (try_interchange_loops): Don't call
12561 double_int_mul if estimated_loop_iterations failed.
12562
12563 2010-02-08 Martin Jambor <mjambor@suse.cz>
12564
12565 PR middle-end/42898
12566 * tree-sra.c (build_accesses_from_assign): Do not mark in
12567 should_scalarize_away_bitmap if stmt has volatile ops.
12568 (sra_modify_assign): Do not process assigns piecemeal if if stmt
12569 has volatile ops.
12570
12571 2010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
12572
12573 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
12574
12575 2010-02-07 Adam Nemet <adambnmet@gmail.com>
12576
12577 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
12578 before the pattern.
12579
12580 2010-02-07 Andrew Pinski <pinskia@gmail.com>
12581
12582 PR middle-end/42946
12583 * df-core.c (df_finish_pass): Change type of saved_flags to int.
12584
12585 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
12586
12587 PR middle-end/42988
12588 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
12589 to unknown_dependence.
12590 (graphite_legal_transform_dr): Handle the unknown_dependence.
12591 (graphite_carried_dependence_level_k): Same.
12592
12593 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
12594
12595 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
12596
12597 2010-02-07 Richard Guenther <rguenther@suse.de>
12598
12599 PR middle-end/42991
12600 * expr.c (get_inner_reference): Always initialize *pbitsize.
12601
12602 2010-02-07 Richard Guenther <rguenther@suse.de>
12603
12604 PR middle-end/42956
12605 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
12606 new ARRAY_REFs on variable size element or minimal index arrays.
12607 Complete.
12608 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
12609 gimple_fold_indirect_ref.
12610
12611 2010-02-06 Richard Earnshaw <rearnsha@arm.com>
12612
12613 PR target/42957
12614 * arm.c (arm_override_options): Just return if the user has specified
12615 an invalid fpu name.
12616
12617 2010-02-03 Jason Merrill <jason@redhat.com>
12618
12619 PR c++/42870
12620 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
12621 i386_pe_maybe_record_exported_symbol.
12622
12623 2010-02-05 Steve Ellcey <sje@cup.hp.com>
12624
12625 PR target/42924
12626 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
12627 (pa_delegitimize_address): New function.
12628
12629 2010-02-05 Ozkan Sezer <sezeroz@gmail.com>
12630
12631 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
12632 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
12633
12634 2010-02-05 Richard Guenther <rguenther@suse.de>
12635
12636 PR lto/42762
12637 * lto-streamer-in.c (get_resolution): Deal with references
12638 to undefined functions.
12639
12640 2010-02-05 Richard Guenther <rguenther@suse.de>
12641
12642 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
12643 (fold_const_aggregate_ref): Likewise.
12644 (ccp_fold_stmt): Substitute loads.
12645 (maybe_fold_reference): Verify types before substituting.
12646 Unshare properly.
12647 (fold_gimple_assign): Unshare properly.
12648 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
12649
12650 2010-02-05 Nathan Froyd <froydnj@codesourcery.com>
12651
12652 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
12653 for rs6000_gen_cell_microcode.
12654
12655 2010-02-04 Richard Guenther <rguenther@suse.de>
12656
12657 PR rtl-optimization/42952
12658 * dse.c (const_or_frame_p): Remove MEM handling.
12659
12660 2010-02-04 Nick Clifton <nickc@redhat.com>
12661
12662 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
12663 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
12664 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
12665 (mn10300_asm_output_mi_thunk): New function.
12666 (mn10300_can_output_mu_thunk): New function.
12667 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
12668 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
12669 (FUNCTION_ARG): Delete incorrect comment.
12670
12671 2010-02-03 Jason Merrill <jason@redhat.com>
12672
12673 PR c++/40138
12674 * fold-const.c (operand_equal_p): Handle erroneous types.
12675
12676 2010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
12677
12678 * config/h8300/h8300.md (can_delay): Fix attibute condition.
12679
12680 2010-02-03 Vladimir Makarov <vmakarov@redhat.com>
12681
12682 PR rtl-optimization/42941
12683 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
12684 of xmalloc.
12685
12686 2010-02-03 Jason Merrill <jason@redhat.com>
12687
12688 PR c++/35652
12689 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
12690
12691 2010-02-03 Alexandre Oliva <aoliva@redhat.com>
12692
12693 PR debug/42896
12694 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
12695 (cselib_reset_table): Renamed from...
12696 (cselib_reset_table_with_next_value): ... this.
12697 (cselib_get_next_uid): Renamed from...
12698 (cselib_get_next_unknown_value): ... this.
12699 * cselib.c (next_uid): Renamed from...
12700 (next_unknown_value): ... this.
12701 (cselib_clear_table): Adjust.
12702 (cselib_reset_table): Adjust. Renamed from...
12703 (cselib_reset_table_with_next_value): ... this.
12704 (cselib_get_next_uid): Adjust. Renamed from...
12705 (cselib_get_next_unknown_value): ... this.
12706 (get_value_hash): Use hash.
12707 (cselib_hash_rtx): Likewise.
12708 (new_cselib_val): Adjust. Set and dump uid.
12709 (cselib_lookup_mem): Pass next_uid as hash.
12710 (cselib_subst_to_values): Likewise.
12711 (cselib_log_lookup): Dump uid.
12712 (cselib_lookup): Pass next_uid as hash. Adjust.
12713 (cselib_process_insn): Adjust.
12714 (cselib_init): Initialize next_uid.
12715 (cselib_finish): Adjust.
12716 (dump_cselib_table): Likewise.
12717 * dse.c (canon_address): Dump value uid.
12718 * print-rtl.c (print_rtx): Print value uid.
12719 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
12720 (dvuid): New type.
12721 (dv_uid): New function, sort of renamed from...
12722 (dv_htab_hash): ... this, reimplemented in terms of it and...
12723 (dv_uid2hash): ... this. New.
12724 (variable_htab_eq): Drop excess assertions.
12725 (tie_break_pointers): Removed.
12726 (canon_value_cmp): Compare uids.
12727 (variable_post_merge_New_vals): Print uids.
12728 (vt_add_function_parameters): Adjust.
12729 (vt_initialize): Reset table. Adjust.
12730
12731 2010-02-03 Richard Guenther <rguenther@suse.de>
12732
12733 PR tree-optimization/42944
12734 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
12735 (call_may_clobber_ref_p_1): Likewise. Properly handle
12736 malloc and calloc clobbering errno.
12737
12738 2010-02-03 Steven Bosscher <steven@gcc.gnu.org>
12739
12740 * doc/invoke.texi: Fix name of sched1 dump.
12741
12742 * opts.c (decode_options): Set flag_tree_switch_conversion
12743 only conditionally on optimize >= 2.
12744
12745 * gcse.c: Assorted comment fixes in pass description.
12746
12747 2010-02-03 Anthony Green <green@moxielogic.com>
12748
12749 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
12750 nop padding in order to maintain alignment of storage location of
12751 target function address.
12752 (moxie_trampoline_init): Store target function address at newly
12753 aligned location.
12754 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
12755 to 32.
12756 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
12757
12758 2010-02-03 Richard Guenther <rguenther@suse.de>
12759
12760 PR middle-end/42927
12761 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
12762
12763 2010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12764
12765 * config.gcc: Reenable check for obsolete targets.
12766 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
12767 mips-sgi-irix6.[0-4]*.
12768
12769 2010-02-02 Nick Clifton <nickc@redhat.com>
12770
12771 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
12772 constant size of 4 as being the same as 0.
12773 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
12774 can take values in the range 0..4.
12775
12776 2010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
12777
12778 PR java/41991
12779 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
12780 as _darwin10_Unwind_FindEnclosingFunction().
12781 * libgcc-libsystem.ver: New.
12782
12783 2010-02-01 Vladimir Makarov <vmakarov@redhat.com>
12784
12785 PR target/41399
12786 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
12787 implicitly set registers.
12788
12789 2010-02-01 Richard Earnshaw <rearnsha@arm.com>
12790
12791 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
12792 (arm_override_options): Allow automatic selection of the thread
12793 pointer register if thumb2.
12794 (legitimize_pic_address): Improve code sequences for Thumb2.
12795 (arm_call_tls_get_addr): Likewise.
12796 (legitimize_tls_address): Likewise.
12797 * arm.md (pic_load_addr_arm): Delete. Replace with ...
12798 (pic_load_addr_32bit): ... this. New named pattern.
12799 * thumb2.md (pic_load_addr_thumb2): Delete.
12800 (pic_load_dot_plus_four): Delete.
12801 (tls_load_dot_plus_four): New named pattern.
12802
12803 2010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12804
12805 PR libgomp/29986
12806 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
12807 Document fix for TLS bug.
12808
12809 2010-01-31 Richard Guenther <rguenther@suse.de>
12810
12811 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
12812 conservatively correct.
12813
12814 2010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12815
12816 PR target/42850
12817 Revert:
12818 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12819
12820 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
12821
12822 2010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12823
12824 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
12825
12826 2010-01-31 Kai Tietz <kai.tietz@onevision.com>
12827
12828 * config.gcc: Adjust order of makefile fragments for mingw targets.
12829
12830 2010-01-31 Richard Guenther <rguenther@suse.de>
12831
12832 PR middle-end/42898
12833 * gimplify.c (gimplify_init_constructor): For volatile LHS
12834 initialize a temporary.
12835
12836 2010-01-31 Matthias Klose <doko@ubuntu.com>
12837
12838 * configure.ac: Fix __stack_chk_fail check for cross builds configured
12839 --with-headers
12840 * configure: Regenerate.
12841
12842 2010-01-29 Eric Botcazou <ebotcazou@adacore.com>
12843
12844 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
12845 the same alias set and their sizes different constantness.
12846 (aliasing_component_refs_p): Revert 2009-10-24 change.
12847
12848 2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12849
12850 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
12851 unused.
12852
12853 2010-01-29 Richard Guenther <rguenther@suse.de>
12854
12855 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
12856 Assert we successfully updated the call.
12857
12858 2010-01-29 Jakub Jelinek <jakub@redhat.com>
12859
12860 PR rtl-optimization/42889
12861 * df.h (df_set_bb_dirty_nonlr): New prototype.
12862 * df-core.c (df_set_bb_dirty_nonlr): New function.
12863 * df-scan.c (df_insn_rescan): Call it instead of
12864 df_set_bb_dirty for DEBUG_INSNs.
12865
12866 2010-01-29 Richard Guenther <rguenther@suse.de>
12867
12868 PR middle-end/37448
12869 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
12870 quadratic behavior in most cases.
12871
12872 2010-01-28 Uros Bizjak <ubizjak@gmail.com>
12873
12874 PR target/42891
12875 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
12876 in the call to gen_x86_movsicc_0_m1.
12877
12878 2010-01-28 Richard Guenther <rguenther@suse.de>
12879
12880 PR tree-optimization/42871
12881 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
12882
12883 2010-01-28 Richard Guenther <rguenther@suse.de>
12884
12885 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
12886 into call arguments.
12887
12888 2010-01-28 Richard Guenther <rguenther@suse.de>
12889
12890 PR middle-end/42883
12891 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
12892 the forwarder if the destination is an EH landing pad.
12893
12894 2010-01-28 Razya Ladelsky <razya@il.ibm.com>
12895
12896 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
12897 block list passed to gimple_duplicate_sese_tail.
12898 (parallelize_loops): Avoid parallelization when the function
12899 has_nonlocal_label.
12900 Avoid parallelization when the preheader is IRREDUCIBLE.
12901 Try to optimize when estimated_loop_iterations_int is unresolved.
12902 Add the loop's location to the dump file.
12903 * tree-cfg.c (add_phi_args_after_redirect): Remove.
12904 (gimple_duplicate_sese_tail): Remove the check for the latch.
12905 Redirect nexits to the exit block.
12906 Remove handling of the incoming edges to the latch.
12907 Redirect the backedge from the copied latch to the exit bb.
12908
12909 2010-01-28 Michael Matz <matz@suse.de>
12910
12911 PR target/42881
12912 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
12913 Wrap force_reg into a sequence, emit it before user.
12914
12915 2010-01-28 Stephen Thomas <stephen.thomas@arm.com>
12916
12917 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
12918 (arm_rev): New.
12919 (arm_legacy_rev): Likewise.
12920 (thumb_legacy_rev): Likewise.
12921
12922 2010-01-27 Jakub Jelinek <jakub@redhat.com>
12923
12924 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
12925 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
12926 on MEM's address failed, try avoid_constant_pool_reference and
12927 recurse if it returned something different.
12928 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
12929 address, try avoid_constant_pool_reference and recurse if it
12930 returned something different.
12931 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
12932 address and avoid_constant_pool_reference returned something
12933 different, don't set have_address.
12934
12935 2010-01-27 Alexandre Oliva <aoliva@redhat.com>
12936
12937 PR debug/42861
12938 * var-tracking.c (val_store): Add modified argument, obey it.
12939 Adjust callers.
12940 (count_uses): Move down logging of main.
12941 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
12942 don't need resolution.
12943 (emit_notes_in_bb): Likewise.
12944
12945 2010-01-27 Richard Guenther <rguenther@suse.de>
12946
12947 PR middle-end/42878
12948 * tree-inline.c (remap_decl): Delay remapping of SSA name
12949 default definitions until we need them.
12950
12951 2010-01-27 Jakub Jelinek <jakub@redhat.com>
12952
12953 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
12954 (rs6000_delegitimize_address): New function.
12955
12956 * config/s390/s390.c (s390_delegitimize_address): Call
12957 delegitimize_mem_from_attrs.
12958
12959 PR middle-end/42874
12960 * tree-inline.c (cannot_copy_type_1): Removed.
12961 (copy_forbidden): Don't forbid copying of functions containing
12962 records/unions with variable length fields.
12963
12964 2010-01-27 Christian Bruel <christian.bruel@st.com>
12965
12966 Revert:
12967 PR target/42841
12968 * config/sh/sh.c (find_barrier): Increase length for non delayed
12969 conditional branches.
12970
12971 2010-01-27 Matthias Klose <doko@ubuntu.com>
12972
12973 * configure.ac (gnu-unique-object): Fix ldd version check.
12974 * configure: Regenerate.
12975
12976 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12977
12978 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
12979 HAVE_GNU_AS value.
12980 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
12981 Test for HAVE_GNU_AS value.
12982
12983 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12984
12985 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
12986 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
12987 INT64_TYPE): Define.
12988 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
12989 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12990 INT_LEAST64_TYPE): Define.
12991 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
12992 UINT_LEAST64_TYPE): Define.
12993 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
12994 INT_FAST64_TYPE): Define.
12995 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12996 UINT_FAST64_TYPE): Define.
12997 (INTMAX_TYPE, UINTMAX_TYPE): Define.
12998 (INTPTR_TYPE, UINTPTR_TYPE): Define.
12999 (SIG_ATOMIC_TYPE): Define.
13000
13001 2010-01-26 Richard Guenther <rguenther@suse.de>
13002
13003 * df-scan.c (df_scan_set_bb_info): Remove assert.
13004 (df_insn_rescan_debug_internal): Merge asserts.
13005 (df_install_ref): Likewise.
13006 (df_mark_reg): Use bitmap_set_range.
13007 (df_hard_reg_used_p): Remove assert.
13008 (df_hard_reg_used_count): Likewise.
13009
13010 2010-01-26 Richard Guenther <rguenther@suse.de>
13011
13012 PR rtl-optimization/42685
13013 * web.c (web_main): Ignore DEBUG_INSNs.
13014
13015 2010-01-26 Joern Rennecke <amylaar@spamcop.net>
13016
13017 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
13018
13019 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
13020 Fix types of fndecl and arglist parameters.
13021
13022 2010-01-26 Richard Guenther <rguenther@suse.de>
13023
13024 PR middle-end/42806
13025 * tree-eh.c (unsplit_eh): Skip debug insns.
13026
13027 2010-01-26 Richard Guenther <rguenther@suse.de>
13028
13029 PR tree-optimization/42250
13030 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
13031
13032 2010-01-26 Jakub Jelinek <jakub@redhat.com>
13033
13034 PR fortran/42866
13035 * omp-low.c (expand_omp_sections): Only use single_pred if
13036 l2_bb is single_pred_p.
13037
13038 2010-01-25 Christian Bruel <christian.bruel@st.com>
13039
13040 PR target/42841
13041 * config/sh/sh.c (find_barrier): Increase length for non delayed
13042 conditional branches.
13043 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
13044
13045 2010-01-24 David S. Miller <davem@davemloft.net>
13046
13047 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
13048 define if not using GAS.
13049 * config/sparc/sparc.c (sparc_elf_asm_named_section):
13050 Likewise. Delete SECTION_MERGE code, which is only applicable
13051 when using GAS.
13052
13053 2010-01-24 Mark Mitchell <mark@codesourcery.com>
13054
13055 PR c++/42748
13056 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
13057 mangling of va_list in system headers.
13058
13059 2010-01-23 Toon Moene <toon@moene.org>
13060
13061 * tree-predcom.c (combine_chains): Return NULL, not false.
13062
13063 2010-01-23 Joern Rennecke <amylaar@spamcop.net>
13064
13065 * tree-loop-distribution.c (distribute_loop): Fix declaration and
13066 initialization of variable res to agree with return type.
13067
13068 2010-01-22 Steve Ellcey <sje@cup.hp.com>
13069
13070 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
13071 * tree-sra.c: Add include of expr.h.
13072
13073 2010-01-22 Jakub Jelinek <jakub@redhat.com>
13074
13075 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
13076 insert the debug stmt on the single non-EH edge from the stmt.
13077
13078 2010-01-22 Richard Henderson <rth@redhat.com>
13079
13080 PR tree-opt/42833
13081 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
13082 the RHS until after generate_subtree_copies has insertted its
13083 code before the current statement.
13084
13085 2010-01-22 Joern Rennecke <amylaar@spamcop.net>
13086
13087 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
13088
13089 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
13090
13091 2010-01-21 Martin Jambor <mjambor@suse.cz>
13092
13093 PR tree-optimization/42585
13094 * tree-sra.c (struct access): New field grp_total_scalarization.
13095 (dump_access): Dump the new field.
13096 (should_scalarize_away_bitmap): New variable.
13097 (cannot_scalarize_away_bitmap): Likewise.
13098 (sra_initialize): Allocate new bitmaps.
13099 (sra_deinitialize): Free new bitmaps.
13100 (create_access_1): New function.
13101 (create_access): Parts moved to create_access_1.
13102 (type_consists_of_records_p): New function.
13103 (completely_scalarize_record): Likewise.
13104 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
13105 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
13106 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
13107 access.
13108 (analyze_all_variable_accesses): Completely scalarize small eligible
13109 records.
13110
13111 2010-01-21 Martin Jambor <mjambor@suse.cz>
13112
13113 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
13114
13115 2010-01-21 Andrew Haley <aph@redhat.com>
13116
13117 * gcc.c (process_command): Move lang_specific_driver before
13118 setting cc_libexec_prefix.
13119
13120 2010-01-21 Richard Guenther <rguenther@suse.de>
13121
13122 PR middle-end/19988
13123 * fold-const.c (negate_expr_p): Pretend only negative
13124 real constants are easily negatable.
13125
13126 2010-01-20 Janis Johnson <janis187@us.ibm.com>
13127 Jason Merrill <jason@redhat.com>
13128
13129 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
13130 (TYPE_TRANSPARENT_AGGR): this, for union and record.
13131 * calls.c (initialize argument_information): Handle it.
13132 * c-common.c (handle_transparent_union_attribute): Use new name.
13133 * c-decl.c (finish_struct): Ditto.
13134 * c-typeck.c (type_lists_compatible_p): Ditto.
13135 (convert_for_assignment): Use new name and also handle record.
13136 * function.c (aggregate_value_p): Handle it.
13137 (pass_by_reference): Ditto.
13138 (assign_parm_data_types): Ditto.
13139 * print-tree.c (print_node): Ditto.
13140 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
13141 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
13142 * tree.c (first_field): New fn.
13143
13144 2010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
13145
13146 PR target/42818
13147 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
13148 even when linking statically, for now.
13149
13150 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
13151
13152 PR debug/42715
13153 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
13154 without a cselib val.
13155 (count_uses): Accept MO_VAL_SET with no val on stores.
13156 (add_stores): Likewise.
13157
13158 2010-01-20 Jakub Jelinek <jakub@redhat.com>
13159
13160 * var-tracking.c (check_value_val): Add a compile time assertion.
13161 (dv_is_decl_p): Simplify.
13162 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
13163 gcc_assert if ENABLE_CHECKING.
13164
13165 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
13166
13167 PR debug/42782
13168 * var-tracking.c: Include tree-flow.h.
13169 (mem_dies_at_call): New.
13170 (dataflow_set_preserve_mem_locs): Use it.
13171 (dataflow_set_remove_mem_locs): Likewise.
13172 (dump_var): Renamed from dump_variable. Adjust all callers.
13173 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
13174 * Makefile.in (var-tracking.o): Adjust deps.
13175
13176 2010-01-20 Joern Rennecke <amylaar@spamcop.net>
13177
13178 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
13179
13180 2010-01-20 Richard Guenther <rguenther@suse.de>
13181
13182 PR tree-optimization/42717
13183 * tree-ssa-dce.c (get_live_post_dom): Remove.
13184 (forward_edge_to_pdom): Take an arbitrary edge to copy
13185 degenerate PHI args from.
13186 (remove_dead_stmt): Use the first post-dominator even if it
13187 does not contain live statements as redirection destination.
13188
13189 2010-01-20 Richard Guenther <rguenther@suse.de>
13190
13191 * tree-inline.c (estimate_num_insns): Handle EH builtins.
13192
13193 2010-01-20 Jakub Jelinek <jakub@redhat.com>
13194
13195 * sel-sched.c (create_speculation_check): Remove set but not used
13196 variable twin.
13197 (try_transformation_cache): Remove set but not used variable ds.
13198 (calculate_privileged_insns): Remove set but not used variables
13199 cur_insn and min_spec_insn.
13200 (find_best_expr): Remove set but not used variable avail_n.
13201 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
13202 variable e.
13203 * cgraphunit.c (assemble_thunk): Remove set but not used variable
13204 false_label.
13205 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
13206 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
13207 new_scop_exit_edge.
13208
13209 2010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
13210
13211 PR bootstrap/42786
13212 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
13213 cpu types. Add support for *-sse3 cpu types.
13214 (x86_64-*-*): Ditto.
13215
13216 2010-01-20 Jakub Jelinek <jakub@redhat.com>
13217
13218 PR middle-end/42803
13219 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
13220 argument, call initializer_constant_valid_p_1 instead of
13221 initializer_constant_valid_p, pass CACHE to it, return NULL
13222 immediately if first call returns NULL.
13223 (initializer_constant_valid_p_1): New function.
13224 (initializer_constant_valid_p): Use it.
13225
13226 2010-01-20 Thomas Quinot <quinot@adacore.com>
13227
13228 * tree.def (PLACEHOLDER_EXPR): Fix comment.
13229
13230 2010-01-20 Jakub Jelinek <jakub@redhat.com>
13231
13232 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
13233 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
13234 (loc_list_from_tree): Don't handle unsigned division. Handle
13235 signed modulo using DW_OP_{over,over,div,mul,minus}.
13236 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
13237 modulo instead of signed.
13238
13239 2010-01-20 DJ Delorie <dj@redhat.com>
13240
13241 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
13242 (Fpa): Pass it
13243 (h8300_emit_stack_adjustment): Propogate it.
13244 (push): Pass it.
13245 (h8300_expand_prologue): Likewise.
13246 (h8300_expand_epilogue): Likewise.
13247
13248 2010-01-19 Michael Matz <matz@suse.de>
13249
13250 PR tree-optimization/41783
13251 * tree-data-ref.c (toplevel): Include flags.h.
13252 (dump_data_dependence_relation): Also dump the inputs if the
13253 result will be unknown.
13254 (split_constant_offset_1): Look through some conversions.
13255 * tree-predcom.c (determine_roots_comp): Restart a new chain if
13256 the offset from last element is too large.
13257 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
13258 (reassociate_to_the_same_stmt): Handle vector registers.
13259 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
13260 (e.g. conversions).
13261 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
13262 wide_prolog_niters argument, emit widening instructions.
13263 (vect_do_peeling_for_alignment): Adjust caller, use widened
13264 variant of the iteration cound.
13265 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
13266
13267 2010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13268
13269 PR target/38697
13270 * config/arm/neon-testgen.m (emit_automatics): New parameter
13271 features. Adjust for Fixed_return_reg feature.
13272 (test_intrinsic): Call emit_automatics with new feature.
13273 * config/arm/neon.ml: Update copyright years.
13274 (features): New Fixed_return_reg feature.
13275 (ops): Update feature for Vget_low.
13276
13277 2010-01-19 Jakub Jelinek <jakub@redhat.com>
13278
13279 PR tree-optimization/42719
13280 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
13281 stmt uses.
13282
13283 PR debug/42728
13284 * fwprop.c (all_uses_available_at): Return false if def_set dest
13285 is a REG that is used in def_insn.
13286
13287 2010-01-19 Joern Rennecke <amylaar@spamcop.net>
13288
13289 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
13290
13291 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
13292 Add argument names.
13293
13294 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
13295
13296 * target.h (struct gcc_target) <secondary_reload>: Change type
13297 of last argument to secondary_reload_info *.
13298
13299 2010-01-18 Uros Bizjak <ubizjak@gmail.com>
13300
13301 PR target/42774
13302 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
13303 memory references with unaligned offsets. Remove CQImode handling.
13304 (unaligned_memory_operand): Return 1 for memory references with
13305 unaligned offsets. Remove CQImode handling.
13306
13307 2010-01-18 Richard Guenther <rguenther@suse.de>
13308
13309 PR middle-end/39954
13310 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
13311 builtin calls.
13312
13313 2010-01-18 Richard Guenther <rguenther@suse.de>
13314
13315 PR tree-optimization/42781
13316 * tree-ssa-structalias.c (find_what_var_points_to): Skip
13317 restrict processing only if the original variable was artificial.
13318
13319 2010-01-18 Joern Rennecke <amylaar@spamcop.net>
13320
13321 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
13322 find number of popped argument bytes.
13323
13324 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
13325 Fix the text that describes the return value for invalid insns.
13326
13327 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
13328
13329 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
13330 Clarify what 'cost of the -dependence' is. Fix quoting.
13331
13332 * toplev.c (default_get_pch_validity): Rename argument to "sz".
13333 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
13334
13335 2010-01-17 Jakub Jelinek <jakub@redhat.com>
13336
13337 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
13338 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
13339
13340 2010-01-17 Richard Guenther <rguenther@suse.de>
13341
13342 PR middle-end/42248
13343 * function.c (split_complex_args): Take a VEC to modify.
13344 (assign_parms_augmented_arg_list): Build a VEC instead of
13345 a chain of PARM_DECLs.
13346 (assign_parms_unsplit_complex): Take a VEC of arguments.
13347 Do not fixup unmodified parms.
13348 (assign_parms): Deal with the VEC.
13349 (gimplify_parameters): Likewise.
13350
13351 2010-01-17 Richard Guenther <rguenther@suse.de>
13352
13353 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
13354 node existence check.
13355 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
13356 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
13357 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
13358 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
13359 (gimple_execute_on_growing_pred): Likewise.
13360
13361 2010-01-17 Richard Guenther <rguenther@suse.de>
13362
13363 PR tree-optimization/42773
13364 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
13365 (compute_antic_aux): Likewise.
13366 (compute_partial_antic_aux): Likewise.
13367
13368 2010-01-17 Jie Zhang <jie.zhang@analog.com>
13369
13370 PR debug/42767
13371 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
13372 and US_TRUNCATE.
13373
13374 2010-01-17 Joern Rennecke <amylaar@spamcop.net>
13375
13376 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
13377 appearance.
13378
13379 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
13380 Fix markup for strict argument.
13381
13382 (TARGET_SCHED_REORDER2): Fix argument types.
13383
13384 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
13385 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
13386
13387 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
13388 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
13389
13390 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
13391 Add argument name.
13392
13393 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
13394 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
13395 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
13396 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
13397 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
13398
13399 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
13400
13401 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
13402
13403 (TARGET_ASM_RELOC_RW_MASK): Add return type.
13404 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
13405
13406 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
13407
13408 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
13409 Use prototype.
13410
13411 (TARGET_ASM_NAMED_SECTION): Fix argument list.
13412
13413 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
13414 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
13415
13416 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
13417
13418 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
13419
13420 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
13421 referring to it. Fix language.
13422
13423 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
13424
13425 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
13426
13427 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
13428
13429 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
13430
13431 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
13432 '@var{stream}. Remove stray 'and'.
13433
13434 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
13435
13436 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
13437
13438 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
13439
13440 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
13441 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
13442
13443 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
13444 Fix description of return value.
13445 Rename argument "sz" to "len."
13446
13447 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
13448 Clarify meaning of 'true' return value.
13449
13450 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
13451
13452 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
13453 rep_mode versus mode_rep.
13454
13455 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
13456
13457 (TARGET_BUILTIN_DECL): Fix name.
13458
13459 (TARGET_COMMUTATIVE_P): Fix type of first argument.
13460
13461 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
13462
13463 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
13464
13465 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
13466
13467 (TARGET_RELAXED_ORDERING): Use @deftypevr.
13468
13469 (TARGET_GET_DRAP_RTX): Note that this is a hook.
13470 Clarify language.
13471
13472 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
13473 Rename argument tm_fn to md_fn.
13474
13475 (TARGET_OPTION_PRINT): Fix argument list.
13476
13477 2010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
13478
13479 PR target/42664
13480 * config/i386/i386.c (ix86_fixup_binary_operands):
13481 Revert FMA4 fixup of operands.
13482
13483 2010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13484
13485 PR gcc/42525
13486 * Makefile.in (write_entries_to_file, install-plugin):
13487 Use \012 instead of \n with tr.
13488
13489 2010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
13490
13491 * configure.ac (HAVE_AS_REF): New C macro.
13492 * configure: Regenerate.
13493 * config.in: Likewise.
13494 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
13495 if HAVE_AS_REF.
13496 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
13497 if HAVE_AS_REF.
13498
13499 2010-01-16 Joern Rennecke <amylaar@spamcop.net>
13500
13501 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
13502
13503 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
13504
13505 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
13506
13507 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
13508
13509 (TARGET_IN_SMALL_DATA_P): Fix argument type.
13510
13511 (TARGET_BINDS_LOCAL_P): Fix argument type.
13512
13513 (TARGET_ASM_FILE_END): Use prototype.
13514
13515 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
13516
13517 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
13518
13519 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
13520
13521 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
13522
13523 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
13524 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
13525
13526 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
13527 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
13528
13529 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
13530 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
13531 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
13532 (TARGET_ADDR_SPACE_CONVERT): Likewise.
13533
13534 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
13535
13536 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
13537
13538 (TARGET_INIT_BUILTINS): Use prototype.
13539
13540 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
13541 Put 'const char *' in braces. Fix parameter types.
13542 (TARGET_INVALID_CONVERSION): Fix parameter types.
13543 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
13544 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
13545
13546 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
13547 Fix argument type.
13548
13549 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
13550
13551 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
13552
13553 2010-01-15 Joern Rennecke <amylaar@spamcop.net>
13554
13555 * doc/tm.texi (TARGET_HELP): Fix return type.
13556
13557 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
13558 in braces. Fix argument types.
13559
13560 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
13561
13562 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
13563
13564 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
13565
13566 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
13567 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
13568
13569 (TARGET_MANGLE_TYPE): Fix argument types.
13570
13571 (TARGET_IRA_COVER_CLASSES): Use prototype.
13572
13573 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
13574
13575 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
13576
13577 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
13578
13579 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
13580
13581 (TARGET_CALLEE_COPIES): Fix argument types.
13582
13583 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
13584
13585 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
13586
13587 (TARGET_FUNCTION_VALUE): Fix argument types.
13588
13589 (TARGET_RETURN_IN_MSB): Fix argument type.
13590
13591 (TARGET_RETURN_IN_MEMORY): Fix argument types.
13592
13593 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
13594
13595 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
13596
13597 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
13598 agree with return type.
13599
13600 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
13601
13602 2010-01-15 Jing Yu <jingyu@google.com>
13603
13604 PR rtl-optimization/42691
13605 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
13606 a pseudo to a constant and are merged, and adjust comments.
13607
13608 2010-01-15 Eric Botcazou <ebotcazou@adacore.com>
13609
13610 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
13611
13612 2010-01-15 Richard Guenther <rguenther@suse.de>
13613
13614 PR middle-end/42739
13615 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
13616 labels of computed or non-local gotos to the destination.
13617 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
13618 landing pad label is the first label.
13619
13620 2010-01-15 Richard Guenther <rguenther@suse.de>
13621
13622 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
13623
13624 2010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
13625
13626 PR target/42747
13627 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
13628 to allow generation of the xssqrtdp instruction on power7.
13629 (sqrtdf2_fpr): Ditto.
13630
13631 2010-01-14 Jakub Jelinek <jakub@redhat.com>
13632
13633 PR middle-end/42674
13634 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
13635 functions with noreturn attribute.
13636
13637 PR c++/42608
13638 * varasm.c (declare_weak): Add weak attribute to decl if it
13639 doesn't have one already.
13640 (assemble_external): Only add decls to weak_decls if they also
13641 have weak attribute.
13642
13643 2010-01-14 Alexandre Oliva <aoliva@redhat.com>
13644
13645 * var-tracking.c (var_reg_delete): Don't delete the association
13646 between REGs and values or one-part variables if the register
13647 isn't clobbered.
13648
13649 2010-01-14 Jakub Jelinek <jakub@redhat.com>
13650
13651 PR debug/42657
13652 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
13653 because its first operand is a non-localized variable.
13654
13655 2010-01-14 Martin Jambor <mjambor@suse.cz>
13656
13657 PR tree-optimization/42706
13658 * tree-sra.c (encountered_recursive_call): New variable.
13659 (encountered_unchangable_recursive_call): Likewise.
13660 (sra_initialize): Initialize both new variables.
13661 (callsite_has_enough_arguments_p): New function.
13662 (scan_function): Call decl and flags check only for IPA-SRA, check
13663 whether there is a recursive call and whether it has enough arguments.
13664 (all_callers_have_enough_arguments_p): New function.
13665 (convert_callers): Look for recursive calls only when
13666 encountered_recursive_call is set.
13667 (ipa_early_sra): Bail out either if
13668 !all_callers_have_enough_arguments_p or
13669 encountered_unchangable_recursive_call.
13670
13671 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
13672
13673 * sel-sched.c: Add 2010 to copyright years.
13674 * sel-sched-ir.c: Likewise.
13675 * sel-sched-ir.h: Likewise.
13676
13677 2010-01-14 Martin Jambor <mjambor@suse.cz>
13678
13679 PR tree-optimization/42714
13680 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
13681 constructors specially.
13682
13683 2010-01-14 Andi Kleen <ak@linux.intel.com>
13684
13685 * config/i386/drivers-i386.c (detect_caches_intel):
13686 Add l2sizekb parameter and fill in.
13687 (host_detect_local_cpu): Add l2sizekb, fill in.
13688 Add Atom small cache heuristic.
13689
13690 2010-01-14 Andi Kleen <ak@linux.intel.com>
13691
13692 * config/i386/drivers-i386.c (detect_caches_cpuid4):
13693 Add level3 parameter and fill in.
13694 (detect_caches_intel): Handle level3 cache.
13695
13696 2010-01-14 Andi Kleen <ak@linux.intel.com>
13697
13698 * config/i386/drivers-i386.c (host_detect_local_cpu):
13699 Fix core duo detection.
13700
13701 2010-01-14 Andi Kleen <ak@linux.intel.com>
13702
13703 * config/i386/drivers-i386.c (host_detect_local_cpu):
13704 Fix Atom detection.
13705
13706 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
13707
13708 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
13709 (rs6000_variable_issue_1): this. Use...
13710 (rs6000_variable_issue): here. Reimplement. Print debug info.
13711
13712 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
13713
13714 * sel-sched-ir.c (sel_restore_other_notes): Rename to
13715 sel_restore_notes. Update all callers. Call reemit_notes
13716 for all insns.
13717
13718 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
13719
13720 PR rtl-optimization/42246
13721 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
13722 loops.
13723
13724 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
13725
13726 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
13727 all successors is the same as number of successors in current region.
13728
13729 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
13730
13731 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
13732 to rename is not separable. Otherwise check that its LHS is not NULL.
13733
13734 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
13735
13736 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
13737
13738 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
13739
13740 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
13741 available registers when failed to discover LHS register class.
13742 Fix indentation. Update comment.
13743
13744 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
13745 Alexander Monakov <amonakov@ispras.ru>
13746
13747 PR rtl-optimization/42389
13748 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
13749 to can_issue_more.
13750 (advance_state_on_fence): Likewise.
13751 (sel_target_adjust_priority): Print debug output only when
13752 sched_verbose >= 4, not 2.
13753 (get_expr_cost): Do not issue all unique insns on the next cycle.
13754 (fill_insns): Initialize can_issue_more from the value saved
13755 with the fence.
13756 * sel-sched-ir.c (flist_add): New parameter issue_more.
13757 Init FENCE_ISSUE_MORE with it.
13758 (merge_fences): Likewise.
13759 (init_fences): Update call to flist_add.
13760 (add_to_fences, add_clean_fence_to_fences)
13761 (add_dirty_fence_to_fences): Likewise.
13762 (move_fence_to_fences): Update call to merge_fences.
13763 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
13764 sched groups.
13765 * sel-sched-ir.h (struct _fence): New field issue_more.
13766 (FENCE_ISSUE_MORE): New accessor macro.
13767
13768 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
13769
13770 PR rtl-optimization/42388
13771 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
13772 that have no predecessors nor successors. Do not call move_bb_info
13773 for empty blocks outside of current region.
13774
13775 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
13776
13777 PR rtl-optimization/42294
13778 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
13779 * sel-sched.c (move_exprs_to_boundary): Transitively add all
13780 originators' originators.
13781
13782 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
13783
13784 PR rtl-optimization/39453
13785 PR rtl-optimization/42246
13786 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
13787 for pipelining_p.
13788 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
13789
13790 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
13791 Alexander Monakov <amonakov@ispras.ru>
13792
13793 PR middle-end/42245
13794 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
13795 (maybe_tidy_empty_bb): ... here. Make static. Add new
13796 argument. Update all callers.
13797 (tidy_control_flow): ... and here. Recompute topological order
13798 of basic blocks in region if necessary.
13799 (sel_redirect_edge_and_branch): Change return type. Return true
13800 if topological order might have been invalidated.
13801 (purge_empty_blocks): Export and move from...
13802 * sel-sched.c (purge_empty_blocks): ... here.
13803 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
13804 (maybe_tidy_empty_bb): Delete prototype.
13805 (purge_empty_blocks): Declare.
13806
13807 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
13808
13809 PR rtl-optimization/42249
13810 * sel-sched.c (try_replace_dest_reg): When chosen register
13811 and original register is the same, do not bail out early, but
13812 still check all original insns for validity of replacing destination
13813 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
13814 in this case.
13815
13816 2010-01-14 Jakub Jelinek <jakub@redhat.com>
13817
13818 PR c/42721
13819 Port from no-undefined-overflow branch:
13820 2009-03-09 Richard Guenther <rguenther@suse.de>
13821
13822 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
13823
13824 2010-01-14 Richard Guenther <rguenther@suse.de>
13825
13826 PR lto/42665
13827 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
13828
13829 2010-01-14 Ira Rosen <irar@il.ibm.com>
13830
13831 PR tree-optimization/42709
13832 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
13833 as scalar type in creation of constant vector operand.
13834
13835 2010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13836
13837 PR testsuite/42414
13838 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
13839 (check-parallel-%): Match `testsuite' directory component only
13840 at the end.
13841
13842 2010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
13843
13844 PR translation/39521
13845 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
13846 strings with _().
13847
13848 2010-01-13 Richard Guenther <rguenther@suse.de>
13849
13850 PR tree-optimization/42730
13851 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
13852 offset zero.
13853
13854 2010-01-13 Steve Ellcey <sje@cup.hp.com>
13855
13856 PR target/pr42542
13857 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
13858 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
13859 them signed.
13860
13861 2010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
13862
13863 * config/bfin/libgcc-bfin.ver: Regenerate based on current
13864 libgcc-std.ver. Add entries for ___smulsi3_highpart and
13865 ___umulsi3_highpart.
13866
13867 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
13868 rather than schedule_insns if the pass is enabled.
13869
13870 2010-01-13 Martin Jambor <mjambor@suse.cz>
13871
13872 PR tree-optimization/42704
13873 * tree-sra.c (sra_modify_assign): Do not delete assignments to
13874 SSA_NAMEs.
13875
13876 2010-01-13 Martin Jambor <mjambor@suse.cz>
13877
13878 PR tree-optimization/42703
13879 * tree-sra.c (analyze_access_subtree): Check that we can build a
13880 reference to the original data within the aggregate.
13881
13882 2010-01-13 Richard Guenther <rguenther@suse.de>
13883
13884 PR tree-optimization/42705
13885 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
13886
13887 2010-01-13 Richard Guenther <rguenther@suse.de>
13888
13889 PR middle-end/42716
13890 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
13891
13892 2010-01-13 Jakub Jelinek <jakub@redhat.com>
13893
13894 PR debug/41371
13895 * var-tracking.c (values_to_unmark): New variable.
13896 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
13897 values_to_unmark vector. Moved body to...
13898 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
13899 instead queue it into values_to_unmark vector.
13900 (vt_find_locations): Free values_to_unmark vector.
13901
13902 2010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
13903
13904 * config/s390/s390.c (override_options): Set
13905 default of max-pending-list-length to 256
13906
13907 2010-01-13 Richard Guenther <rguenther@suse.de>
13908
13909 PR lto/42678
13910 * tree-pass.h (PROP_gimple_lcx): New.
13911 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
13912 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
13913 before the final cleanup_eh.
13914 (dump_properties): Dump PROP_gimple_lcx.
13915 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
13916 (tree_lower_complex_O0): Remove.
13917 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
13918 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
13919 tree_lower_complex, schedule TODO_update_ssa.
13920 * lto-streamer-out.c (output_function): Stream the functions
13921 properties.
13922 * lto-streamer-in.c (input_function): Likewise.
13923 (lto_read_body): Do not override them here.
13924
13925 2010-01-12 Joseph Myers <joseph@codesourcery.com>
13926
13927 PR c/42708
13928 * c-typeck.c (build_c_cast): Fold value cast to union type before
13929 wrapping it in a CONSTRUCTOR.
13930
13931 2010-01-12 Jakub Jelinek <jakub@redhat.com>
13932
13933 PR rtl-optimization/42699
13934 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
13935 involved.
13936
13937 2010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13938
13939 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
13940 SUBTARGET_WARN_UNUSED_SPEC): Move ...
13941 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
13942 SUBTARGET_WARN_UNUSED_SPEC): ... here
13943 * config/mips/iris5.h (LIBGCC_SPEC): Define.
13944
13945 2010-01-12 Julian Brown <julian@codesourcery.com>
13946
13947 * config/arm/neon-schedgen.ml (Utils): Don't try to
13948 open missing module.
13949 (find_with_result): New.
13950
13951 2010-01-12 Jakub Jelinek <jakub@redhat.com>
13952
13953 PR debug/42662
13954 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
13955 sharing when canonicalizing ({lt,ge}u (plus a b) b).
13956
13957 PR tree-optimization/42645
13958 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
13959 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
13960 decl_map, set processing_debug_stmt to -1 and return name without
13961 any remapping.
13962
13963 2010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
13964
13965 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
13966 binutils version, and reword target configuration description.
13967
13968 2010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
13969
13970 * config/avr/avr.h (LINKER_NAME): Remove.
13971
13972 2010-01-11 Janis Johnson <janis187@us.ibm.com>
13973
13974 PR target/42416
13975 * config/rs6000/rs6000.c (rs6000_override_options): On targets
13976 that support VSX, warn for -mno-altivec if vsx is not disabled,
13977 and disable vsx.
13978
13979 2010-01-11 Joseph Myers <joseph@codesourcery.com>
13980 Shujing Zhao <pearly.zhao@oracle.com>
13981
13982 PR translation/42469
13983 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
13984 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
13985 character between option name and help text.
13986 * c.opt (imultilib): Likewise.
13987
13988 2010-01-10 Rafael Avila de Espindola <espindola@google.com>
13989
13990 * lto-streamer-out.c (output_unreferenced_globals): Output static
13991 variables.
13992
13993 2010-01-10 Steven Bosscher <steven@gcc.gnu.org>
13994
13995 PR rtl-optimization/42621
13996 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
13997 optimizing for size.
13998 (duplicate_computed_gotos): Remove now-redundant check.
13999
14000 2010-01-10 Steve Ellcey <sje@cup.hp.com>
14001
14002 PR target/37454
14003 * configure.ac: Save and restore LDFLAGS and LIBS
14004 * configure: Regenerate.
14005
14006 2010-01-10 Richard Guenther <rguenther@suse.de>
14007
14008 PR middle-end/42667
14009 * builtins.c (fold_builtin_strlen): Add type argument and
14010 convert the resulting length to it.
14011 (fold_builtin_1): Adjust.
14012
14013 2010-01-09 Jakub Jelinek <jakub@redhat.com>
14014
14015 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
14016 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
14017 1 insn.
14018 (num_insns_constant_wide): Adjust for that change.
14019
14020 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
14021
14022 PR debug/42631
14023 * web.c (union_defs): Add used argument, to combine uses of
14024 uninitialized regs.
14025 (entry_register): Adjust type and tests of used argument.
14026 (web_main): Widen used for new use. Pass it to union_defs.
14027 * df.h (union_defs): Adjust prototype.
14028
14029 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
14030
14031 PR debug/42630
14032 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
14033 uses in new incoming argument. Free body.
14034 (reset_debug_uses_in_loop): New.
14035 (analyze_insn_to_expand_var): Call the latter if the former found
14036 anything. Fix whitespace. Reject invalid dest overlaps before
14037 going through all insns in the loop.
14038
14039 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
14040
14041 PR debug/42629
14042 * haifa-sched.c (dying_use_p): Debug insns don't count.
14043
14044 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
14045
14046 PR middle-end/42363
14047 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
14048 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
14049 (verify_gimple_call): Reject LHS in noreturn calls.
14050
14051 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
14052
14053 PR debug/42604
14054 PR debug/42395
14055 * tree-vect-loop-manip.c (adjust_info): New type.
14056 (adjust_vec): New pointer to vector.
14057 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
14058 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
14059 (slpeel_update_phis_for_duplicate_loop): Use them.
14060 (slpeel_update_phi_nodes_for_guard1): Likewise.
14061 (slpeel_update_phi_nodes_for_guard2): Likewise.
14062 (slpeel_tree_peel_loop_to_edge): Likewise.
14063 (vect_update_ivs_after_vectorizer): Likewise.
14064
14065 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
14066
14067 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
14068 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
14069
14070 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
14071
14072 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
14073 bogus uninitialized warning.
14074
14075 2010-01-09 Richard Guenther <rguenther@suse.de>
14076
14077 PR middle-end/42512
14078 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
14079 the evolution is compatible with the initial condition.
14080
14081 2010-01-09 Jakub Jelinek <jakub@redhat.com>
14082
14083 * gcc.c (process_command): Update copyright notice dates.
14084 * gcov.c (print_version): Likewise.
14085 * gcov-dump.c (print_version): Likewise.
14086 * mips-tfile.c (main): Likewise.
14087 * mips-tdump.c (main): Likewise.
14088
14089 2010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
14090
14091 PR target/41885
14092 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
14093 (rotlhi3): Delete.
14094 (rotlhi3_8): Delete.
14095 (rotlsi3): Delete.
14096 (rotlsi3_8): Delete.
14097 (rotlsi3_16): Delete.
14098 (rotlsi3_24): Delete.
14099 (rotl<mode>3): New.
14100 (*rotw<mode>3): New.
14101 (*rotb<mode>3): New.
14102 * config/avr/avr.c (avr_rotate_bytes): New function.
14103 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
14104
14105 2010-01-08 Steve Ellcey <sje@cup.hp.com>
14106
14107 PR target/37454
14108 * configure.ac: Modify -rdynamic check.
14109 * configure: Regenerate.
14110
14111 2010-01-08 DJ Delorie <dj@redhat.com>
14112
14113 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
14114 register popping order.
14115
14116 2010-01-08 Richard Guenther <rguenther@suse.de>
14117
14118 PR lto/42528
14119 * c.opt (fsigned-char): Also let LTO handle this option.
14120 (funsigned-char): Likewise.
14121
14122 2010-01-07 Richard Guenther <rguenther@suse.de>
14123
14124 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
14125 (gimple_op): Likewise.
14126 (gimple_op_ptr): Likewise.
14127 (gimple_assign_set_lhs): Remove gcc_assert.
14128 (gimple_assign_set_rhs1): Likewise.
14129 (gimple_assign_set_rhs2): Likewise.
14130 (gimple_call_set_lhs): Likewise.
14131 (gimple_call_set_fn): Likewise.
14132 (gimple_call_set_fndecl): Likewise.
14133 (gimple_call_fndecl): Likewise.
14134 (gimple_call_return_type): Likewise.
14135 (gimple_call_set_chain): Likewise.
14136 (gimple_call_num_args): Likewise.
14137 (gimple_call_set_arg): Likewise.
14138 (gimple_cond_set_code): Likewise.
14139 (gimple_cond_set_lhs): Likewise.
14140 (gimple_cond_set_rhs): Likewise.
14141 (gimple_cond_set_true_label): Likewise.
14142 (gimple_cond_set_false_label): Likewise.
14143 (gimple_label_set_label): Likewise.
14144 (gimple_goto_set_dest): Likewise.
14145 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
14146 (gimple_debug_bind_get_value): Likewise.
14147 (gimple_debug_bind_get_value_ptr): Likewise.
14148 (gimple_debug_bind_set_var): Likewise.
14149 (gimple_debug_bind_set_value): Likewise.
14150 (gimple_debug_bind_reset_value): Likewise.
14151 (gimple_debug_bind_has_value_p): Likewise.
14152 (gimple_return_retval_ptr): Remove gcc_assert.
14153 (gimple_return_retval): Likewise.
14154 (gimple_return_set_retval): Likewise.
14155 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
14156 (safe_referenced_var_iterator): Remove.
14157 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
14158 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
14159 (fill_referenced_var_vec): Remove.
14160 (first_readonly_imm_use): Remove redundant gcc_assert.
14161 (phi_arg_index_from_use): Combine gcc_asserts.
14162 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
14163 (first_imm_use_stmt): Remove redundant gcc_assert.
14164 * tree-cfg.c (verify_gimple_call): Verify function and chain
14165 operands. Verify arguments.
14166 (verify_types_in_gimple_stmt): Verify condition code and labels.
14167
14168 2010-01-07 Richard Guenther <rguenther@suse.de>
14169
14170 PR tree-optimization/42641
14171 * sese.c (rename_map_elt_info): Use the SSA name version, do
14172 not hash pointers.
14173
14174 2010-01-07 Jakub Jelinek <jakub@redhat.com>
14175
14176 PR tree-optimization/42625
14177 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
14178 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
14179
14180 2010-01-07 Duncan Sands <baldrick@free.fr>
14181
14182 * Makefile.in (PLUGIN_HEADERS): Add version.h.
14183
14184 2010-01-07 Uros Bizjak <ubizjak@gmail.com>
14185
14186 PR target/42511
14187 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
14188 note itself is not function_invariant_p.
14189
14190 2009-01-07 Steven Bosscher <steven@gcc.gnu.org>
14191
14192 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
14193 Do not add the DF_NOTE problem.
14194 * store-motion.c (execute_rtl_store_motion): Likewise.
14195
14196 2010-01-07 Martin Jambor <mjambor@suse.cz>
14197
14198 PR tree-optimization/42157
14199 * tree-sra.c (compare_access_positions): Stabilize sort if both
14200 accesses have integer types, return zero immediately if they are the
14201 same.
14202
14203 2010-01-06 Richard Henderson <rth@redhat.com>
14204
14205 PR middle-end/41883
14206 * haifa-sched.c (add_to_note_list): Merge into ...
14207 (concat_note_lists): ... here, and ...
14208 (unlink_other_notes, rm_other_notes): Merge into...
14209 (remove_notes): ... here. Create REG_SAVE_NOTEs for
14210 NOTE_INSN_EPILOGUE_BEG.
14211
14212 2010-01-06 Richard Guenther <rguenther@suse.de>
14213
14214 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
14215 not inline regular functions into always-inline functions.
14216
14217 2010-01-06 Nick Clifton <nickc@redhat.com>
14218
14219 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
14220 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
14221 used together.
14222 (OVERRIDE_OPTIONS): Delete.
14223 (OPTIMIZATION_OPTIONS): Define.
14224 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
14225 * config/rx/rx.c (rx_handle_option): Issue an error message if
14226 -mcpu=rx200 and -fpu are used together.
14227 (rx_set_optimization_options): New function. Issue an error
14228 message if an optimization attribute attempts to reset the FPU/
14229 math optimization pairing.
14230 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
14231 * config/rx/rx.opt: Set the default to 32-bit doubles.
14232 * config/rx/t-rx: Add multilibs for -nofpu option.
14233 * doc/invoke.texi: Update documentation of RX options.
14234
14235 2010-01-06 Richard Guenther <rguenther@suse.de>
14236
14237 * tree-ssa-pre.c (name_to_id): New global.
14238 (alloc_expression_id): Simplify SSA name handling.
14239 (lookup_expression_id): Likewise.
14240 (init_pre): Zero name_to_id.
14241 (fini_pre): Free it.
14242
14243 2010-01-06 Uros Bizjak <ubizjak@gmail.com>
14244
14245 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
14246
14247 2010-01-05 H.J. Lu <hongjiu.lu@intel.com>
14248
14249 PR target/42542
14250 * config/i386/sse.md (smaxv2di3): New.
14251 (umaxv2di3): Likewise.
14252 (sminv2di3): Likewise.
14253 (uminv2di3): Likewise.
14254
14255 2010-01-05 Eric Botcazou <ebotcazou@adacore.com>
14256
14257 PR target/42564
14258 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
14259 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
14260 (legitimize_tls_address): Likewise.
14261 (sparc_tls_referenced_p): Likewise.
14262 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
14263 and adjust calls to legitimize_pic_address.
14264 (legitimate_constant_p) Use sparc_tls_referenced_p.
14265 (legitimate_pic_operand_p): Likewise.
14266 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
14267 (sparc_tls_symbol_ref_1): Delete.
14268 (sparc_tls_referenced_p): Make static, recognize specific patterns.
14269 (legitimize_tls_address): Make static, handle CONST patterns.
14270 (legitimize_pic_address): Make static, remove unused parameter and
14271 adjust recursive calls.
14272 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
14273 and adjust call to legitimize_pic_address.
14274 (sparc_output_mi_thunk): Likewise.
14275
14276 2010-01-05 Paolo Bonzini <bonzini@gnu.rg>
14277 H.J. Lu <hongjiu.lu@intel.com>
14278
14279 PR target/42542
14280 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
14281 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
14282 operands to make them signed.
14283
14284 Revert:
14285 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
14286
14287 PR target/42542
14288 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
14289 GTU to GT for V4SI and V2DI.
14290
14291 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
14292 (umin<mode>3): Removed.
14293 (uminv8hi3): New.
14294 (uminv4si3): Likewise.
14295
14296 2010-01-05 Martin Jambor <mjambor@suse.cz>
14297
14298 PR tree-optimization/42462
14299 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
14300 current_function_decl to helper functions and macros.
14301
14302 2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14303
14304 PR bootstrap/41771
14305 * flags.h: Don't include real.h.
14306 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
14307 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
14308 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
14309 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
14310 * dominance.c: Update copyright.
14311 * gimple.c (walk_gimple_op): Remove inline.
14312 * tree-ssa-reassoc.c: Include real.h.
14313 * Makefile.in (FLAGS_H): Remove $(REAL_H).
14314 (tree-ssa-reassoc.o): Depend on $(REAL_H).
14315
14316 2010-01-05 Nick Clifton <nickc@redhat.com>
14317
14318 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
14319 register to push into the stack frame when the accumulator has to
14320 be saved during interrupts.
14321
14322 2010-01-05 Eric Fisher <joefoxreal@gmail.com>
14323
14324 * doc/invoke.texi: Remove the documentation about option
14325 -Wunreachable-code.
14326 * common.opt (Wunreachable-code): Preserved for backward
14327 compatibility.
14328 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
14329 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
14330 the backward compatibility flag section.
14331
14332 2010-01-05 Richard Guenther <rguenther@suse.de>
14333
14334 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
14335
14336 2010-01-05 Jakub Jelinek <jakub@redhat.com>
14337
14338 PR other/42611
14339 * cfgexpand.c (expand_one_var): Diagnose too large variables.
14340
14341 PR tree-optimization/42508
14342 * tree-sra.c (convert_callers): Check for recursive call
14343 by comparing cgraph nodes instead of decls.
14344 (modify_function): Call ipa_modify_formal_parameters also
14345 on all same_body aliases.
14346
14347 * cgraphunit.c (cgraph_materialize_all_clones): Compare
14348 cgraph nodes when checking for same_body aliases.
14349
14350 2010-01-05 Richard Guenther <rguenther@suse.de>
14351
14352 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
14353 allocation and lookup.
14354 (get_or_alloc_expr_for_constant): Likewise.
14355 (phi_translate): Sink allocation.
14356
14357 2010-01-04 Richard Guenther <rguenther@suse.de>
14358
14359 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
14360 a new entry only if needed.
14361 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
14362 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
14363 hashtable lookup.
14364 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
14365 the result array.
14366 (phi_translate): Handle CONSTANTs early.
14367
14368 2010-01-04 Martin Jambor <mjambor@suse.cz>
14369
14370 PR tree-optimization/42398
14371 * tree-sra.c (struct access): Removed flag grp_different_types.
14372 (dump_access): Do not dump the removed flag.
14373 (sort_and_splice_var_accesses): Do not set the removed flag.
14374 (sra_modify_expr): Check for type compatibility directly.
14375
14376 2010-01-04 Martin Jambor <mjambor@suse.cz>
14377
14378 PR tree-optimization/42366
14379 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
14380 edges with variable number of parameters.
14381 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
14382 flag instead of asserting it.
14383 (ipa_read_node_info): Read uses_analysis_done flag.
14384
14385 2010-01-04 Richard Guenther <rguenther@suse.de>
14386
14387 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
14388 iterative_hash_* as intended.
14389 (vn_reference_compute_hash): Likewise. Simplify hashing
14390 SSA names.
14391 (vn_reference_lookup_2): Likewise.
14392 (vn_nary_op_compute_hash): Likewise.
14393 (vn_phi_compute_hash): Likewise.
14394 (expressions_equal_p): Remove strange code.
14395 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
14396 (pre_expr_hash): Likewise. Simplify hashing SSA names.
14397 (bitmap_insert_into_set_1): Take value-id as parameter.
14398 (add_to_value): Pass it.
14399 (bitmap_insert_into_set): Likewise.
14400 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
14401
14402 2010-01-04 Jakub Jelinek <jakub@redhat.com>
14403
14404 PR driver/42442
14405 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
14406 (do_self_spec): For switches with SWITCH_IGNORE set set also
14407 SWITCH_IGNORE_PERMANENTLY.
14408 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
14409 of SWITCH_IGNORE.
14410
14411 2010-01-04 Rafael Avila de Espindola <espindola@google.com>
14412
14413 * lto-streamer-out.c (output_unreferenced_globals): Output the full
14414 tree of an unreferenced global var.
14415
14416 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
14417
14418 PR target/42542
14419 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
14420 GTU to GT for V4SI and V2DI.
14421
14422 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
14423 (umin<mode>3): Removed.
14424 (uminv8hi3): New.
14425 (uminv4si3): Likewise.
14426
14427 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
14428
14429 PR lto/42581
14430 * collect2.c (main): Turn on trace in collect2 if -v is passed
14431 to gcc with LTO.
14432
14433 2010-01-03 Jerry Quinn <jlquinn@optonline.net>
14434
14435 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
14436 description of expression operand.
14437
14438 2010-01-03 Andrew Jenner <andrew@codesourcery.com>
14439
14440 * configure.ac: Add install-html to target_list for Make-hooks.
14441 * configure: Regenerate.
14442 * fortran/Make-lang.in (F95_HTMLFILES): New.
14443 (fortran.html): Use it.
14444 (fortran.install-html): New.
14445 * Makefile.in (install-html): Add lang.install-html.
14446 * java/Make-lang.in (JAVA_HTMLFILES): New.
14447 (java.html): Use it.
14448 (java.install-html): New.
14449 * objc/Make-lang.in (objc.install-html): New.
14450 * objcp/Make-lang.in (obj-c++.install-html): New.
14451 * cp/Make-lang.in (c++.install-html): New.
14452 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
14453 * lto/Make-lang.in (lto.install-html): New.
14454
14455 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
14456
14457 PR lto/42520
14458 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
14459
14460 2009-01-03 Steven Bosscher <steven@gcc.gnu.org>
14461
14462 PR rtl-optimization/41862
14463 * store-motion.c (store_killed_in_insn, compute_store_table,
14464 remove_reachable_equiv_notes, replace_store_insn,
14465 build_store_vectors): Ignore all DEBUG_INSNs.
14466
14467 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
14468
14469 PR lto/41564
14470 * common.opt: Add dumpdir.
14471
14472 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
14473 isn't specified.
14474 (option_map): Add --dumpdir.
14475
14476 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
14477
14478 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
14479
14480 * opts.c (decode_options): Try dump_dir_name first if
14481 dump_base_name isn't an absolute path.
14482 (common_handle_option): Handle OPT_dumpdir.
14483
14484 * toplev.c (dump_dir_name): New.
14485 (print_switch_values): Also ignore -dumpdir.
14486
14487 * toplev.h (dump_dir_name): New.
14488
14489 2010-01-03 Richard Guenther <rguenther@suse.de>
14490
14491 PR tree-optimization/42589
14492 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
14493 double-word expansion of bswap32.
14494
14495 2010-01-03 Steven Bosscher <steven@gcc.gnu.org>
14496
14497 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
14498 with BLOCK_FOR_INSN.
14499 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
14500 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
14501 noce_process_if_block): Likewise.
14502 * gcse.c (compute_local_properties, insert_expr_in_table,
14503 insert_set_in_table, canon_list_insert, find_avail_set,
14504 pre_insert_copy_insn): Likewise.
14505
14506 * basic-block.h (BLOCK_NUM): Move from here...
14507 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
14508
14509 2010-01-03 Richard Guenther <rguenther@suse.de>
14510
14511 PR tree-optimization/42438
14512 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
14513 contains_may_not_return_call flag.
14514 (BB_MAY_NOTRETURN): New.
14515 (valid_in_sets): Trapping nary operations are not valid
14516 in blocks that may not return.
14517 (insert_into_preds_of_block): Remove check for trapping expressions.
14518 (compute_avail): Compute also BB_MAY_NOTRETURN.
14519
14520 2010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
14521
14522 * doc/invoke.texi: Add 2010 to copyright years.
14523
14524 2010-01-03 Eric Botcazou <ebotcazou@adacore.com>
14525
14526 * config/sparc/sparc.c: Fix formatting nits.
14527
14528 2010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
14529 Alexander Monakov <amonakov@ispras.ru>
14530
14531 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
14532
14533 2010-01-02 Richard Guenther <rguenther@suse.de>
14534
14535 PR middle-end/42577
14536 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
14537 (simplify_switch_using_ranges): Mark to be removed edges
14538 as non-executable.
14539
14540 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14541
14542 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
14543
14544 * collect2.c (scan_libraries): Add missing argument in call to
14545 scan_prog_file.
14546
14547 2010-01-02 Uros Bizjak <ubizjak@gmail.com>
14548
14549 PR target/42448
14550 * config/alpha/predicates.md (aligned_memory_operand): Return false
14551 for CQImode.
14552 (unaligned_memory_operand): Return true for CQImode.
14553 * config/alpha/alpha.c (get_aligned_mem): Assert that location
14554 doesn not cross aligned SImode word boundary.
14555
14556 2010-01-02 Anatoly Sokolov <aesok@post.ru>
14557
14558 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
14559 Remove.
14560 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
14561 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
14562
14563 2010-01-02 Richard Guenther <rguenther@suse.de>
14564
14565 PR lto/41597
14566 * toplev.c (compile_file): Emit LTO marker properly. Change
14567 it to __gnu_lto_v1.
14568 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
14569
14570 2010-01-01 Richard Guenther <rguenther@suse.de>
14571
14572 PR debug/42455
14573 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
14574
14575 2010-01-01 Richard Guenther <rguenther@suse.de>
14576
14577 PR c/42570
14578 * c-decl.c (grokdeclarator): For zero-size arrays force
14579 structural equality checks as layout_type does.
14580
14581 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
14582
14583 * builtins.c: Update copyright to 2010.
14584
14585 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
14586
14587 PR lto/42531
14588 * lto-streamer-out.c (produce_asm): Revert the last change.
14589 (copy_function): Likewise.
14590
14591 * lto-streamer.c (lto_get_section_name): Skip any leading
14592 asterisk in name.
14593
14594 2010-01-01 Richard Guenther <rguenther@suse.de>
14595
14596 PR middle-end/42559
14597 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
14598 for LABEL_DECLs.
14599
14600 \f
14601 Copyright (C) 2010 Free Software Foundation, Inc.
14602
14603 Copying and distribution of this file, with or without modification,
14604 are permitted in any medium without royalty provided the copyright
14605 notice and this notice are preserved.