Re: PR ipa/59831 (ipa-cp devirt issues)

2014-02-05 Thread Martin Jambor
Hi, On Wed, Feb 05, 2014 at 12:47:30AM +0100, Jan Hubicka wrote: - if (TREE_CODE (t) != TREE_BINFO) + /* Try to work out BINFO from virtual table pointer value in replacements. */ + if (!t agg_reps !ie-indirect_info-by_ref) At this point you know that

Re: [RFC] PR 59776 - esra vs gimple_debug

2014-02-08 Thread Martin Jambor
Hi, On Fri, Feb 07, 2014 at 04:37:22PM -0800, Richard Henderson wrote: On 02/07/2014 03:12 PM, Richard Biener wrote: On February 7, 2014 8:35:16 PM GMT+01:00, Richard Henderson r...@redhat.com wrote: In the testcases with the PR, we have a bit of type punning going on, *(int *) s2.f

Re: [patch] Fix wrong code with VCE to bit-field type at -O

2014-02-12 Thread Martin Jambor
Hi, On Tue, Feb 11, 2014 at 02:17:04PM +0100, Richard Biener wrote: Hmm. The intent was of course to only allow truly no-op converts via VIEW_CONVERT_EXPR - that is, the size of the operand type and the result type should be the same. So, isn't SRA doing it wrong when creating the

Re: Fix three issues in ipa-prop

2014-02-17 Thread Martin Jambor
Hi, On Mon, Feb 17, 2014 at 09:40:40AM +0100, Jan Hubicka wrote: Hi, Chromium LTO build ICEs on bogus get_binfo_at_offset call. This is caused by updating pasto bug in update_jump_functions_after_inlining. While looking for it I noticed we have other issues here. In particular, when

[PATCH, PR 60266] Fix problem with mixing -O0 and -O2 in propagate_constants_accross_call

2014-02-21 Thread Martin Jambor
it by bailing out early if there are no parameter descriptors because in that case there is nothing to do in that function anyway. Bootstrap and testing in progress, OK for trunk if it passes? Thanks, Martin 2014-02-21 Martin Jambor mjam...@suse.cz PR ipa/60266 * ipa-cp.c

Re: C++ PATCH for lto/53808 (devirtualization of defaulted virtual dtor)

2014-02-27 Thread Martin Jambor
On Thu, Feb 27, 2014 at 04:00:22PM +0100, Richard Biener wrote: On Thu, Feb 27, 2014 at 3:51 PM, Jason Merrill ja...@redhat.com wrote: On 02/27/2014 09:03 AM, Richard Biener wrote: Jason Merrill ja...@redhat.com writes: Hmm, I wonder why we aren't devirtualizing that call on ia64. I

[PATCH, PR 60461] Fix loop condition at the end of ipa_modify_call_arguments

2014-03-13 Thread Martin Jambor
the bug so for th time being I'm leaving the code alone there. I have bootstrapped and tested the following patch on x86_64-linux on trunk and will commit it there shortly as obvious. Thanks, Martin 2014-03-13 Martin Jambor mjam...@suse.cz PR lto/60461 * ipa-prop.c

Re: [PATCH, PR 60461] Fix loop condition at the end of ipa_modify_call_arguments

2014-03-13 Thread Martin Jambor
On Thu, Mar 13, 2014 at 05:19:02PM +0100, Jakub Jelinek wrote: On Thu, Mar 13, 2014 at 04:56:12PM +0100, Martin Jambor wrote: PR lto/60461 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition. testsuite/ * gcc.dg/lto/pr60461_0.c: New test. diff --git a/gcc

[PATCH, PR 59176] Mark zombie call graph nodes to remove verifier false positive

2014-03-20 Thread Martin Jambor
added a new special value, error_mark_node, to mark this zombie state and taught the verifier to be happy with such nodes. Bootstrapped and tested on x86_64-linux. What do you think? Thanks, Martin 2014-03-19 Martin Jambor mjam...@suse.cz PR ipa/59176 * ipa.c

[PATCH, PR 60419] Clear thunk flag of zombie nodes

2014-03-20 Thread Martin Jambor
the patch (without LTO, partly on purpose, partly because again I'm having issues with LTO after updating FF). OK for trunk? There is the same issue on the 4.8 branch, but the patch does not apply, I'm in the process of preparing it. Thanks, Martin 2014-03-20 Martin Jambor mjam...@suse.cz

Re: [PATCH, PR 59176] Mark zombie call graph nodes to remove verifier false positive

2014-03-20 Thread Martin Jambor
Hi, On Thu, Mar 20, 2014 at 07:40:56PM +0100, Jakub Jelinek wrote: On Thu, Mar 20, 2014 at 05:07:32PM +0100, Martin Jambor wrote: in the PR, verifier claims an edge is pointing to a wrong declaration even though it has successfully verified the edge multiple times before. The reason

Re: [PATCH, PR 60419] Clear thunk flag of zombie nodes

2014-03-21 Thread Martin Jambor
Hi, On Fri, Mar 21, 2014 at 09:41:24AM +0100, Richard Biener wrote: On Thu, 20 Mar 2014, Martin Jambor wrote: Hi, in PR 60419 we end up with a call graph node for a thunk that has no callee because symtab_remove_unreachable_nodes has determined its body is not needed although its

Re: [PATCH, PR 59176] Mark zombie call graph nodes to remove verifier false positive

2014-03-24 Thread Martin Jambor
Hi, On Fri, Mar 21, 2014 at 09:40:39PM +0100, Jan Hubicka wrote: On Thu, 20 Mar 2014, Martin Jambor wrote: Hi, On Thu, Mar 20, 2014 at 07:40:56PM +0100, Jakub Jelinek wrote: On Thu, Mar 20, 2014 at 05:07:32PM +0100, Martin Jambor wrote: in the PR, verifier claims an edge

[PATCH, PR 60600] Handle inconsistent devirtualizations gracefully

2014-03-25 Thread Martin Jambor
by Honza in bugzilla and thus I will commit it shortly. Thanks, Martin 2014-03-25 Martin Jambor mjam...@suse.cz PR ipa/60600 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type inconsistent devirtualizations to __builtin_unreachable. testsuite/ * g++.dg

Re: Add polymorphic call context propagation to ipa-prop

2014-10-21 Thread Martin Jambor
Hi, On Thu, Oct 02, 2014 at 09:00:12AM +0200, Jan Hubicka wrote: Hi, this patch makes ipa-prop to use ipa-polymorphic-call-context infrastructure for forward propagation (in a very minimal and simple way). At the moment only static type info is propagated and it is used only

[hsa] Simple cleanup of different offsets in hsa-gen.h

2014-10-24 Thread Martin Jambor
Hi, this is a very simple cleanup, renaming two fields of different classes called offset to a more descriptive name and removal of one which is no longer used. Committed to the branch. Thanks, Martin 2014-10-24 Martin Jambor mjam...@suse.cz * hsa.h (hsa_symbol): Renamed offset

[hsa] Better workaround in locating the file with HSAIL

2014-10-24 Thread Martin Jambor
. Committed to the branch. Thanks, Martin 2014-10-24 Ganesh Gopalasubramanian ganesh.gopalasubraman...@amd.com Martin Jambor mjam...@suse.cz gcc/ * README.hsa: Removed the part about extracting the HSA ELF sections. * hsa-gen.c (wrap_hsa): Deduce the file name

Re: SRA: don't drop clobbers

2014-11-03 Thread Martin Jambor
Hi, On Mon, Nov 03, 2014 at 01:59:24PM +0100, Marc Glisse wrote: Hello, now that the update_address_taken patch is in, let me re-post the SRA follow-up. With this patch, testcase pr60517.C (attached) has a use of an undefined variable at the time of the uninit pass. Sadly, while this

Re: SRA: don't drop clobbers

2014-11-03 Thread Martin Jambor
Hi, On Mon, Nov 03, 2014 at 05:17:22PM +0100, Marc Glisse wrote: On Mon, 3 Nov 2014, Martin Jambor wrote: On Mon, Nov 03, 2014 at 01:59:24PM +0100, Marc Glisse wrote: now that the update_address_taken patch is in, let me re-post the SRA follow-up. With this patch, testcase pr60517.C

[PATCH] Fix dump scan in test devirt-40.C

2014-11-04 Thread Martin Jambor
, Martin gcc/testsuite/ 2014-11-04 Martin Jambor mjam...@suse.cz * devirt-40.C: Changed dump to not matching OBJ_TYPE_REF in function body. Index: src/gcc/testsuite/g++.dg/ipa/devirt-40.C === --- src.orig/gcc

Re: [PATCH] Fix dump scan in test devirt-40.C

2014-11-04 Thread Martin Jambor
On Tue, Nov 04, 2014 at 04:47:18PM +0100, Richard Biener wrote: On Tue, Nov 4, 2014 at 4:37 PM, Martin Jambor mjam...@suse.cz wrote: Hi, since revision 216728, testsuite/g++.dg/ipa/devirt-40.C is failing because although the tested-for devirtualization does happen, it is probably being

Re: [debug-early] emit locals early patchset

2014-11-05 Thread Martin Jambor
On Tue, Oct 28, 2014 at 03:57:43PM +0100, Richard Biener wrote: On Tue, Oct 28, 2014 at 1:00 AM, Aldy Hernandez al...@redhat.com wrote: Gentlemen! My apologies for the big patch. In getting locals emitted early (parameters and locally scoped variables), I ran into many things which were

[PATCH, testsuite, obvious] Do not produce optimized dump in devirt-4[45].C

2014-11-06 Thread Martin Jambor
Hi, g++.dg/ipa/devirt-44.C and g++.dg/ipa/devirt-45.C leave behind an optimized dump which they don't even use. Fixed thusly, tested by runing make -k check RUNTESTFLAGS=dg.exp=ipa/*.C, will commit shortly as obvious. Thanks, Martin 2014-11-06 Martin Jambor mjam...@suse.cz * g

[PATCH] Reset contexts in possible_polymorphic_call_targets properly

2014-11-08 Thread Martin Jambor
) instead, which I believe is the proper way of doing it. However, I had to make that method public to do so. Bootstrapped and tested on x86_64-linux. OK for trunk? Thanks, Martin 2014-11-08 Martin Jambor mjam...@suse.cz * cgraph.h (clear_outer_type): Make public. Fix comment

[PATCH 1/2, PR 61654] Handle newly truly expanded artificial_thunks

2014-09-03 Thread Martin Jambor
. Bootstrapped and tested on x86_64-linux and i686-linux (where the bug triggered), OK for trunk and the 4.9 branch? Thanks, Martin 2014-09-01 Martin Jambor mjam...@suse.cz PR ipa/61654 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the new decl properly

[PATCH 2/2] Set analyzed flag of unexpanded thunks in expand_thunk

2014-09-03 Thread Martin Jambor
it would be much nicer to set the analyzed flag in expand_thunk itself when it returns false, especially given that we probably want to set the flag at as few places as reasonably possible. Bootstrapped and tested on x86_64-linux. OK for trunk? Thanks, Martin 2014-09-01 Martin Jambor mjam

[PATCH, PR 61986] Produce aggregate replacement nodes in ascending order of offsets

2014-09-03 Thread Martin Jambor
. This makes us miss an item in the intersection and assert later. The ordering is fixed by the following patch. Bootstrapped and tested on x86_64-linux. OK for the trunk and all problematic branches (4.9 for sure, I am not sure about 4.8 at this moment). Thanks, Martin 2014-09-02 Martin Jambor mjam

[PATCH, PR 62015] Clear aggregate values intersection when jump function flag require us to punt

2014-09-03 Thread Martin Jambor
-linux (so far only on trunk, testing on branches in progress). OK for trunk and all the problematic branches (IIRC both 4.9 and 4.8)? Thanks, Martin 2014-09-02 Martin Jambor mjam...@suse.cz PR ipa/62015 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible

Re: [PATCH, 4.9, PR 61654] Handle newly truly expanded artificial_thunks

2014-09-10 Thread Martin Jambor
On Wed, Sep 03, 2014 at 10:45:34AM +0200, Martin Jambor wrote: Hi, I did not think it was possible, but it can happen that when duplicate_thunk_for_node creates a duplicate of a thunk which previously expand_thunk left alone to be expanded into assembly by the back end, the newly created

[PATCH] Fix overactive reference removal with speculative devirtualization

2014-09-23 Thread Martin Jambor
. Bootstrapped and tested on x86_64-linux, I have also successfully LTO-built Firefox with the patch (when before it was failing). Thanks, Martin 2014-09-19 Martin Jambor mjam...@suse.cz * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count when duplicating

[PATCH, PR 55590] Avoid more pessimistic alignments in SRA

2012-12-04 Thread Martin Jambor
on x86_64-linux and powerpc64-linux, the same is currently in progress on sparc64-linux. OK for trunk if it passes there as well? Thanks, Martin 2012-12-04 Martin Jambor mjam...@suse.cz PR tree-optimization/55590 * tree-sra.c (build_ref_for_offset): Use get_object_alignment

[PATCH, PR 55078] Let indirect inlining look at ipa-cp lattices

2012-12-06 Thread Martin Jambor
inlining slightly more powerful, the change is not big and so I hope it qualifies even though we are in stage 3 now. The patch has passed bootstrap and testing on x86_64-linux. OK for trunk? Thanks, Martin 2012-12-05 Martin Jambor mjam...@suse.cz PR middle-end/55078 * ipa

Re: [PATCH, PR 55590] Avoid more pessimistic alignments in SRA

2012-12-06 Thread Martin Jambor
only rarely. Below is a patch that uses get_object_alignment_1, it has passed bootstrap and testing on x86_64-linux, and powerpc64-linux, the same on sparc64-linux is underway. OK for trunk if it passes there too? Thanks, Martin 2012-12-06 Martin Jambor mjam...@suse.cz PR tree

Re: [cxx-conversion] Convert tree-sra.c'candidates to hash_table

2012-12-13 Thread Martin Jambor
Hi, On Thu, Dec 13, 2012 at 11:05:49AM -0800, Lawrence Crowl wrote: On 12/12/12, Jakub Jelinek ja...@redhat.com wrote: On Tue, Dec 11, 2012 at 02:44:41PM -0800, Lawrence Crowl wrote: +/* Hash a tree in a uid_decl_map. */ + +inline hashval_t +uid_decl_hasher::hash (const value_type

[PATCH, PR 55755] Make SRA create less VIEW_CONVERT_EXPRs

2013-01-03 Thread Martin Jambor
on x86_64-linux on trunk and the 4.7 and 4.6 branches. I'd like to commit it to all of them, perhaps after having it on trunk only for a while. Thanks, Martin 2013-01-02 Martin Jambor mjam...@suse.cz PR tree-optimization/55755 * tree-sra.c (sra_modify_assign): Do not check

[PATCH, PR 55579] Make SRA keep candidated with only debug replacements

2013-01-04 Thread Martin Jambor
a patch that simply avoids disqualifying candidates with no replacements which means we keep some information about it so that SRA can remove a few more un-needed reads but I suppose that is stage1 material. OK for trunk? Thanks, Martin 2013-01-03 Martin Jambor mjam...@suse.cz PR

Re: PR tree-optimization/55823 (ipa-inline-transform ICE)

2013-01-08 Thread Martin Jambor
Hi, On Mon, Jan 07, 2013 at 01:26:23AM +0100, Jan Hubicka wrote: Hi, as discused in the PR log there seems to be ordering issue in update_indirect_edges_after_inlining that first updates info in call edge to correspond the situation after inlining and then it tries to devirtualize that is

Re: PR tree-optimization/55823 (ipa-inline-transform ICE)

2013-01-09 Thread Martin Jambor
Hi, On Tue, Jan 08, 2013 at 02:32:24PM +0100, Richard Biener wrote: On Tue, Jan 8, 2013 at 2:29 PM, Martin Jambor mjam...@suse.cz wrote: Hi, On Mon, Jan 07, 2013 at 01:26:23AM +0100, Jan Hubicka wrote: Hi, as discused in the PR log there seems to be ordering issue

[PATCH] No SRA debug replacements for variables that cannot be removed

2013-01-15 Thread Martin Jambor
-11 Martin Jambor mjam...@suse.cz PR tree-optimization/55920 * tree-sra.c (analyze_access_subtree): Do not mark non-removable accesses as grp_to_be_debug_replaced. Index: src/gcc/tree-sra.c === --- src.orig

[PATCH, PR 55264] Do not remove as unreachable any virtual methods before inlining

2013-01-16 Thread Martin Jambor
for trunk? Thanks, Martin 2013-01-15 Martin Jambor mjam...@suse.cz PR tree-optimizations/55264 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true for virtual methods. * ipa.c (symtab_remove_unreachable_nodes): Never return true

Re: [PATCH, PR 55264] Do not remove as unreachable any virtual methods before inlining

2013-01-16 Thread Martin Jambor
translates into cleared local flag) and the cloning machinery to clear that flag. Bootstrapped and tested on x86_64-linux without any problems. OK for trunk? Thanks, Martin 2013-01-16 Martin Jambor mjam...@suse.cz PR tree-optimizations/55264 * ipa-inline-transform.c

Re: [PATCH, PR 55264] Do not remove as unreachable any virtual methods before inlining

2013-01-18 Thread Martin Jambor
, thanks! Honza Great, thanks. I will therefore also commit the following equivalent to the 4.7 branch on Monday unless someone objects. It passes bootstrap and testsuite without any issues. Thanks, Martin 2013-01-17 Martin Jambor mjam...@suse.cz PR tree-optimizations/55264

Re: [PATCH, PR 55264] Do not remove as unreachable any virtual methods before inlining

2013-01-18 Thread Martin Jambor
2013-01-17 Martin Jambor mjam...@suse.cz PR tree-optimizations/55264 * cgraph.c (cgraph_create_virtual_clone): Mark clones as non-virtual. * cgraph.h (cgraph_only_called_directly_p): Return false for virtual functions. * ipa-inline.c

[PATCH, PR 56022] Correct order of calls to invoke_set_current_function_hook and aggregate_value_p

2013-01-21 Thread Martin Jambor
is a bit ugly but I thought I'd keep the assignment to cfun-decl and DECL_STRUCT_FUNCTION (fndecl) together for the sake of consistency. Bootstrapped and tested on x86_64-linux without any issues. OK for trunk? Thanks, Martin 2013-01-21 Martin Jambor mjam...@suse.cz PR middle-end/56022

[PATCH, PR55927] Disable early inlining in g++.dg/ipa/devirt-10.C

2013-01-24 Thread Martin Jambor
disabled altogether. I checked the patch works by running make -k check RUNTESTFLAGS=dg.exp=devirt*.C and making sure there were no failures. Will commit it later today/early tomorrow as obvious unless someone objects really soon. Thanks, Martin 2013-01-24 Martin Jambor mjam...@suse.cz

[c++, PR 47714] Reset the addressable flag of thunk PARM_DECLs

2011-03-09 Thread Martin Jambor
can potentially postpone the release so my plan is to take the liberty and commit it if no-one stops me in the next few hours. Needless to say, the patch has been successfully bootstrapped and tested on x86_64-linux. Thanks, Martin 2011-03-08 Martin Jambor mjam...@suse.cz PR tree

[PATCH, 4.6] Do not create new cgraph noes in the verifier

2011-03-11 Thread Martin Jambor
obvious and the verifier is disabled with release checking and so I'd prefer to commit it now. Is it OK? Bootstrapped and tested on x86_63-linux without any problems. Thanks, Martin 2011-03-10 Martin Jambor mjam...@suse.cz * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead

[PATCH, 4.7] Have all inlining destinations analyzed

2011-03-11 Thread Martin Jambor
Hi, after I simply moved id-dst_node-analyzed check from expand_call_inline to optimize_inline_calls I tried asserting it there instead. When running testsuite I found out this works for everything but mudflap which adds new nodes late with cgraph_add_new_function which runs the inliner on nodes

[testsuite] Remove explicit -O2 from gcc.c-torture/compile/pr44686.c

2011-03-17 Thread Martin Jambor
Hi, I'm about to check in the following as obvious. The explicit -O2 defeats the different O levels the torture mechanism tries. Tested on x86_64-linux by running make -k check RUNTESTFLAGS=compile.exp=pr44686.c and verifying all tests passed. Thanks, Martin Index:

Re: [PATCH, 4.7] Have all inlining destinations analyzed

2011-03-18 Thread Martin Jambor
it still passes. Thanks, Martin 2011-03-18 Martin Jambor mjam...@suse.cz * tree-inline.c (expand_call_inline): Do not check that destination node is analyzed. (optimize_inline_calls): Assert that destination node is analyzed. * cgraph.c

[PATCH 0/4] Remove (lots of) lazy call graph node construction

2011-03-19 Thread Martin Jambor
Hi, I believe the general consensus is that lazy call graph node creation is no longer a good idea and a few of us have seen bugs caused by a creation of a node when we did not expect it. Therefore I embarked on getting rid of it. In the process I quickly realized it would be difficult to do

[PATCH 3/4] A tweak to fortran - call graph interface

2011-03-19 Thread Martin Jambor
Hi, it seems to me that fortran can call cgraph_create_node directly without checking for its existence first. Thanks, Martin 2011-03-18 Martin Jambor mjam...@suse.cz * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node instead of cgraph_get_create_node

[PATCH 2/4] Tweaks to C++ - call graph interface

2011-03-19 Thread Martin Jambor
(parts of) this after the big patch is committed, it would be a nice cleanup too. Thanks, Martin 2011-03-18 Martin Jambor mjam...@suse.cz cp/ * class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of cgraph_get_create_node. * decl2.c (cxx_callgraph_analyze_expr

[PATCH 1/4] Remove cgraph_node function and fixup all callers

2011-03-19 Thread Martin Jambor
171141.) Thanks, Martin 2011-03-18 Martin Jambor mjam...@suse.cz * cgraph.h (cgraph_node): Remove function declaration. (cgraph_create_node): Declare. (cgraph_get_create_node): Likewise. (cgraph_do_get_node): New function. * cgraph.c

Re: [PATCH 1/4] Remove cgraph_node function and fixup all callers

2011-03-28 Thread Martin Jambor
Hi, On Fri, Mar 25, 2011 at 05:55:24PM +0100, Jan Hubicka wrote: Index: src/gcc/passes.c === --- src.orig/gcc/passes.c 2011-03-19 01:16:23.0 +0100 +++ src/gcc/passes.c2011-03-19 01:54:42.0

[PATCH, PR 48195] Move around ipa_check_create_node_params and ipa_check_create_edge_args

2011-03-29 Thread Martin Jambor
Hi, PR 48195 happens because analyze_node in ipa-inline can be called from add_new_function hook and thus bypass calls for ipa_check_create_node_params and ipa_check_create_edge_args in inline_generate_summary. The two functions are required to reallocate info arrays if necessary before calling

[PATCH 3/7] cgraph_node - cgraph_get_node with asserts

2011-04-06 Thread Martin Jambor
cause. Therefore I have added checking asserts to guard this does not happen. Bootstrapped and tested separately on x86_64-linux without any problems, tests on other platforms (together with the other patches) in progress. OK for trunk? Thanks, Martin 2011-04-06 Martin Jambor mjam...@suse.cz

[PATCH 2/7] cgraph_node - cgraph_get_node conversions accepting NULL results

2011-04-06 Thread Martin Jambor
problems, tests on other platforms (together with the other patches) in progress. OK for trunk? Thanks, Martin 2011-04-06 Martin Jambor mjam...@suse.cz gcc/ * cgraph.c (cgraph_local_info): Call cgraph_get_node instead of cgraph_node, handle NULL return value

[PATCH 1/7] Simple cgraph_node - cgraph_get_node conversions

2011-04-06 Thread Martin Jambor
is immediately dereferenced and so would segfault anyway. Bootstrapped and tested separately on x86_64-linux without any problems, tests on other platforms (together with the other patches) in progress. OK for trunk? Thanks, Martin 2011-04-06 Martin Jambor mjam...@suse.cz * except.c

Re: [PATCH 4/7] Removal of cgraph_node function

2011-04-11 Thread Martin Jambor
Hi, On Mon, Apr 11, 2011 at 12:28:36PM +0200, Jan Hubicka wrote: 2011-04-06 Martin Jambor mjam...@suse.cz * cgraph.h (cgraph_node): Remove function declaration. (cgraph_create_node): Declare. (cgraph_get_create_node): Likewise. * cgraph.c (cgraph_create_node

Re: [PATCH] Do not store/stream binfos in jump functions

2011-09-23 Thread Martin Jambor
by a test. Thanks, Martin 2011-09-23 Martin Jambor mjam...@suse.cz * ipa-prop.h (jump_func_type): Updated comments. (ipa_known_type_data): New type. (ipa_jump_func): Use it to describe known type jump functions. * ipa-prop.c

Re: [PR 47382] We cannot simply fold OBJ_TYPE_REF at all in 4.6

2011-09-23 Thread Martin Jambor
Hi, On Thu, Sep 22, 2011 at 06:36:43PM +1200, Maxim Kuvyrkov wrote: On 9/02/2011, at 6:53 AM, Martin Jambor wrote: This patch basically disables all intraprocedural devirtualization simply because that transformation relies on assumptions that no longer hold true. That leaves only

Re: Preserve callee cgraph edges when callgraph profiles sections are requested. (issue5101042)

2011-09-23 Thread Martin Jambor
Hi, On Thu, Sep 22, 2011 at 04:24:47PM -0700, Xinliang David Li wrote: ok for google branches. (Did a little digging -- the remove pass is added because ipa-inline did not do a good job updating the call graph so there might be some inconsistency. However the affinity information needs to

Re: Fix type of SRAed enum accesses

2011-09-27 Thread Martin Jambor
Hi, On Tue, Sep 27, 2011 at 03:26:03PM +0100, Richard Sandiford wrote: This patch fixes a miscompilation of stage1 c-parser.o in an ARM bootstrap. When an access to an enum field was SRAed, a component ref used the type of the integer temporary variable instead of the type of the enum. It

Re: [PATCH] Don't assume that constants can clobber vtbl

2011-10-10 Thread Martin Jambor
Hi, sorry that taking care of the devirtualization patches takes me longer than expected for various reasons. But I have not forgotten about this. On Sat, Oct 01, 2011 at 01:58:57PM +1300, Maxim Kuvyrkov wrote: This patch makes detect_type_change analysis assume that only ADDR_EXPRs can be

Re: [PATCH] Don't assume that constants can clobber vtbl

2011-10-10 Thread Martin Jambor
On Mon, Oct 10, 2011 at 05:05:14PM +0200, Martin Jambor wrote: Hi, sorry that taking care of the devirtualization patches takes me longer than expected for various reasons. But I have not forgotten about this. Ah, please ignore the attachment, I was trying to persuade mutt to add

[PATCH, testsuite] Unxfail g++.dg/tree-ssa/pr45605.C

2011-10-26 Thread Martin Jambor
the optimization, checking that we continue to do so is useful, hence the following change. Tested by adding to a successful bootstrap and test run on x86_64. Unless anyone objects, I will commit the patch tomorrow. Thanks, Martin 2011-10-25 Martin Jambor mjam...@suse.cz * g++.dg/tree-ssa

[PATCH] Pass through jump functions for addressable (scalar) parameters

2011-10-26 Thread Martin Jambor
-not-modified mechanism are not too strict for this purpose. The patch is supposed to be applied on top of the one I have just sent that renames all parm_infos to parm_ainfos. I have successfully bootstrapped and tested it on x86_64-linux. OK for trunk? Thanks, Martin 2011-10-26 Martin Jambor

[PATCH, devirtualization] Detect the new type in type change detection

2011-10-26 Thread Martin Jambor
makes the produced executable run for only 7 seconds instead of about 20 on my 4 year old i686 desktop (with -Ofast). Anyway, the patch passes bootstrap and testsuite on x86_64-linux. What do you think, is it a good idea for trunk now? Thanks, Martin 2011-10-21 Martin Jambor mjam...@suse.cz

Re: [PATCH] Pass through jump functions for addressable (scalar) parameters

2011-10-27 Thread Martin Jambor
Hi, On Thu, Oct 27, 2011 at 03:07:10PM +0200, Richard Guenther wrote: On Wed, Oct 26, 2011 at 8:25 PM, Martin Jambor mjam...@suse.cz wrote: Hi, 2011-10-26  Martin Jambor  mjam...@suse.cz        * ipa-prop.c (mark_modified): Moved up in the file

Re: [PATCH, devirtualization] Detect the new type in type change detection

2011-10-27 Thread Martin Jambor
Hi, On Thu, Oct 27, 2011 at 11:06:02AM +0200, Richard Guenther wrote: On Thu, Oct 27, 2011 at 1:22 AM, Martin Jambor mjam...@suse.cz wrote: Hi, I've been asked by Maxim Kuvyrkov to revive the following patch which has not made it to 4.6.  Currently, when type based devirtualization

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-04 Thread Martin Jambor
bootsrapping sparc64 which is what I need this mainly for but those are unelated and this should help. Thanks, Martin 2012-04-03 Martin Jambor mjam...@suse.cz * expr.c (expand_expr_real_1): Pass type, not the expression, to set_mem_attributes for a memory temporary. Do not call

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-12 Thread Martin Jambor
Hi, On Fri, Apr 06, 2012 at 06:13:20PM +0200, Eric Botcazou wrote: 2012-04-03 Martin Jambor mjam...@suse.cz * expr.c (expand_expr_real_1): Pass type, not the expression, to set_mem_attributes for a memory temporary. Do not call the function for temporaries

Re: [RFC] Should SRA stop producing COMPONENT_REF for non-bit-fields (again)?

2012-04-12 Thread Martin Jambor
Hi, On Wed, Apr 04, 2012 at 04:42:05PM +0200, Richard Guenther wrote: On Wed, 4 Apr 2012, Martin Jambor wrote: Hi everyone, especially Richi and Eric, I'd like to know what is your attitude to changing SRA's build_ref_for_model to what it once looked like, so that it produces

[PATCH, PR 52939] Gracefully deal with fold_ctor_reference returning NULL during devirtualization

2012-04-13 Thread Martin Jambor
which is something gimple_get_virt_method_for_binfo cannot cope with. The patch below avoids it by simply testing for that value and bailing out. Bootstrapped and tested on x86_64-linux, OK for trunk? Thanks, Martin 2012-04-12 Martin Jambor mjam...@suse.cz PR middle-end/52939

Re: [RFC] Should SRA stop producing COMPONENT_REF for non-bit-fields (again)?

2012-04-13 Thread Martin Jambor
On Fri, Apr 13, 2012 at 01:57:33PM +0200, Rainer Orth wrote: Richard Guenther rguent...@suse.de writes: Anyway, the patch I posted previously would risk re-introducing PR 50386 and PR 50326, even though they are very unlikely with just bit-fields. So my current working version is the

Re: [PATCH, PR 52939] Gracefully deal with fold_ctor_reference returning NULL during devirtualization

2012-04-13 Thread Martin Jambor
Hi, On Fri, Apr 13, 2012 at 04:13:13PM +0200, Richard Guenther wrote: On Fri, 13 Apr 2012, Martin Jambor wrote: Hi, currently we ICE when attempting to devirtualize a call to a virtual method introduced in a descendant but with a base which is an ancestor which does not have

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-17 Thread Martin Jambor
, then I don't think that we need to put it on the other MEM. That's what's done for the first, non-bitfield temporary now. 2012-04-10 Martin Jambor mjam...@suse.cz * expr.c (expand_expr_real_1): Pass type, not the expression, to set_mem_attributes for a memory temporary

[PATCH] Support for known unknown alignment

2012-04-20 Thread Martin Jambor
suppose there will be comments, but eventually I'd like to ask for permission to commit the patch to trunk. Thanks, Martin 2012-04-20 Martin Jambor mjam...@suse.cz * builtins.c (get_object_alignment_1): Return whether we can determine the alignment or conservatively assume byte

Re: [PATCH] Support for known unknown alignment

2012-04-23 Thread Martin Jambor
Hi, On Mon, Apr 23, 2012 at 12:50:51PM +0200, Richard Guenther wrote: On Fri, 20 Apr 2012, Martin Jambor wrote: Hi, two days ago I talked to Richi on IRC about the functions to determine the expected alignment of objects and pointers we have and he suggested

Re: [PATCH] Support for known unknown alignment

2012-04-24 Thread Martin Jambor
Hi, On Mon, Apr 23, 2012 at 03:30:19PM +0200, Richard Guenther wrote: On Mon, 23 Apr 2012, Martin Jambor wrote: Hi, On Mon, Apr 23, 2012 at 12:50:51PM +0200, Richard Guenther wrote: On Fri, 20 Apr 2012, Martin Jambor wrote: Hi, two days ago I talked to Richi on IRC

Re: [PATCH] Proper use of decl_function_context in dwar2out.c

2012-04-27 Thread Martin Jambor
at 12:18 PM, Jakub Jelinek ja...@redhat.com wrote: On Thu, Mar 08, 2012 at 12:06:46PM +0100, Martin Jambor wrote:        /* For local statics lookup proper context die.  */ -      if (TREE_STATIC (decl) decl_function_context (decl)) -     context_die = lookup_decl_die (DECL_CONTEXT (decl

Re: [PATCH] Support for known unknown alignment

2012-04-27 Thread Martin Jambor
Hi, On Tue, Apr 24, 2012 at 12:31:38PM +0200, Martin Jambor wrote: Hi, On Mon, Apr 23, 2012 at 03:30:19PM +0200, Richard Guenther wrote: On Mon, 23 Apr 2012, Martin Jambor wrote: Hi, On Mon, Apr 23, 2012 at 12:50:51PM +0200, Richard Guenther wrote: On Fri, 20 Apr 2012

Re: Symbol table 6/many: Symbol table hashes

2012-05-03 Thread Martin Jambor
Hi, a bit late, but I do have two tiny comments nevertheless... On Mon, Apr 16, 2012 at 06:09:40PM +0200, Jan Hubicka wrote: Hi, this patch moves cgraph/varpool hashes into symbol table hashes, so the symbol table is actually almost a symbol table ;) Work done. Bootstrapped/regtested

Re: [C++ Patch] fix semi-random template specialization ICE

2012-05-04 Thread Martin Jambor
Hi, On Thu, May 03, 2012 at 03:17:23PM -0300, Alexandre Oliva wrote: I've recently started getting “libstdc++-v3/include/functional:2057:63: internal compiler error: tree check: expected tree_vec, have error_mark in comp_template_args_with_info, at cp/pt.c:7038” on i686-linux-gnu, building

[PATCH] Fix memory leak in inline_merge_summary

2012-05-23 Thread Martin Jambor
it to the 4.7 branch...? Thanks, Martin 2012-05-23 Martin Jambor mjam...@suse.cz * ipa-inline-analysis.c (inline_merge_summary): Free operand_map. Index: src/gcc/ipa-inline-analysis.c === --- src.orig/gcc/ipa-inline-analysis.c

[PATCH 2/3] Incorporate aggregate jump functions into inlining analysis

2012-08-02 Thread Martin Jambor
the function bar in testcase of PR 48636 in comment #4. It also passes bootstrap and testing on x86_64-linux. I successfully LTO-built Firefox with it too. Thanks for all comments and suggestions, Martin 2012-07-31 Martin Jambor mjam...@suse.cz PR fortran/48636 * ipa-inline.h

Re: [PATCH 2/3] Incorporate aggregate jump functions into inlining analysis

2012-08-03 Thread Martin Jambor
On Thu, Aug 02, 2012 at 09:28:11PM +0200, Martin Jambor wrote: Hi, this patch uses the aggregate jump functions created by the previous patch in the series to determine benefits of inlining a particular call graph edge. It has not changed much since the last time I posted it, except

[PATCH] Set current_function_decl in {push,pop}_cfun and push_struct_function

2012-08-09 Thread Martin Jambor
wrong (I also do not know whether anyone but Ian can modify the go front-end). I have also LTO-built Mozilla Firefox with the patch. Well, what do you think? Martin 2012-08-08 Martin Jambor mjam...@suse.cz * function.c (push_cfun): Check old current_function_decl matches old

Re: [PATCH 2/3] Incorporate aggregate jump functions into inlining analysis

2012-08-11 Thread Martin Jambor
Hi, On Fri, Aug 10, 2012 at 04:39:44PM +0200, Martin Jambor wrote: On Fri, Aug 10, 2012 at 05:12:31AM +0200, Jan Hubicka wrote: Hi, ... 2012-07-31 Martin Jambor mjam...@suse.cz PR fortran/48636 * ipa-inline.h (condition): New fields offset, agg_contents

Re: [PATCH] Set current_function_decl in {push,pop}_cfun and push_struct_function

2012-08-15 Thread Martin Jambor
Hi, On Fri, Aug 10, 2012 at 04:57:41PM +0200, Eric Botcazou wrote: - ada/gcc-interface/utils.c:rest_of_subprog_body_compilation calls dump_function which in turns calls dump_function_to_file which calls push_cfun. But Ada front end has its idea of the current_function_decl and

Re: [PATCH 2/3] Incorporate aggregate jump functions into inlining analysis

2012-08-15 Thread Martin Jambor
Hi, On Fri, Aug 10, 2012 at 05:12:31AM +0200, Jan Hubicka wrote: Do you have any data on memory usage? I was originally concerned about memory use of the whole predicate thingy on WPA level. Eventually we could add simple inheritance on conditions and sort them into mutiple vectors if

Re: [PATCH] Set current_function_decl in {push,pop}_cfun and push_struct_function

2012-08-21 Thread Martin Jambor
On Wed, Aug 15, 2012 at 05:21:04PM +0200, Martin Jambor wrote: Hi, On Fri, Aug 10, 2012 at 04:57:41PM +0200, Eric Botcazou wrote: - ada/gcc-interface/utils.c:rest_of_subprog_body_compilation calls dump_function which in turns calls dump_function_to_file which calls push_cfun

Re: [PATCH] Set current_function_decl in {push,pop}_cfun and push_struct_function

2012-08-22 Thread Martin Jambor
Hi, On Tue, Aug 21, 2012 at 01:30:47PM +0200, Richard Guenther wrote: On Tue, Aug 21, 2012 at 1:27 PM, Martin Jambor mjam...@suse.cz wrote: On Wed, Aug 15, 2012 at 05:21:04PM +0200, Martin Jambor wrote: Hi, On Fri, Aug 10, 2012 at 04:57:41PM +0200, Eric Botcazou wrote: - ada/gcc

Re: [PATCH] Set current_function_decl in {push,pop}_cfun and push_struct_function

2012-08-24 Thread Martin Jambor
Hi, On Wed, Aug 22, 2012 at 03:37:48PM +0200, Richard Guenther wrote: On Wed, Aug 22, 2012 at 3:04 PM, Martin Jambor mjam...@suse.cz wrote: On Tue, Aug 21, 2012 at 01:30:47PM +0200, Richard Guenther wrote: On Tue, Aug 21, 2012 at 1:27 PM, Martin Jambor mjam...@suse.cz wrote: On Wed, Aug

Re: Inline hints

2012-08-27 Thread Martin Jambor
Hi, On Sun, Aug 19, 2012 at 07:43:45AM +0200, Jan Hubicka wrote: * gcc.dg/ipa/iinline-1.c: Update testcase to test inline hints. * ipa-inline.c (want_inline_small_function_p): Bypass inline limits for hinted functions. (edge_badness): Dump hints; decrease

Re: Inline hints

2012-08-29 Thread Martin Jambor
it passed bootstrap and testing along with another patch on x86_64-linux). Martin 2012-08-29 Martin Jambor mjam...@suse.cz * ipa-inline.h (estimate_edge_hints): Call do_estimate_edge_hints, not do_estimate_edge_time. Index: src/gcc/ipa-inline.h

Re: Loop iterations inline hint

2012-08-29 Thread Martin Jambor
Hi, On Tue, Aug 21, 2012 at 08:55:02AM +0200, Jan Hubicka wrote: Hi, this patch adds a hint that if inlining makes bounds on loop iterations known, it is probably good idea. This is primarely targetting Fortran's array descriptors, but should be generally useful. Fortran will still need

[PATCH, PR 54394] Compute loops when generating inline summaries

2012-08-29 Thread Martin Jambor
Martin Jambor mjam...@suse.cz PR middle-end/54394 * ipa-inline-analysis.c (estimate_function_body_sizes): Compute dominance info and loops whenever optimizing. Index: src/gcc/ipa-inline-analysis.c

[PATCH 3/3] Compute predicates for phi node results in ipa-inline-analysis.c

2012-08-30 Thread Martin Jambor
can reason about substantially more PHI nodes. This patch makes us produce loop bounds hint for the pr48636.f90 testcase. Bootstrapped and tested on x86_64-linux. OK for trunk? Thanks, Martin 2012-08-29 Martin Jambor mjam...@suse.cz * ipa-inline-analysis.c

<    1   2   3   4   5   6   7   8   9   10   >