[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

[PATCH, PR 54409] Remapping inlining predicates fix

2012-08-30 Thread Martin Jambor
restrictive, we can still happily use non-aggregate and by-value conditions when offset map is negative, that only means that by-ref stuff is not guaranteed to survive. Bootstrapped and tested on x86_64-linux. OK for trunk? Thanks, Martin 2012-08-30 Martin Jambor mjam...@suse.cz PR

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

2012-08-31 Thread Martin Jambor
on an x86_64-linux and i686-linux for me. What do you think? Thanks, Martin 2012-08-29 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

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

2012-08-31 Thread Martin Jambor
, this is what I have committed. Martin 2012-08-31 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

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

2012-08-31 Thread Martin Jambor
Hi, On Fri, Aug 31, 2012 at 10:52:28AM +0200, Jan Hubicka wrote: Hi, this is a new version of the patch which makes ipa analysis produce predicates for PHI node results, at least at the bottom of the simplest diamond and semi-diamond CFG subgraphs. This time I also analyze the

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

2012-08-31 Thread Martin Jambor
Hi, On Thu, Aug 30, 2012 at 05:11:35PM +0200, Martin Jambor wrote: this is a new version of the patch which makes ipa analysis produce predicates for PHI node results, at least at the bottom of the simplest diamond and semi-diamond CFG subgraphs. This time I also analyze the conditions again

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

2012-09-04 Thread Martin Jambor
On Tue, Sep 04, 2012 at 11:27:47AM +0200, Richard Guenther wrote: On Mon, Sep 3, 2012 at 5:52 PM, Jan Hubicka hubi...@ucw.cz wrote: On Fri, Aug 31, 2012 at 7:24 PM, Martin Jambor mjam...@suse.cz wrote: Hi, On Thu, Aug 30, 2012 at 05:11:35PM +0200, Martin Jambor wrote: this is a new

[PATCH] Fix bogus use of cfun in gen_subprogram_die and premark_used_types

2012-09-04 Thread Martin Jambor
can call itself, that is not the case. Nevertheless, I also bootstrapped, tested and compiled Firefox with a version in which I do push_cfun(NULL) when cfun is not already NULL and there were no problems. Bootstrapped and tested on x86_64-linux. OK for trunk? Thanks, Martin 2012-08-30 Martin

Re: [PATCH] Combine location with block using block_locations

2012-09-12 Thread Martin Jambor
Hi, On Wed, Sep 12, 2012 at 04:17:45PM +0200, Michael Matz wrote: Hi, On Wed, 12 Sep 2012, Michael Matz wrote: Hm, but we shouldn't end up streaming any BLOCKs at this point (nor local TYPE_DECLs). Those are supposed to be in the local function sections only where no fixup for

Re: [PATCH] Combine location with block using block_locations

2012-09-12 Thread Martin Jambor
Hi, On Wed, Sep 12, 2012 at 04:47:11PM +0200, Richard Guenther wrote: On Wed, Sep 12, 2012 at 4:37 PM, Martin Jambor mjam...@suse.cz wrote: On Wed, Sep 12, 2012 at 04:17:45PM +0200, Michael Matz wrote: On Wed, 12 Sep 2012, Michael Matz wrote: Hm, but we shouldn't end up streaming any

Re: Loop stride optimization hint

2012-09-12 Thread Martin Jambor
Hi, On Wed, Sep 12, 2012 at 07:57:16PM +0200, Jan Hubicka wrote: Hi, for Fortran one of common reason to inline is because array descriptor is known and defines loop stride. This patch makes ipa-inline-analysis to notice these cases. Bootstrapped/regtested x86_64-linux, will commit it

Re: [PATCH, PR 49495] Cgraph verifier must look through aliases

2011-07-07 Thread Martin Jambor
). Bootstrapped and tested on x86_64-linux. OK for trunk? Thanks, Martin 2011-07-02 Martin Jambor mjam...@suse.cz PR middle-end/49495 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function. (verify_cgraph_node): Some functinality moved

[PATCH] Skip testsuite/gcc.dg/tree-ssa/sra-12.c on avr*-*-*

2011-07-07 Thread Martin Jambor
objects. Thanks, Martin 2011-07-07 Martin Jambor mjam...@suse.cz testsuite/ * gcc.dg/tree-ssa/sra-12.c: Skip dump scan on avr targets. Index: src/gcc/testsuite/gcc.dg/tree-ssa/sra-12.c === --- src.orig/gcc/testsuite

[PATCH, SRA] Dump that a structure is too big for total scalarization

2011-07-07 Thread Martin Jambor
. It is currently undergoing a bootstrap and testsuite run on x86_64-linux. OK if it passes? Thanks, Martin 2011-07-07 Martin Jambor mjam...@suse.cz * tree-sra.c (analyze_all_variable_accesses): Dump that a struture is too big for total scalarization. Index: src/gcc/tree-sra.c

Re: [PATCH] New IPA-CP with real function cloning

2011-07-08 Thread Martin Jambor
Hi, On Thu, Jul 07, 2011 at 06:03:07PM +0200, Jan Hubicka wrote: Hi, patch is long, so let me review it in more passes. Fair enough. 2011-06-22 Martin Jambor mjam...@suse.cz * ipa-prop.h: Include alloc-pool.h. (ipa_lattice_type): Removed. (ipcp_value_source

[PATCH] Remove obsolete alias check in cgraph_redirect_edge_call_stmt_to_callee

2011-07-11 Thread Martin Jambor
? Thanks, Martin 2011-07-08 Martin Jambor mjam...@suse.cz * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias check removed. Index: src/gcc/cgraphunit.c === --- src.orig/gcc/cgraphunit.c +++ src/gcc

[PATCH] Remove cgraph_get_node_or_alias

2011-07-11 Thread Martin Jambor
Hi, cgraph_get_node_or_alias is now completely equivalent to cgraph_get_node, in fact it is exactly same character-by-character. Therefore it should be removed, which is what the patch below does. Bootstrapped and tested on x86_64-linux, OK for trunk? Thanks, Martin 2011-07-11 Martin Jambor

[PATCH, 4.6, PR 49094, committed] Backport of fixes for PR 49094

2011-07-11 Thread Martin Jambor
/msg02371.html The first has been explicitely approved for the branch, the second is a straightforward followup. Sorry it took so long, I just nearly forgot to do the backport too. Thanks, Martin 2011-07-11 Martin Jambor mjam...@suse.cz PR tree-optimization/49094 * tree

Re: [PATCH] New IPA-CP with real function cloning

2011-07-14 Thread Martin Jambor
Hi, like with the previous mail, I'll reply to the comments here and then post a new version of the patch in a separate thread. On Sun, Jul 10, 2011 at 07:04:21PM +0200, Jan Hubicka wrote: /* If checking is enabled, verify that no lattice is in the TOP state, i.e. not bottom, not

Re: [PATCH] New IPA-CP with real function cloning

2011-07-15 Thread Martin Jambor
Hi, On Thu, Jul 14, 2011 at 11:28:32PM +0200, Jan Hubicka wrote: Well, technically they survive until after inlining (because of indirect inlining which also derives information from the lattices corresponding to node-inlined_to node. Results of arithmetic functions are not going to

[PATCH, PR 49796] Do not verify cgraph edge destinations if they lead to a different partition

2011-07-22 Thread Martin Jambor
, Martin 2011-07-21 Martin Jambor mjam...@suse.cz PR lto/49796 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false if decl node is in another partition, call cgraph_get_node only once. Index: src/gcc/cgraphunit.c

Re: [PATCH, PR 49094] Refrain from creating misaligned accesses in SRA

2011-07-25 Thread Martin Jambor
Hi, On Thu, Jul 21, 2011 at 11:40:32AM +0200, Martin Jambor wrote: Hi, On Thu, Jul 21, 2011 at 10:34:35AM +0200, Richard Guenther wrote: On Wed, 20 Jul 2011, Ulrich Weigand wrote: Richard Guenther wrote: On Tue, Jul 19, 2011 at 8:20 PM, Ulrich Weigand uweig...@de.ibm.com

[PATCH, PR 49786] Avoid overflow when updating counts in IPA-CP

2011-07-26 Thread Martin Jambor
before the IPA-CP submission and the current normal bootstrap ones and it seemed fine (although there were a few dump scan failures). (All of the above was done on x86_64-linux.) So, OK for trunk? Thanks, Martin 2011-07-25 Martin Jambor mjam...@suse.cz PR bootstrap/49786 * ipa

Re: [PATCH, PR 49094] Refrain from creating misaligned accesses in SRA

2011-07-26 Thread Martin Jambor
On Tue, Jul 26, 2011 at 09:39:02AM +0200, Richard Guenther wrote: On Mon, Jul 25, 2011 at 7:52 PM, Martin Jambor mjam...@suse.cz wrote: ... 2011-07-25  Martin Jambor  mjam...@suse.cz        * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and        return false

[PATCH, PR 49886] Prevent fnsplit from changing signature when there are type attributes

2011-07-28 Thread Martin Jambor
passed bootstrap and testsuite on x86_64-linux, the current one is undergoing both right now. OK for trunk if it passes? Thanks, Martin 2011-07-28 Martin Jambor mjam...@suse.cz PR middle-end/49886 * ipa-inline-analysis.c (compute_inline_parameters): Set

Re: [PATCH, PR 49886] Prevent fnsplit from changing signature when there are type attributes

2011-07-29 Thread Martin Jambor
Hi, On Thu, Jul 28, 2011 at 06:52:05PM +0200, Martin Jambor wrote: pass_split_functions is happy to split functions which have type attributes but cannot update them if the new clone has in any way different parameters than the original. This can lead to miscompilations in cases like

[PATCH, PR 49923] Check for misaligned accesses before doing SRA

2011-08-05 Thread Martin Jambor
and the 4.6 branch? Thanks, Martin 2011-08-04 Martin Jambor mjam...@suse.cz PR middle-end/49923 * tree-sra.c (access_precludes_ipa_sra_p): Also check access memory alignment. * testsuite/gcc.dg/tree-ssa/pr49923.c: New test. Index: src/gcc/tree-sra.c

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