PR ipa/59831 * g++.dg/ipa/devirt-24.C: New testcase. * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on -fno-devirtualize; Try to devirtualize by the knowledge of virtual table pointer given by aggregate propagation. * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise. ipa_print_node_jump_functions): Dump also offset that is relevant for polymorphic calls. (determine_known_aggregate_parts): Add arg_type parameter; use it instead of determining the type from pointer type. (ipa_compute_jump_functions_for_edge): Update call of determine_known_aggregate_parts. * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ... (gimple_get_virt_method_for_binfo): ... here; simplify using vtable_pointer_value_to_vtable. * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare. * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter to unsigned HOST_WIDE_INT; Use vtable_pointer_value_to_vtable. (vtable_pointer_value_to_vtable): Break out from ...; handle also POINTER_PLUS_EXPR. (vtable_pointer_value_to_binfo): ... here. * ipa-utils.h (vtable_pointer_value_to_vtable): Declare. From-SVN: r207439
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| ada | Loading commit data... | |
| c-c++-common | Loading commit data... | |
| config | Loading commit data... | |
| g++.dg | Loading commit data... | |
| g++.old-deja | Loading commit data... | |
| gcc.c-torture | Loading commit data... | |
| gcc.dg | Loading commit data... | |
| gcc.misc-tests | Loading commit data... | |
| gcc.target | Loading commit data... | |
| gcc.test-framework | Loading commit data... | |
| gfortran.dg | Loading commit data... | |
| gfortran.fortran-torture | Loading commit data... | |
| gnat.dg | Loading commit data... | |
| go.dg | Loading commit data... | |
| go.go-torture/execute | Loading commit data... | |
| go.test | Loading commit data... | |
| lib | Loading commit data... | |
| obj-c++.dg | Loading commit data... | |
| objc | Loading commit data... | |
| objc-obj-c++-shared | Loading commit data... | |
| objc.dg | Loading commit data... | |
| ChangeLog | Loading commit data... | |
| ChangeLog-1993-2007 | Loading commit data... | |
| ChangeLog-2008 | Loading commit data... | |
| ChangeLog-2009 | Loading commit data... | |
| ChangeLog-2010 | Loading commit data... | |
| ChangeLog-2011 | Loading commit data... | |
| ChangeLog-2012 | Loading commit data... | |
| ChangeLog-2013 | Loading commit data... | |
| ChangeLog.graphite | Loading commit data... | |
| ChangeLog.ptr | Loading commit data... | |
| ChangeLog.tree-ssa | Loading commit data... | |
| README | Loading commit data... | |
| README.compat | Loading commit data... | |
| README.gcc | Loading commit data... |