1 2012-01-02 Dehao Chen <dehao@google.com>
3 * ipa-inline.c (cgraph_node_opt_info): Print more concise info when
4 dumping inline decisions.
6 2011-12-17 Sriraman Tallam <tmsriram@google.com>
8 * mversn-dispatch.c (make_name): Use '.' to concatenate to suffix
10 (clone_function): Do not make clones ctors/dtors. Recompute dominance
12 (make_bb_flow): New function.
13 (get_selector_gimple_seq): New function.
14 (make_selector_function): New function.
15 (make_attribute): New function.
16 (make_ifunc_function): New function.
17 (copy_decl_attributes): New function.
18 (dispatch_using_ifunc): New function.
19 (purge_function_body): New function.
20 (function_can_make_abnormal_goto): New function.
21 (make_function_not_cloneable): New function.
22 (do_auto_clone): New function.
23 (pass_auto_clone): New gimple pass.
24 (make_specialized_call_to_clone): Fix clone names.
25 * passes.c (init_optimization_passes): Add pass_auto_clone to list.
26 * tree-pass.h (pass_auto_clone): New pass.
27 * params.def (PARAM_MAX_FUNCTION_SIZE_FOR_AUTO_CLONING): New param.
28 * target.def (mversion_function): New target hook.
29 * config/i386/i386.c (ix86_option_override_internal): Check correctness
30 of ix86_mv_arch_string.
31 (add_condition_to_bb): New function.
32 (make_empty_function): New function.
33 (make_condition_function): New function.
34 (is_loop_form_vectorizable): New function.
35 (is_loop_stmts_vectorizable): New function.
36 (any_loops_vectorizable_with_load_store): New function.
37 (mversionable_for_core2_p): New function.
38 (ix86_mversion_function): New function.
39 * config/i386/i386.opt (mvarch): New option.
40 * doc/tm.texi (TARGET_MVERSION_FUNCTION): Document.
41 * doc/tm.texi.in (TARGET_MVERSION_FUNCTION): Document.
42 * testsuite/gcc.dg/automversn_1.c: New test case.
43 * testsuite/gcc.dg/mversn2.c: Fix cloned names.
44 * testsuite/g++.dg/mversn8.C: Ditto.
45 * testsuite/g++.dg/mversn10a.C: Ditto.
46 * testsuite/g++.dg/mversn15.C: Ditto.
47 * testsuite/g++.dg/mversn10.C: Ditto.
48 * testsuite/g++.dg/mversn16.C: Ditto.
50 2011-12-17 Sriraman Tallam <tmsriram@google.com>
52 * gcc/config/i386/i386.c
53 (IX86_BUILTIN_CPU_IS_INTEL_COREI7): New enum value.
54 (IX86_BUILTIN_CPU_IS_AMDFAM10): New enum value.
55 (fold_builtin_cpu): Fold the new builtins.
56 (ix86_init_platform_type_builtins): Make new buitins
57 __builtin_cpu_is_intel_corei7 and
58 __builtin_cpu_is_amdfam10.
59 * testsuite/gcc.target/i386/builtin_target.c (fn1):
60 Call the new builtins.
62 2011-12-17 Easwaran Raman <eraman@google.com>
63 Backport r182443 from google/main.
65 2011-12-17 Easwaran Raman <eraman@google.com>
67 * common.opt (fsized-delete): New option.
69 2011-12-16 Rong Xu <xur@google.com>
70 Backport r182416 from google/main.
72 2011-12-16 Rong Xu <xur@google.com>
74 * libgcc/libgcov.c (gcov_merge_gcda_file): reset summary_pos.
76 2011-12-16 Dehao Chen <dehao@google.com>
78 * ipa-inline.c (dump_inline_decision): New function.
79 (cgraph_node_call_chain): New function.
80 (cgraph_node_opt_info): New function.
81 (cgraph_mark_inline_edge): Dump inline decisions to stderr.
83 2011-12-14 Sriraman Tallam <tmsriram@google.com>
85 Backport r182344 from google/main.
87 2011-12-14 Sriraman Tallam <tmsriram@google.com>
89 Do not vectorize loops on Core2 that need to use unaligned
91 * tree-vect-stmts.c (is_vector_load_store_slow): New function.
92 (vectorizable_load): Return false if the load
93 is unaligned and slow.
94 (vectorizable_store): Ditto.
95 * target.def (TARGET_SLOW_UNALIGNED_VECTOR_MEMOP): New target hook.
96 * doc/m.texi.in: Document new target hook:
97 TARGET_SLOW_UNALIGNED_VECTOR_MEMOP
98 * doc/m.texi: Regenerate.
99 * config/i386/i386.c (ix86_slow_unaligned_vector_memop): New function.
100 (TARGET_SLOW_UNALIGNED_VECTOR_MEMOP): New macro.
102 2011-12-12 Teresa Johnson <tejohnson@google.com>
105 2011-12-11 Diego Novillo <dnovillo@google.com>
107 Merge from gcc-4_6-branch rev 182135.
109 2011-11-30 Doug Kwan <dougkwan@google.com>
111 Backport r171347 and r181549 from trunk.
112 2011-03-23 Julian Brown <julian@codesourcery.com>
114 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
115 accesses which are not naturally aligned.
117 2011-11-20 Joey Ye <joey.ye@arm.com>
119 * expr.c (expand_expr_real_1): Correctly handle strict volatile
120 bitfield loads smaller than mode size.
122 2011-11-23 Teresa Johnson <tejohnson@google.com>
124 Backport r181671 from google/main.
126 2011-11-18 Diego Novillo <dnovillo@google.com>
128 Rollback revisiong 179815 from gcc-4_6-branch.
130 2011-11-16 Rong Xu <xur@google.com>
132 Backport r181432 from google/main.
134 2011-11-10 DeLesley Hutchins <delesley@google.com>
136 * tree-threadsafe-analyze.c:
137 factors out code to get function decl.
138 (get_fdecl_from_gimple_stmt): new factored-out function
139 (handle_call_gs): original definition of code
140 (get_lock_returned_by_call): call new function
141 (get_trylock_info): call new function
142 (handle_unlock_primitive_attr): use passed fdecl
144 2011-11-10 DeLesley Hutchins <delesley@google.com>
146 * tree-threadsafe-analyze.c (get_canonical_lock_expr):
147 Add support for pointer arithmetic operations
149 2011-11-04 Rong Xu <xur@google.com>
151 Backport r181129 from google/main.
153 2011-11-06 Teresa Johnson <tejohnson@google.com>
155 Backport r180925 from google/main.
157 2011-11-06 Teresa Johnson <tejohnson@google.com>
159 Backport r180783 from trunk.
161 2011-11-04 DeLesley Hutchins <delesley@google.com>
162 * tree-threadsafe-analyze.c:
163 Ignores invalid attributes, issues a warning, recovers gracefully.
165 Adds new thread safety warning.
167 2011-11-04 Rong Xu <xur@google.com>
169 Backport r180971 from google/main.
171 2011-11-04 Rong Xu <xur@google.com>
173 Backport r180973 from google/main.
175 2011-11-04 Rong Xu <xur@google.com>
177 Backport r180269 from google/main.
179 2011-11-02 Diego Novillo <dnovillo@google.com>
181 Merge from gcc-4_6-branch rev 180729.
183 2011-10-25 Xinliang David Li <davidxl@google.com>
185 * profile.c (compute_branch_probablies): recompute
186 function frequency summary after profile annotation.
188 2011-10-24 Diego Novillo <dnovillo@google.com>
190 Merge from gcc-4_6-branch rev 180298.
192 2011-10-21 Diego Novillo <dnovillo@google.com>
194 Merge from gcc-4_6-branch rev 179421.
196 2011-10-17 Dehao Chen <dehao@google.com>
198 Add a flag (-frecord-gcc-switches-in-elf) to record compiler
199 command line options to .gnu.switches.text sections of
201 * coverage.c (write_opts_to_asm): Write the options to
202 .gnu.switches.text sections.
206 2011-10-14 DeLesley Hutchins <delesley@google.com>
208 * tree-threadsafe-analyze.c (get_canonical_lock_expr):
209 Bugfix: add lock to hash set, even if it refers to a base class
211 2011-10-14 DeLesley Hutchins <delesley@google.com>
213 * tree-threadsafe-analyze.c (remove_lock_from_lockset):
214 Bugfix: shared lock now removed properly when the universal lock
215 is in the exclusive lock set.
217 2011-09-30 Sharad Singhai <singhai@google.com>
219 * gcc.c (cc1_options): Add -fno-early-inlining for improved coverage.
221 2011-09-30 Easwaran Raman <eraman@google.com>
223 * tree-profile.c (gcov_sample_counter_decl): Add GTY marker.
224 (gcov_sampling_rate_decl): Likewise.
225 (add_sampling_to_edge_counters): Do not free
226 instrumentation_to_be_sampled.
227 (cleanup_instrumentation_sampling): New function.
228 (tree_profiling): Call cleanup_instrumentation_sampling at the end.
230 2011-09-30 DeLesley Hutchins <delesley@google.com>
232 * tree-threadsafe-analyze.c (process_function_attrs):
233 Detect clones and suppress warnings.
235 2011-09-27 Sriraman Tallam <tmsriram@google.com>
237 * output.h (SECTION_EXCLUDE): New flag for exclude sections.
238 * varasm.c (default_elf_asm_named_section): Add "e" to section flags
239 marked as SECTION_EXCLUDE.
240 * final.c (rest_of_handle_final): Exclude .gnu.callgraph sections.
242 2011-09-22 Sriraman Tallam <tmsriram@google.com>
244 * cgraphbuild.c (remove_cgraph_callee_edges): Preserve callee edges if
245 callgraph profiles are needed.
246 * final.c (rest_of_handle_final): Rename .note.callgraph sections as
247 .gnu.callgraph sections.
248 * tree-optimize.c (gate_all_optimizations): Set
249 cgraph_callee_edges_final_cleanup to true.
250 (cgraph_callee_edges_final_cleanup): New global variable.
251 * params.def (PARAM_NOTE_CGRAPH_SECTION_EDGE_THRESHOLD): Fix comment.
253 2011-09-22 Guozhi Wei <carrot@google.com>
255 Backport r178995 from trunk.
257 2011-09-20 Wei Guozhi <carrot@google.com>
259 PR rtl-optimization/49452
260 * postreload.c (reload_combine): Invalidate use information when
261 across volatile insn.
263 2011-09-21 Diego Novillo <dnovillo@google.com>
265 Merge from gcc-4_6-branch rev 179031.
267 2011-09-15 Easwaran Raman <eraman@google.com>
269 Backport r178898 from google/main.
271 2011-09-15 Easwaran Raman <eraman@google.com>
273 * Makefile.in (PLUGIN_HEADERS): Add l-ipo.h.
275 2011-09-15 Easwaran Raman <eraman@google.com>
277 Backport r176741 from trunk.
279 2011-07-22 Romain Geissler <romain.geissler@gmail.com>
284 * Makefile.in: Do not flatten c-family directory when installing
287 2011-09-15 Diego Novillo <dnovillo@google.com>
289 Merge from gcc-4_6-branch rev 178854.
291 2011-9-13 DeLesley Hutchins <delesley@google.com>
293 * tree-threadsafe-analyze.c (get_canonical_lock_expr):
294 don't remove & on recursive call
296 2011-09-01 Sriraman Tallam <tmsriram@google.com>
298 * config/i386/i386.c (build_struct_with_one_bit_fields): New function.
299 (make_var_decl): New function.
300 (get_field_from_struct): New function.
301 (fold_builtin_target): New function.
302 (ix86_fold_builtin): New function.
303 (ix86_expand_builtin): Expand new builtins by folding them.
304 (TARGET_FOLD_BUILTIN): New macro.
305 (IX86_BUILTIN_CPU_SUPPORTS_CMOV): New enum value.
306 (IX86_BUILTIN_CPU_SUPPORTS_MMX): New enum value.
307 (IX86_BUILTIN_CPU_SUPPORTS_POPCOUNT): New enum value.
308 (IX86_BUILTIN_CPU_SUPPORTS_SSE): New enum value.
309 (IX86_BUILTIN_CPU_SUPPORTS_SSE2): New enum value.
310 (IX86_BUILTIN_CPU_SUPPORTS_SSE3): New enum value.
311 (IX86_BUILTIN_CPU_SUPPORTS_SSSE3): New enum value.
312 (IX86_BUILTIN_CPU_SUPPORTS_SSE4_1): New enum value.
313 (IX86_BUILTIN_CPU_SUPPORTS_SSE4_2): New enum value.
314 (IX86_BUILTIN_CPU_INIT): New enum value.
315 (IX86_BUILTIN_CPU_IS_AMD): New enum value.
316 (IX86_BUILTIN_CPU_IS_INTEL): New enum value.
317 (IX86_BUILTIN_CPU_IS_INTEL_ATOM): New enum value.
318 (IX86_BUILTIN_CPU_IS_INTEL_CORE2): New enum value.
319 (IX86_BUILTIN_CPU_IS_INTEL_COREI7_NEHALEM): New enum value.
320 (IX86_BUILTIN_CPU_IS_INTEL_COREI7_WESTMERE): New enum value.
321 (IX86_BUILTIN_CPU_IS_INTEL_COREI7_SANDYBRIDGE): New enum value.
322 (IX86_BUILTIN_CPU_IS_AMDFAM10_BARCELONA): New enum value.
323 (IX86_BUILTIN_CPU_IS_AMDFAM10_SHANGHAI): New enum value.
324 (IX86_BUILTIN_CPU_IS_AMDFAM10_ISTANBUL): New enum value.
325 * config/i386/libgcc-glibc.ver (__cpu_indicator_init): Export symbol.
326 (__cpu_model): Export symbol.
327 (__cpu_features): Export symbol.
328 * config/i386/i386-builtin-types.def: New function type.
330 2011-08-24 Mark Heffernan <meheff@google.com>
332 * params.def (hot-bb-count-fraction): Change default value.
334 2011-08-24 David Li <davidxl@google.com>
336 * profile.c (compute_branch_probabilities): Partially revert
337 change in r176997 which led to perf regression of important
340 2011-08-23 Mark Heffernan <meheff@google.com>
342 * basic-block.h (maybe_hot_frequency_p): Add prototype.
343 * cgraph.c (dump_cgraph_node): Add field to dump.
344 (cgraph_clone_node) Handle new field.
345 * cgraph.h (cgraph_node): New field max_bb_count.
346 * cgraphbuild.c (rebuild_cgraph_edges): Compute max_bb_count.
347 * cgraphunit.c (cgraph_copy_node_for_versioning) Handle new field.
348 * common.opt (finline-hot-caller): New option.
349 * ipa-inline.c (cgraph_mark_inline_edge) Update max_bb_count.
350 (edge_hot_enough_p) New function.
351 (cgraph_decide_inlining_of_small_functions) Call edge_hot_enough_p.
352 * predict.c (maybe_hot_frequency_p): Remove static keyword and
353 guard with profile_info check.
354 * testsuite/gcc.dg/tree-prof/inliner-1.c: Add flag.
355 * testsuite/gcc.dg/tree-prof/lipo/inliner-1_0.c: Add flag.
357 2011-08-16 Guozhi Wei <carrot@google.com>
359 Backport r174965 from trunk.
361 2011-06-12 Ira Rosen <ira.rosen@linaro.org>
363 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
364 Take number of iterations to peel into account for equally frequent
367 2011-08-11 David Li <davidxl@google.com>
369 * l-ipo.c (process_module_scope_static_func): Promote
370 aliases of static symbol in LIPO mode.
372 2011-08-02 David Li <davidxl@google.com>
374 Port 53689-p2 and 53705-p2 to v15
375 * libgcov.c (__gcov_merge_dc): Relax over assertion in
378 2011-07-31 David Li <davidxl@google.com>
380 * tree-optimize.c (execute_fixup_cfg): Fix up entry outgoing
382 * profile.c (compute_branch_probabilities): Compute function
383 frequency after profile annotation.
385 2011-07-28 David Li <davidxl@google.com>
387 * coverage.c (coverage_init): Remove checking of profile-use
390 2011-07-25 Rong Xu <xur@google.com>
391 Merge from google/main cherry pick r176592.
392 2011-07-21 Rong Xu <xur@google.com>
393 * ipa.c (function_and_variable_visibility): In LIPO mode, call
394 varpool_externally_visible_p() to set the externally visible
395 attribute even for varpool nodes that not marked as needed.
396 * l-ipo.c (varpool_do_link): Merge the externally visible
397 attribute for varpool nodes.
399 2011-07-24 Easwaran Raman <eraman@google.com>
400 Backport r175063 from trunk:
401 2011-06-14 Easwaran Raman <eraman@google.com>
402 PR rtl-optimization/44194
403 * dse.c: Include tree-flow.h
404 (insn_info): Add new field non_frame_wild_read.
405 (group_info): Add new fields escaped_n and escaped_p.
406 (kill_on_calls): New variable.
407 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
408 (dse_step0): Initialize kill_on_calls.
409 (can_escape): New function.
410 (set_usage_bits): Add additional parameter; record information
411 about escaped locations.
412 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
413 (dse_step2_nospill): Set kill_on_calls based on
414 group->escaped_n and group->escaped_n.
415 (add_wild_read): Refactor into...
416 (reset_active_stores): ... New function, and
417 (free_read_records): ... New function.
418 (add_non_frame_wild_read): New function.
419 (scan_insn): Call add_non_frame_wild_read on non-const calls.
420 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
421 (dse_step5_nospill): Call scan_reads_nospill for instructions
422 marked as non_frame_wild_read.
423 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
424 Backport r175384 from trunk:
425 2011-06-24 Easwaran Raman <eraman@google.com>
426 PR rtl-optimization/49429
428 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
429 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
430 used to copy y into x.
431 * calls.c (initialize_argument_information): Mark
432 an argument addressable if it is passed by invisible reference.
433 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
434 if it is passed by reference.
436 2011-07-19 Diego Novillo <dnovillo@google.com>
438 Merge from gcc-4_6-branch rev 176416.
440 2011-07-05 Diego Novillo <dnovillo@google.com>
442 Merge from gcc-4_6-branch rev 175849.
444 2011-07-05 Diego Novillo <dnovillo@google.com>
446 Merge from google/main rev 175816.
448 2011-06-29 Diego Novillo <dnovillo@google.com>
450 Backport from gcc-4_6-branch
452 2011-06-29 Martin Jambor <mjambor@suse.cz>
453 Backport from mainline
454 2011-06-24 Martin Jambor <mjambor@suse.cz>
456 PR tree-optimizations/49516
457 * tree-sra.c (sra_modify_assign): Choose the safe path for
458 aggregate copies if we also did scalar replacements.
460 2011-06-28 Diego Novillo <dnovillo@google.com>
462 Merge from gcc-4_6-branch rev 175583.
464 2011-06-27 Diego Novillo <dnovillo@google.com>
466 Merge from google/main rev 175526.
468 2011-06-27 Diego Novillo <dnovillo@google.com>
472 * tree-cfg.c (gate_warn_function_return): New.
473 (pass_warn_function_return): Use it.
475 2011-06-14 Diego Novillo <dnovillo@google.com>
477 Merge from gcc-4_6-branch rev 175007.
479 2011-06-13 Diego Novillo <dnovillo@google.com>
481 Merge from google/main rev 174986.
483 2011-06-09 Chris Demetriou <cgd@google.com>
485 Backport from google/main r174890:
486 2011-06-09 Chris Demetriou <cgd@google.com>
487 * doc/install.texi (--with-warn-frame-larger-than-extra-text): New.
488 * configure.ac (--with-warn-frame-larger-than-extra-text): New.
489 (WARN_FRAME_LARGER_THAN_EXTRA_TEXT): Define.
490 * final.c (final_start_function): Use
491 WARN_FRAME_LARGER_THAN_EXTRA_TEXT.
492 * configure: Regenerate.
493 * config.in: Regenerate.
495 2011-06-07 Mark Heffernan <meheff@google.com>
497 Merge from google/main cherry pick rev 174789.
499 2011-06-07 Diego Novillo <dnovillo@google.com>
501 Merge from google/main rev 174706.
503 2011-06-01 Diego Novillo <dnovillo@google.com>
505 Merge from gcc-4_6-branch rev 174522.
507 2011-06-01 Diego Novillo <dnovillo@google.com>
509 Merge from google/main rev 174482.
511 2011-05-25 Diego Novillo <dnovillo@google.com>
513 Merge from gcc-4_6-branch rev 174114.
515 2011-05-24 Diego Novillo <dnovillo@google.com>
517 Merge from google/main rev 174086.
519 2011-05-11 Xinliang David Li <davidxl@google.com>
521 Merge from google/main rev 173636.
523 2011-05-10 Diego Novillo <dnovillo@google.com>
525 Merge from gcc-4_6-branch rev 173632.
527 2011-05-10 Diego Novillo <dnovillo@google.com>
529 Merge from google/main rev 173605.
531 2011-05-03 Diego Novillo <dnovillo@google.com>
533 Merge from gcc-4_6-branch rev 173305.
535 2011-05-03 Diego Novillo <dnovillo@google.com>
537 Merge from google/main rev 173286 (minus rev 173258).
539 2011-05-02 Diego Novillo <dnovillo@google.com>
543 * BASE-VER: Change to 4.6.x-google.
545 2011-04-18 Diego Novillo <dnovillo@google.com>
547 Merge from gcc-4_6-branch rev 172633.
549 2011-04-17 Diego Novillo <dnovillo@google.com>
551 Merge from google/main rev 172617.
553 2011-04-15 Diego Novillo <dnovillo@google.com>
555 Merge from gcc-4_6-branch rev 172209.
557 2011-03-31 Diego Novillo <dnovillo@google.com>
559 Merge from google/main rev 171756.
561 2011-03-29 Diego Novillo <dnovillo@google.com>
563 Merge from gcc-4_6-branch rev 171512 (4.6.0 release tag).
565 2011-03-18 Diego Novillo <dnovillo@google.com>
567 Merge from google/main rev 171163.
569 2011-03-15 Diego Novillo <dnovillo@google.com>
571 * BASE-VER: Change to 4.6.0-google
572 * DEV-PHASE: Change to prerelease.
574 Copyright (C) 2011 Free Software Foundation, Inc.
576 Copying and distribution of this file, with or without modification,
577 are permitted in any medium without royalty provided the copyright
578 notice and this notice are preserved.