[PR58463][Backport to 4.8] Adjust dumping for ref nodes

2013-09-20 Thread Paulo Matos

Can we please backport this to 4.8 (it will fix PR58463)?
I attach Richard's patch to master, let me know if instead I should create one 
specific for 4.8.1. I tested this against 4.8 branch and everything looks fine.


2013-03-27  Richard Biener  

PR tree-optimization/56716
* tree-ssa-structalias.c (perform_var_substitution): Adjust
dumping for ref nodes.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-structalias.c

Paulo Matos




pr58463.patch
Description: pr58463.patch


[PR58463] New testcase for pr58463

2013-09-20 Thread Paulo Matos
Please find the patch attached.

I have added the test to gcc.c-torture, please let me know if this is not the 
right place.

2013-09-20  Paulo Matos 

* gcc.c-torture/pr58463.c: New testcase.


Paulo Matos




pr58463-testcase.patch
Description: pr58463-testcase.patch


RE: [PR58463] New testcase for pr58463

2013-09-23 Thread Paulo Matos
> -Original Message-
> From: Jakub Jelinek [mailto:ja...@redhat.com]
> Sent: 20 September 2013 16:50
> To: Paulo Matos
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: [PR58463] New testcase for pr58463
> 
> That is not the right place (and, note the ChangeLog entry refers to a
> different path than the testcase, and doesn't have space before <.), such
> test should go into gcc.dg/.  But, more importantly, the test doesn't
> cleanup after itself.  I bet it is enough to test just one dump that
> was actually crashing rather than all of them, so please change that
> to -fdump-tree--all and add corresponding:
> /* { dg-final { cleanup-tree-dump "" } } */
> line.  Or, if you really want to test more than one pass dump, add
> the individual -fdump-tree-pass1-all -fdump-tree-otherpass2-all
> and corresponding cleanup-tree-dump lines for each of them.  I don't think
> there is a way to get all dumps cleaned up.
> 
>   Jakub

Thanks for all your comments Jakub, I will format a new patch and submit it 
under a new thread.

Paulo Matos




[PATCH middle-end/58463] New testcase

2013-09-23 Thread Paulo Matos
2013-09-20  Paulo Matos 

* gcc.c-torture/pr58463.c: New testcase for pr58463

Paulo Matos




0001-2013-09-23-Paulo-Matos-pmatos-broadcom.com.patch
Description: 0001-2013-09-23-Paulo-Matos-pmatos-broadcom.com.patch


RE: [PATCH middle-end/58463] New testcase

2013-09-23 Thread Paulo Matos

> -Original Message-
> From: Jakub Jelinek [mailto:ja...@redhat.com]
> Sent: 23 September 2013 14:49
> To: Paulo Matos
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH middle-end/58463] New testcase
> 
> The testcase looks good, the ChangeLog entry is still wrong.  Should
> be
> 2013-09-23  Paulo Matos  
> 
>   PR middle-end/58463
>   * gcc.dg/pr58463.c: New test.
> 
> Note: current date, space between name and e-mail, PR on separate line,
> correct path in the entry, end entry with dot.
> 
> Ok with that change (after the corresponding fix is committed
> to 4.8 branch, even there).
> 
>   Jakub

Again, thanks for the helpful comments. This was a bug in 4.8 branch so I guess 
the testcase should be committed there even if it is in master as well?
Also, I suppose now I just wait until someone commits the patch or is there 
anything else I can do?

Paulo


[PATCH] Fix typo in check for null

2013-09-23 Thread Paulo Matos
This is a patch for master, where in number_of_loops, we want to check if the 
loops (returned by loops_for_fn) is non-null but instead we are using fn, which 
is the function argument. I haven't opened a bug report, please let me know if 
I need to do that before submitting patches.

2013-09-23 Paulo Matos 

  * gcc/cfgloop.h (number_of_loops): Fix typo in check for null

Paulo Matos




0001-2013-09-23-Paulo-Matos-pmatos-broadcom.com.patch
Description: 0001-2013-09-23-Paulo-Matos-pmatos-broadcom.com.patch


RE: [PR58463][Backport to 4.8] Adjust dumping for ref nodes

2013-09-24 Thread Paulo Matos
Ping on this patch.

Note I don't have write access.

Paulo Matos


> -Original Message-
> From: Richard Biener [mailto:richard.guent...@gmail.com]
> Sent: 23 September 2013 09:00
> To: Paulo Matos
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: [PR58463][Backport to 4.8] Adjust dumping for ref nodes
> 
> On Fri, Sep 20, 2013 at 5:39 PM, Paulo Matos  wrote:
> >
> > Can we please backport this to 4.8 (it will fix PR58463)?
> > I attach Richard's patch to master, let me know if instead I should create
> one specific for 4.8.1. I tested this against 4.8 branch and everything looks
> fine.
> 
> Ok.
> 
> Thanks,
> Richard.
> 
> >
> > 2013-03-27  Richard Biener  
> >
> > PR tree-optimization/56716
> > * tree-ssa-structalias.c (perform_var_substitution): Adjust
> > dumping for ref nodes.
> >
> > Modified:
> > trunk/gcc/ChangeLog
> > trunk/gcc/tree-ssa-structalias.c
> >
> > Paulo Matos
> >
> >



RE: [PATCH] Fix typo in check for null

2013-09-24 Thread Paulo Matos
> -Original Message-
> From: Marek Polacek [mailto:pola...@redhat.com]
> Sent: 24 September 2013 13:57
> To: Paulo Matos
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] Fix typo in check for null
> 
> On Mon, Sep 23, 2013 at 02:03:02PM +, Paulo Matos wrote:
> > This is a patch for master, where in number_of_loops, we want to check if
> the loops (returned by loops_for_fn) is non-null but instead we are using fn,
> which is the function argument. I haven't opened a bug report, please let me
> know if I need to do that before submitting patches.
> >
> > 2013-09-23 Paulo Matos 
> >
> >   * gcc/cfgloop.h (number_of_loops): Fix typo in check for null
> 
> The CL should have two spaces (twice) between the date and the
> date and the e-mail, plus please drop the gcc/ prefix and add a full stop at
> the end of the sentence.
> 
>   Marek


Thanks for the comments Marek, will fix it.

2013-09-24  Paulo Matos 

  * cfgloop.h (number_of_loops): Fix typo in check for null.


RE: [PATCH] Fix typo in check for null

2013-09-24 Thread Paulo Matos

> -Original Message-
> From: Richard Biener [mailto:richard.guent...@gmail.com]
> Sent: 24 September 2013 10:03
> To: Paulo Matos
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] Fix typo in check for null
> 
> On Mon, Sep 23, 2013 at 4:03 PM, Paulo Matos  wrote:
> > This is a patch for master, where in number_of_loops, we want to check if
> the loops (returned by loops_for_fn) is non-null but instead we are using fn,
> which is the function argument. I haven't opened a bug report, please let me
> know if I need to do that before submitting patches.
> 
> Patch is ok.
> 
> Thanks,
> Richard.

Will submit once I get a reply from the write access request.

Cheers,
Paulo


RE: [PATCH] Fix typo in check for null

2013-09-24 Thread Paulo Matos
> -Original Message-
> From: Marek Polacek [mailto:pola...@redhat.com]
> Sent: 24 September 2013 14:52
> To: Paulo Matos
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] Fix typo in check for null
> 
> On Tue, Sep 24, 2013 at 01:44:30PM +, Paulo Matos wrote:
> > Thanks for the comments Marek, will fix it.
> >
> > 2013-09-24  Paulo Matos 
> 
>^^
> Two spaces between name and .  Sorry for nitpicking like
> this.  Thanks!
> 
>   Marek

It's fine. :)

2013-09-24  Paulo Matos  

  * cfgloop.h (number_of_loops): Fix typo in check for null.


RE: [PING] 3 patches waiting for approval/review

2013-10-02 Thread Paulo Matos

> -Original Message-
> From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches-ow...@gcc.gnu.org] On
> Behalf Of Andreas Krebbel
> Sent: 01 October 2013 10:18
> To: gcc-patches@gcc.gnu.org
> Subject: [PING] 3 patches waiting for approval/review
> 
> [RFC] Allow functions calling mcount before prologue to be leaf functions
> http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00993.html
> 
> [PATCH] PR57377: Fix mnemonic attribute
> http://gcc.gnu.org/ml/gcc-patches/2013-05/msg01364.html
> 
> [PATCH] Doc: Add documentation for the mnemonic attribute
> http://gcc.gnu.org/ml/gcc-patches/2013-05/msg01436.html
> 
> Bye,
> 
> -Andreas-
> 

Documentation patch has a typo:

+ specific checks in e.g. the pipleline description.
  ^

Cheers,

Paulo Matos


Add IDENTIFIER_NODE to description of TARGET_ASM_NAMED_SECTION

2012-10-19 Thread Paulo Matos
As a followup to:
http://gcc.gnu.org/ml/gcc/2012-10/msg00276.html

2012-10-19  Paulo Matos
* tm.texi, tm.texi.in: Add IDENTIFIER_NODE as an alternative possibility
to possible values of decl.

Paulo Matos




doc.patch
Description: doc.patch


[PATCH] Fix PR58682

2013-10-10 Thread Paulo Matos
This is a patch for trunk. It should be backported to 4_8, once it thaws.

OK for trunk?

2013-10-10  Paulo Matos  

PR gcov-profile/58682
* ipa-inline.c (inline_small_functions): Update
max_count if new edges are added after inline_call.


Paulo Matos




pr58682.patch
Description: pr58682.patch


RE: [PATCH] Fix PR58682

2013-10-11 Thread Paulo Matos
> -Original Message-
> From: Kyrill Tkachov [mailto:kyrylo.tkac...@arm.com]
> Sent: 10 October 2013 17:15
> To: Paulo Matos
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] Fix PR58682
> 
> Hi Paul,
> 
> On 10/10/13 17:10, Paulo Matos wrote:
> > - inline_call (edge, true, &new_indirect_edges, &overall_size, true);
> > + if (inline_call (edge, true, &new_indirect_edges, &overall_size,
> true))
> > +{
> > +  /* Update max_count if new edges were found */
> Comments end in full stop and two spaces.
> 
> Also, a regression test to add to the testsuite would be nice...
> 

Thanks, fixed patch attached.
Working on how to submit a testcase for this given that I need to submit 5 
files + compile with profile-generate + execute + compile with profile-use to 
generate the ICE.

-- 
Paulo Matos


pr58682.patch
Description: pr58682.patch


[PATCH] Fix comment in tree-prof.exp

2013-10-14 Thread Paulo Matos
Hi,

Here's a patch to fix a comment in tree-prof.exp. OK to apply?

2013-10-14  Paulo Matos  

* testsuite/gcc.dg/tree-prof/tree-prof.exp: Fix comment.

-- 

Paulo Matos




tree-prof_comment.patch
Description: tree-prof_comment.patch


RE: [PATCH] Fix comment in tree-prof.exp

2013-10-14 Thread Paulo Matos
> -Original Message-
> From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches-ow...@gcc.gnu.org] On
> Behalf Of Paulo Matos
> Sent: 14 October 2013 10:31
> To: gcc-patches@gcc.gnu.org
> Subject: [PATCH] Fix comment in tree-prof.exp
> 
> Hi,
> 
> Here's a patch to fix a comment in tree-prof.exp. OK to apply?
> 
> 2013-10-14  Paulo Matos  
> 
>   * testsuite/gcc.dg/tree-prof/tree-prof.exp: Fix comment.

Just noticed a patch by Richard where his changelog didn't include the 
testsuite/ bit so it should be:

2013-10-14  Paulo Matos  

* gcc.dg/tree-prof/tree-prof.exp: Fix comment.

-- 
Paulo Matos


RE: [PATCH] Fix PR58682

2013-10-14 Thread Paulo Matos
> -Original Message-
> From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches-ow...@gcc.gnu.org] On
> Behalf Of Paulo Matos
> Sent: 11 October 2013 08:55
> To: Kyrill Tkachov
> Cc: gcc-patches@gcc.gnu.org
> Subject: RE: [PATCH] Fix PR58682
> 
> 
> Thanks, fixed patch attached.
> Working on how to submit a testcase for this given that I need to submit 5
> files + compile with profile-generate + execute + compile with profile-use to
> generate the ICE.
> 
> --
> Paulo Matos

OK, testcase generated. Patch attached but there are a few issues and need some 
comments.

 * The test includes 6 additional sources and 3 headers. This feels like it 
pollutes the test
directory a lot. Should I at least submit preprocessed sources, so that the 
headers disappear?
 * The sources come from CoreMark, does anybody know if their license allows us 
to include this
test in GCC? Also, the code if formatted with CoreMark formatting, should I 
just use indent to 
properly format the patch?
 * Last, but not least, this patch only causes an ICE on 4_8, but not because 
trunk is fixed.
Instead trunk generates edge counts in such a way that they never happen to be 
higher than max_count
when a call is inlined. Is it still worth it to get it into trunk (even though 
trunk should 
still be patched?)


In 4_8:
$ make -j8 RUNTESTFLAGS="tree-prof.exp=core_list_join.c" check-gcc
...
FAIL: gcc.dg/tree-prof/core_list_join.c compilation,  -fprofile-use 
-D_PROFILE_USE (internal compiler error)

=== gcc Summary ===

# of expected passes2
# of unexpected failures1
# of unresolved testcases   1
/projects/firepath_tools1_scratch/pmatos/tmp/GCC/builds/gcc-4_8/gcc/xgcc  
version 4.8.2 20131010 (prerelease) (GCC)

-- 
Paulo Matos


RE: [PATCH] Fix PR58682

2013-10-14 Thread Paulo Matos
> -Original Message-
> From: Kyrill Tkachov [mailto:kyrylo.tkac...@arm.com]
> Sent: 14 October 2013 11:44
> To: Paulo Matos
> Cc: gcc-patches@gcc.gnu.org; mikest...@comcast.net
> Subject: Re: [PATCH] Fix PR58682
> 
> I'd think there would be legal issues adding coremark to the testsuite but
> I'm
> not an expert on this. In any case, I think it's too big of a testcase. Any
> way
> we could reduce it?
> 

I agree it's too big but since it's necessary to compile/execute/compile it's 
very hard 
to reduce it without eliminating the resulting ICE.

I will give it a try though.

-- 
Paulo Mato


[PATCH] tree_code_name wrapper

2013-10-14 Thread Paulo Matos
Hi, 

Find attached the patch for trunk that creates a wrapper for tree_code_name to 
ensure that no invalid tree code is passed on to tree_code_name. All 
occurrences of tree_code_name use now use get_tree_code_name. Touched mep, frv, 
rs6000, iq2000 backends.

Comments? Ok to submit?


2013-10-14  Paulo Matos  

* tree.h: Prototype for new function get_tree_code_name.
* tree.c: Make tree_code_name static. Define new function
wrapper get_tree_code_name.
(dump_tree_statistics, tree_check_failed, tree_not_check_failed, 
tree_class_check_failed, tree_range_check_failed, 
tree_not_class_check_failed,
omp_clause_check_failed, tree_contains_struct_check_failed, 
tree_operand_check_failed):  Use new wrapper get_tree_code_name 
instead of
calling tree_code_name directly.
* tree-vrp.c (dump_asserts_for): Use new wrapper get_tree_code_name.
* tree-dump.c (dequeue_and_dump): Use new wrapper get_tree_code_name.
* tree-pretty-print.c (do_niy, dump_generic_node): Use new wrapper 
get_tree_code_name.
* tree-pretty-print.h (pp_unsupported_tree): Use new wrapper 
get_tree_code_name.
* cp/error.c (code_to_string): Use new wrapper get_tree_code_name.
* cp/cxx-pretty-print.c (pp_cxx_assignment_operator): Use new wrapper 
get_tree_code_name.
* cp/pt.c (tsubst): Use new wrapper get_tree_code_name.
* cp/semantics.c (cxx_eval_constant_expression, 
potential_constant_expression_1): Use new 
wrapper get_tree_code_name.
* cp/mangle.c (MANGLE_TRACE_TREE, dump_substitution_candidates, 
add_substitution,
find_substitution): Use new wrapper get_tree_code_name.
* lto-streamer-out.c (lto_write_tree, DFS_write_tree): Use new wrapper 
get_tree_code_name.
* tree-ssa-dom.c (print_expr_hash_elt): Use new wrapper 
get_tree_code_name.
* gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs, 
dump_ternary_rhs, 
dump_gimple_assign, dump_gimple_cond, dump_gimple_omp_for): Use new 
wrapper 
get_tree_code_name.
* tree-vect-data-refs.c (vect_create_data_ref_ptr): Use new wrapper 
get_tree_code_name.
* tree-ssa-pre.c (print_pre_expr): Use new wrapper get_tree_code_name.
* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Use new wrapper 
get_tree_code_name.
* print-tree.c (print_node_brief, print_node): Use new wrapper 
get_tree_code_name.
* gimple.c (gimple_check_failed): Use new wrapper get_tree_code_name.
* tree-core.h: Remove extern declaration of tree_code_name.
* config/frv/frv.c (frv_init_cumulative_args): Use new wrapper 
get_tree_code_name.
* config/mep/mep.c (mep_validate_vliw): Use new wrapper 
get_tree_code_name.
* config/iq2000/iq2000.c (init_cumulative_args): Use new wrapper 
get_tree_code_name.
* config/rs6000/rs6000.c (init_cumulative_args): Use new wrapper 
get_tree_code_name.
* lto-streamer.c (lto_tag_name, print_lto_report): Use new wrapper 
get_tree_code_name.


-- 
Paulo Matos




tree_code_name.patch
Description: tree_code_name.patch


RE: [PATCH] tree_code_name wrapper

2013-10-14 Thread Paulo Matos
> -Original Message-
> From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches-ow...@gcc.gnu.org] On
> Behalf Of Paulo Matos
> Sent: 14 October 2013 16:43
> To: gcc-patches@gcc.gnu.org
> Subject: [PATCH] tree_code_name wrapper
> 
> Hi,
> 
> Find attached the patch for trunk that creates a wrapper for tree_code_name
> to ensure that no invalid tree code is passed on to tree_code_name. All
> occurrences of tree_code_name use now use get_tree_code_name. Touched mep,
> frv, rs6000, iq2000 backends.
> 
> Comments? Ok to submit?
> 
> 

Forgot to mention that I ran the testsuite on x86_64-unknown-linux-gnu and 
there was no change.

-- 
Paulo Matos



RE: [PATCH] tree_code_name wrapper

2013-10-15 Thread Paulo Matos


> -Original Message-
> From: Richard Biener [mailto:richard.guent...@gmail.com]
> Sent: 15 October 2013 10:12
> To: Paolo Carlini
> Cc: Paulo Matos; gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] tree_code_name wrapper
> 
> 
> Apart from this please make sure to properly use tabs to indent:
> 
> @@ -9098,7 +9098,8 @@ dump_tree_statistics (void)
>fprintf (stderr, "Code   Nodes\n");
>fprintf (stderr, "\n");
>for (i = 0; i < (int) MAX_TREE_CODES; i++)
> -   fprintf (stderr, "%-20s %7d\n", tree_code_name[i],
> tree_code_counts[i]);
> +   fprintf (stderr, "%-20s %7d\n", get_tree_code_name ((enum tree_code)
> i),
> + tree_code_counts[i]);
>fprintf (stderr, "\n");
> 
> (maybe in other places, too).
> 
> Also we write the shorter
> 
> * tree-vrp.c (dump_asserts_for): Use new wrapper get_tree_code_name.
> * tree-dump.c (dequeue_and_dump): Likewise.
> 
> instead of duplicating the same sentence.
> 
> Ok with that changes.
> 


Thanks, regarding the indentation I was convinced we used 2 space indentation 
with maximum line length of 80 characters. I am not sure what the problem is 
with the hunk you copied above.

Should I also submit several change logs to gcc-patches like:

For gcc/
2013-10-15  Paulo Matos  

* ...

For gcc/cp/
2013-10-15  Paulo Matos  

* ...

-- 
Paulo Matos


RE: [PATCH] tree_code_name wrapper

2013-10-15 Thread Paulo Matos
> -Original Message-
> From: Jakub Jelinek [mailto:ja...@redhat.com]
> Sent: 15 October 2013 10:51
> To: Paulo Matos
> Cc: Richard Biener; Paolo Carlini; gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] tree_code_name wrapper
> 
> On Tue, Oct 15, 2013 at 09:42:17AM +, Paulo Matos wrote:
> > Thanks, regarding the indentation I was convinced we used 2 space
> > indentation with maximum line length of 80 characters.
> 
> We do, however 8 consecutive spaces in the indentation should be always
> replaced by a tab.
> 

This means that every sequence of 8 spaces should be converted into tabs? So, 
if we indent something 4 times, that becomes a tab instead of 4 times 2 spaces. 

Just to confirm so I can setup my emacs to use this.

Thanks,
-- 
Paulo Matos



RE: [PATCH] tree_code_name wrapper

2013-10-15 Thread Paulo Matos
> -Original Message-
> From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches-ow...@gcc.gnu.org] On
> Behalf Of Richard Biener
> Sent: 15 October 2013 14:34
> To: Paulo Matos
> Cc: Jakub Jelinek; Paolo Carlini; gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] tree_code_name wrapper
> 
> On Tue, Oct 15, 2013 at 3:19 PM, Paulo Matos  wrote:
> >> -Original Message-
> >> From: Jakub Jelinek [mailto:ja...@redhat.com]
> >> Sent: 15 October 2013 10:51
> >> To: Paulo Matos
> >> Cc: Richard Biener; Paolo Carlini; gcc-patches@gcc.gnu.org
> >> Subject: Re: [PATCH] tree_code_name wrapper
> >>
> >> On Tue, Oct 15, 2013 at 09:42:17AM +, Paulo Matos wrote:
> >> > Thanks, regarding the indentation I was convinced we used 2 space
> >> > indentation with maximum line length of 80 characters.
> >>
> >> We do, however 8 consecutive spaces in the indentation should be always
> >> replaced by a tab.
> >>
> >
> > This means that every sequence of 8 spaces should be converted into tabs?
> So, if we indent something 4 times, that becomes a tab instead of 4 times 2
> spaces.
> 
> Correct.
> 
> Richard.
> 

Thanks. Updated patch attached. Ok to submit?

2013-10-15  Paulo Matos  

gcc/
* tree-core.h: Remove extern declaration of tree_code_name.
* tree.h: Prototype for new function get_tree_code_name.
* tree.c: Make tree_code_name static. Define new function
wrapper get_tree_code_name.
(dump_tree_statistics, tree_check_failed, tree_not_check_failed, 
tree_class_check_failed, tree_range_check_failed, 
tree_not_class_check_failed,
omp_clause_check_failed, tree_contains_struct_check_failed, 
tree_operand_check_failed):  Use new wrapper get_tree_code_name 
instead of
calling tree_code_name directly.
* tree-vrp.c (dump_asserts_for): Likewise.
* tree-dump.c (dequeue_and_dump): Likewise.
* tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
* tree-pretty-print.h (pp_unsupported_tree): Likewise.
* lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
* tree-ssa-dom.c (print_expr_hash_elt): Likewise.
* gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs, 
dump_ternary_rhs, 
dump_gimple_assign, dump_gimple_cond, dump_gimple_omp_for): Likewise.
* tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
* tree-ssa-pre.c (print_pre_expr): Likewise.
* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
* print-tree.c (print_node_brief, print_node): Likewise.
* gimple.c (gimple_check_failed): Likewise.
* lto-streamer.c (lto_tag_name, print_lto_report): Likewise.

gcc/cp/
* error.c (code_to_string): Use new wrapper get_tree_code_name.
* cxx-pretty-print.c (pp_cxx_assignment_operator): Likewise.
* pt.c (tsubst): Likewise.
* semantics.c (cxx_eval_constant_expression, 
potential_constant_expression_1): Likewise.
* mangle.c (MANGLE_TRACE_TREE, dump_substitution_candidates, 
add_substitution,
find_substitution): Likewise.

gcc/config/
* frv/frv.c (frv_init_cumulative_args): Use new wrapper 
get_tree_code_name.
* mep/mep.c (mep_validate_vliw): Likewise.
* iq2000/iq2000.c (init_cumulative_args): Likewise.
* rs6000/rs6000.c (init_cumulative_args): Likewise.


tree_code_name-v2.patch
Description: tree_code_name-v2.patch


RE: [PATCH] tree_code_name wrapper

2013-10-15 Thread Paulo Matos
> -Original Message-
> From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches-ow...@gcc.gnu.org] On
> Behalf Of Jakub Jelinek
> Sent: 15 October 2013 15:45
> To: Paulo Matos
> Cc: Richard Biener; Paolo Carlini; gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] tree_code_name wrapper
> 
> The ChangeLog is still wrong:
> 

OK, sorry.
If this is ok now I will open a bottle of champagne.

Thank you all for your time reviewing this. Ok to submit?

2013-10-15  Paulo Matos  

gcc/
* tree-core.h (tree_code_name): Remove.
* tree.h (get_tree_code_name): New prototype.
* tree.c (tree_code_name): Make static.
(get_tree_code_name): New function.
(dump_tree_statistics, tree_check_failed, tree_not_check_failed, 
tree_class_check_failed, tree_range_check_failed,
tree_not_class_check_failed, omp_clause_check_failed,
tree_contains_struct_check_failed, tree_operand_check_failed): Use new
wrapper get_tree_code_name instead of calling tree_code_name directly.
* tree-vrp.c (dump_asserts_for): Likewise.
* tree-dump.c (dequeue_and_dump): Likewise.
* tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
* tree-pretty-print.h (pp_unsupported_tree): Likewise.
* lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
* tree-ssa-dom.c (print_expr_hash_elt): Likewise.
* gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
dump_gimple_omp_for): Likewise.
* tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
* tree-ssa-pre.c (print_pre_expr): Likewise.
* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
* print-tree.c (print_node_brief, print_node): Likewise.
* gimple.c (gimple_check_failed): Likewise.
* lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
* config/frv/frv.c (frv_init_cumulative_args): Likewise.
* config/mep/mep.c (mep_validate_vliw): Likewise.
* config/iq2000/iq2000.c (init_cumulative_args): Likewise.
* config/rs6000/rs6000.c (init_cumulative_args): Likewise.

gcc/cp/
* error.c (code_to_string): Use new wrapper get_tree_code_name.
* cxx-pretty-print.c (pp_cxx_assignment_operator): Likewise.
* pt.c (tsubst): Likewise.
* semantics.c (cxx_eval_constant_expression,
potential_constant_expression_1): Likewise.
* mangle.c (MANGLE_TRACE_TREE, dump_substitution_candidates,
add_substitution, find_substitution): Likewise.

-- 
Paulo Matos


RE: [PATCH] Fix PR58682

2013-10-16 Thread Paulo Matos
> -Original Message-
> From: Mike Stump [mailto:mikest...@comcast.net]
> Sent: 14 October 2013 20:46
> To: Kyrill Tkachov
> Cc: Paulo Matos; gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] Fix PR58682
>
> In this case, I've reviewed the license I suspect you have, and I suspect it 
> does
> not have a grant of enough rights to allow it to be contributed to gcc.
>

Assuming we cannot get the testcase into GCC, can we get the patch into trunk? 
If you try it locally you can definitely see the ICE and that the patch fixes 
it.

-- 
Paulo Matos


RE: [PATCH] tree_code_name wrapper

2013-10-16 Thread Paulo Matos
> -Original Message-
> From: Paolo Carlini [mailto:paolo.carl...@oracle.com]
> Sent: 16 October 2013 12:54
> To: Richard Biener; Paulo Matos
> Cc: Jakub Jelinek; gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] tree_code_name wrapper
> 
> Hi,
> 
> bootstrap is currently broken, I'm going to test and commit the below if
> everything goes well.
> 
> Thanks,
> Paolo.
> 
> ///

Please do. I can't understand how I compiled and ran the tests successfully 
with that issue.

Paulo Matos


RE: [PATCH] tree_code_name wrapper

2013-10-16 Thread Paulo Matos
> -Original Message-
> From: Paolo Carlini [mailto:paolo.carl...@oracle.com]
> Sent: 16 October 2013 12:54
> To: Richard Biener; Paulo Matos
> Cc: Jakub Jelinek; gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] tree_code_name wrapper
> 
> Hi,
> 
> bootstrap is currently broken, I'm going to test and commit the below if
> everything goes well.
> 

Sorry all, it might be because I did --enable-languages=c and that was in the 
C++ part, even though with g++ being used to bootstrap I would have expected it 
to break the build anyway.

Thanks Paolo for fixing it.

-- 
Paulo Matos


RE: Teaching emacs about GCC coding conventions (was Re: [PATCH] tree_code_name wrapper)

2013-10-16 Thread Paulo Matos
For me it worked with:
(add-hook 'c-mode-hook 'gcc-c-mode)
(defun gcc-c-mode()
  ;; set gnu style.
  (c-set-style "gnu")
  ;; TAB offset set to 2
  (setq c-basic-offset 2)
  ;; Tabs should be 8
  (setq indent-tabs-mode t)
  )

Then I simply edit all my software as if it was GCC (haven't found a way to say 
: 'only use this for GCC sources'). I am just missing a good mode for .md files.

Paulo Matos


> -Original Message-
> From: David Malcolm [mailto:dmalc...@redhat.com]
> Sent: 16 October 2013 16:33
> To: Paulo Matos
> Cc: Jakub Jelinek; Richard Biener; Paolo Carlini; gcc-patches@gcc.gnu.org
> Subject: Teaching emacs about GCC coding conventions (was Re: [PATCH]
> tree_code_name wrapper)
> 
> On Tue, 2013-10-15 at 13:19 +, Paulo Matos wrote:
> > > -Original Message-
> > > From: Jakub Jelinek [mailto:ja...@redhat.com]
> > > Sent: 15 October 2013 10:51
> > > To: Paulo Matos
> > > Cc: Richard Biener; Paolo Carlini; gcc-patches@gcc.gnu.org
> > > Subject: Re: [PATCH] tree_code_name wrapper
> > >
> > > On Tue, Oct 15, 2013 at 09:42:17AM +, Paulo Matos wrote:
> > > > Thanks, regarding the indentation I was convinced we used 2 space
> > > > indentation with maximum line length of 80 characters.
> > >
> > > We do, however 8 consecutive spaces in the indentation should be always
> > > replaced by a tab.
> > >
> >
> > This means that every sequence of 8 spaces should be converted into tabs? 
> > So,
> if we indent something 4 times, that becomes a tab instead of 4 times 2 
> spaces.
> >
> > Just to confirm so I can setup my emacs to use this.
> 
> Probably a silly question, but what's the invocation in emacs to do
> this, and is it possible to set up the source tree so that this happens
> automatically for everyone?
> 
> (I've been using whitespace-mode and manually copying-and-pasting tab
> characters, which is clearly suboptimal).
> 



RE: Teaching emacs about GCC coding conventions (was Re: [PATCH] tree_code_name wrapper)

2013-10-17 Thread Paulo Matos
> -Original Message-
> From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches-ow...@gcc.gnu.org] On
> Behalf Of Mike Stump
> Sent: 16 October 2013 23:06
> To: Paulo J.Matos
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: Teaching emacs about GCC coding conventions (was Re: [PATCH]
> tree_code_name wrapper)
> 
> First, we like to wait and let patches bake on mainline before considering 
> back
> porting, this has no bake time yet in our tree.  Second, only patches that 
> impact
> quality enough should be back ported.  I tend to think that this one does not
> impact quality enough to worry about.  Also, you should develop on trunk, not
> 4_8.  Arguably, I would say no.  Now, a release manager can always review 
> approve
> it; it should be very, very low risk.
> 

Makes sense. Thanks for the clarification.

-- 
Paulo Matos


RE: [PATCH] Fix PR58682

2013-10-18 Thread Paulo Matos


> -Original Message-
> From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches-ow...@gcc.gnu.org] On
> Behalf Of Paulo Matos
> Sent: 16 October 2013 09:42
> To: Mike Stump; Kyrill Tkachov
> Cc: gcc-patches@gcc.gnu.org
> Subject: RE: [PATCH] Fix PR58682
> 
> > -Original Message-
> > From: Mike Stump [mailto:mikest...@comcast.net]
> > Sent: 14 October 2013 20:46
> > To: Kyrill Tkachov
> > Cc: Paulo Matos; gcc-patches@gcc.gnu.org
> > Subject: Re: [PATCH] Fix PR58682
> >
> > In this case, I've reviewed the license I suspect you have, and I suspect it
> does
> > not have a grant of enough rights to allow it to be contributed to gcc.
> >
> 
> Assuming we cannot get the testcase into GCC, can we get the patch into trunk?
> If you try it locally you can definitely see the ICE and that the patch fixes 
> it.
> 

ping.

Paulo Matos



RE: [PATCH] Fix PR58682

2013-10-21 Thread Paulo Matos
> -Original Message-
> From: Richard Biener [mailto:richard.guent...@gmail.com]
> Sent: 18 October 2013 13:12
> To: Paulo Matos
> Cc: Mike Stump; Kyrill Tkachov; gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] Fix PR58682
>  
> Please re-post the latest version of the patch and CC Honza.
> 
> Richard.
> 

Patch attached. OK to submit?
Bootstrapped x86_64-unknown-linux-gnu.

2013-10-21  Paulo Matos  

* ipa-inline.c (inline_small_functions): Update max_count if new edges
    are found after inlining.

-- 
Paulo Matos


pr58682.patch
Description: pr58682.patch


RE: [PATCH] Fix PR58682

2013-10-21 Thread Paulo Matos
> -Original Message-
> From: Jan Hubicka [mailto:hubi...@ucw.cz]
> Sent: 21 October 2013 13:21
> To: Paulo Matos
> Cc: Richard Biener; Mike Stump; Kyrill Tkachov; gcc-patches@gcc.gnu.org; Jan
> Hubicka (hubi...@ucw.cz)
> Subject: Re: [PATCH] Fix PR58682
> 
> This won't work - the max_count is there to get things correctly scaled by
> badness calculation.
> Changing max_count would mean the need to recompute all badnesses in the 
> fibheap
> keys.
> I would just cap the edge_count in badness calculation.
> 
> Honza
> 

Makes sense. Thanks for the comment. I have created a new patch. Now attached.

2013-10-21  Paulo Matos  

* ipa-inline.c (edge_badness): Cap edge->count at max_count for badness
calculations.

-- 
PMatos


pr58682-v2.patch
Description: pr58682-v2.patch


[PATCH] fix combine.c:reg_nonzero_bits_for_combine where last_set_mode is narrower than mode

2013-11-29 Thread Paulo Matos
Please find patch for bug discussed in:
http://gcc.gnu.org/ml/gcc/2013-11/msg00571.html

Bootstrapped successfully in x86_64.

2013-11-29  Paulo Matos 
 Eric Botcazou 

* combine.c (reg_nonzero_bits_for_combine): Apply mask transformation
as applied to nonzero_sign_valid fixing bug when last_set_mode has
less precision than mode.


OK to submit?

Paulo Matos




reg_nonzero_bits_for_combine.patch
Description: reg_nonzero_bits_for_combine.patch


Re: [PATCH] fix combine.c:reg_nonzero_bits_for_combine where last_set_mode is narrower than mode

2013-12-01 Thread Paulo Matos

On 30/11/13 11:38, Eric Botcazou wrote:

2013-11-29  Paulo Matos 
 Eric Botcazou 

* combine.c (reg_nonzero_bits_for_combine): Apply mask transformation
as applied to nonzero_sign_valid fixing bug when last_set_mode has
less precision than mode.


Applied, thanks.



Excellent. :) Thanks for submitting.

--
PMatos



[PATCH] Fix typo

2015-05-10 Thread Paulo Matos
OK to commit?

2015-05-10  Paulo Matos
  
* configure.ac: Fix typo.  
* configure: Regenerate.  
  
diff --git a/configure b/configure  
index a3f66ba..8ee279f 100755  
--- a/configure  
+++ b/configure  
@@ -7423,7 +7423,7 @@ fi  
 # multilib is not explicitly enabled.  
 case "$target:$have_compiler:$host:$target:$enable_multilib" in  
   x86_64-*linux*:yes:$build:$build:)  
-# Make sure we have a developement environment that handles 32-bit  
+# Make sure we have a development environment that handles 32-bit  
 dev64=no  
 echo "int main () { return 0; }" > conftest.c  
 ${CC} -m32 -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c  
@@ -7434,7 +7434,7 @@ case "$target:$have_compiler:$host:$target:
$enable_multilib" in  
 fi  
 rm -f conftest*  
 if test x${dev64} != xyes ; then  
-  as_fn_error "I suspect your system does not have 32-bit 
developement libraries (libc and headers). If you have them, rerun 
configure with --enable-multilib. If you do not have them, and want to 
build a 64-bit-only compiler, rerun configure with --disable-multilib." 
"$LINENO" 5
+  as_fn_error "I suspect your system does not have 32-bit 
development libraries (libc and headers). If you have them, rerun 
configure with --enable-multilib. If you do not have them, and want to 
build a 64-bit-only compiler, rerun configure with --disable-multilib." 
"$LINENO" 5
 fi
 ;;
 esac
diff --git a/configure.ac b/configure.ac
index 987dfab..4081fb9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3063,7 +3063,7 @@ fi
 # multilib is not explicitly enabled.
 case "$target:$have_compiler:$host:$target:$enable_multilib" in
   x86_64-*linux*:yes:$build:$build:)
-# Make sure we have a developement environment that handles 32-bit
+# Make sure we have a development environment that handles 32-bit
 dev64=no
 echo "int main () { return 0; }" > conftest.c
 ${CC} -m32 -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
@@ -3074,7 +3074,7 @@ case "$target:$have_compiler:$host:$target:
$enable_multilib" in
 fi 
 rm -f conftest*
 if test x${dev64} != xyes ; then
-  AC_MSG_ERROR([I suspect your system does not have 32-bit 
developement libraries (libc and headers). If you have them, rerun 
configure with --enable-multilib. If you do not have them, and want to 
build a 64-bit-only compiler, rerun configure with --disable-multilib.])
+  AC_MSG_ERROR([I suspect your system does not have 32-bit 
development libraries (libc and headers). If you have them, rerun 
configure with --enable-multilib. If you do not have them, and want to 
build a 64-bit-only compiler, rerun configure with --disable-multilib.])
 fi
 ;;
 esac




[PATCH] Add myself to MAINTAINERS

2015-05-10 Thread Paulo Matos
Somehow I never added myself to the MAINTAINERS file. 
Apologies for that. OK to commit?

2015-05-10  Paulo Matos  

* MAINTAINERS: Add myself as commit after approval.

diff --git a/MAINTAINERS b/MAINTAINERS
index 7dc4c8f..c5d6c99 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -483,6 +483,7 @@ David Malcolm   

 Mikhail Maltsev

 Simon Martin   

 Ranjit Mathew  
+Paulo Matos
 Michael Matz   
 Greg McGary
 Roland McGrath 




Re: [PATCH] Fix typo

2015-05-11 Thread Paulo Matos
On Sun, 10 May 2015 22:07:53 -0600, Jeff Law wrote:

> On 05/10/2015 03:00 PM, Paulo Matos wrote:
> Yes.  This would fall under the obvious rule and can be committed
> without waiting for approvals.
> 
> jeff

Thanks. Committed.
-- 
Paulo Matos



Re: [PATCH] Add myself to MAINTAINERS

2015-05-11 Thread Paulo Matos
On Sun, 10 May 2015 21:08:04 +, Paulo Matos wrote:

> Somehow I never added myself to the MAINTAINERS file.
> Apologies for that. OK to commit?
> 
> 2015-05-10  Paulo Matos  
> 
> * MAINTAINERS: Add myself as commit after approval.
> 
> diff --git a/MAINTAINERS b/MAINTAINERS index 7dc4c8f..c5d6c99 100644 ---
> a/MAINTAINERS +++ b/MAINTAINERS @@ -483,6 +483,7 @@ David Malcolm
> 
>  Mikhail Maltsev
> 
>  Simon Martin
> 
>  Ranjit Mathew  
> +Paulo Matos
>  Michael Matz   
>  Greg McGary
>  Roland McGrath     

Committed as obvious.

-- 
Paulo Matos



[PATCH] Improve patch regexp to ensure that numbers like 3000 do not match

2012-12-04 Thread Paulo Matos
2012-10-19  Paulo Matos
* gcc/testsuite/gcc.dg/tree-ssa/vector-3.c: Ensure we are looking 
for 0.0 and not for something like 3000, which matches current 0.0
pattern.




0001-Improve-regexp-to-ensure-that-numbers-like-3000-do-n.patch
Description: 0001-Improve-regexp-to-ensure-that-numbers-like-3000-do-n.patch


[PATCH] Fix documentation typo: pr50345

2013-05-08 Thread Paulo Matos
Fixes an LTO documentation typo in gcc internals.

08-05-2013 Paulo Matos 
* gcc/doc/lto.texi: Fix typo.

Paulo Matos




lto_docfix_pr50345.patch
Description: lto_docfix_pr50345.patch


[PATCH] Vector mode addresses

2014-01-30 Thread Paulo Matos
As a followup of the thread:
http://gcc.gnu.org/ml/gcc/2014-01/msg00206.html

consider the attached patch for submission. It fixes an ICE in case you try to 
use vector mode addresses and do not have it as mode dependent target hook.
As discussed in the thread adding VECTOR_MODE_P to the target hook is a way to 
avoid ICE but as Richard S. mentioned it's more general to patch GCC up.

Bootstrapped and tested on x86_64-unknown-linux-gnu.

2014-01-30  Paulo Matos  

* simplify-rtx.c (simplify_subreg): Do not adjust address if memory 
   address has vector mode.


OK to submit?

Paulo Matos




vector-mode.patch
Description: vector-mode.patch


RE: [PATCH] Vector mode addresses

2014-01-30 Thread Paulo Matos
> -Original Message-
> From: Richard Sandiford [mailto:rdsandif...@googlemail.com]
> Sent: 30 January 2014 12:43
> To: Paulo Matos
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] Vector mode addresses
> 
> Paulo Matos  writes:
> > As a followup of the thread:
> > http://gcc.gnu.org/ml/gcc/2014-01/msg00206.html
> >
> > consider the attached patch for submission. It fixes an ICE in case
> > you try to use vector mode addresses and do not have it as mode
> > dependent target hook.  As discussed in the thread adding
> > VECTOR_MODE_P to the target hook is a way to avoid ICE but as Richard
> > S. mentioned it's more general to patch GCC up.
> 
> But like I said, I think the VECTOR_MODE_P check should be in
> mode_dependent_address_p (recog.c) rather than here.  If vector
> addresses are supported then they are mode-dependent, since the
> number of elements in the address mode must match the number of
> elements in the MEM mode.


Have I misunderstood what you said:
"If we do support vector addresses than I think the right fix is to
check VECTOR_MODE_P there." 

From this I understood that you agreed that if vector_mode is supported for an 
address the check should be in simplify_rtx as it would prevent all target 
ports from adding the check to their hook, making it therefore more generic. 
You re-enforced this when you said:
"I'd just prefer it
to be in generic code because I think it's a target-independent rule."

Apologies if I completely misunderstood you.

> 
> Thanks,
> Richard


Re: [PATCH] Vector mode addresses

2014-01-30 Thread Paulo Matos

On 30/01/14 14:01, Richard Biener wrote:


I'm curious on where you are seeing MEMs with a vector mode address.
What does that MEM even mean?



Yes, it looks strange but it was the way we came up with to implement an 
instruction that loads from a pair of addresses.


From what I wrote previously to Richard.
"We have an instruction that loads two 32 bit values into a lower and 
upper parts of a 64bit register using a base register and a 64 bit 
register used as a double index.

So,
r1 <- [r0, r2]
means:
low(r1) = [r0 + low(r2)]
high(r1) = [r0 + high(r2)]"


 From the referenced mail:

new_rtx: (mem:V4SI (plus:V4SI (vec_concat:V4SI (vec_concat:V2SI
(const_int 0 [0])
 (const_int 0 [0]))
 (vec_concat:V2SI (const_int 0 [0])
 (const_int 0 [0])))

that should be invalid and somehow lacks the subreg:DI.  The bug is where
that got lost.



I don't think it got lost. GCC was trying to simplify it. That's why my 
patch was in simplify_subreg. GCC was trying to simplify a subreg in 
DImode with this mem rtx as SUBREG_REG and offset 8.


--
Paulo Matos




Re: [PATCH] Vector mode addresses

2014-01-30 Thread Paulo Matos

On 30/01/14 17:10, Richard Sandiford wrote:


Right, in the context:

   Just in case: the point I was trying to make in the second paragraph
   was that the code in the patch only triggers (as you say) because the
   address isn't seen as mode-dependent.  But this kind of address does
   look mode-dependent to me, since it only works for MEM modes that have
   the same number of elements as the index vector.  So this does sound
   like a case where mode_dependent_address_p ought to return true.

   If we do support vector addresses than I think the right fix is to
   check VECTOR_MODE_P there.

   http://gcc.gnu.org/ml/gcc/2014-01/msg00242.html

I.e. there == mode_dependent_address_p (defined in recog.c).


 From this I understood that you agreed that if vector_mode is supported
for an address the check should be in simplify_rtx as it would prevent
all target ports from adding the check to their hook, making it
therefore more generic. You re-enforced this when you said:
"I'd just prefer it
to be in generic code because I think it's a target-independent rule."


No, I meant that I'd prefer it to be done in the target-independent
mode_dependent_address_p function.  This was in response to:

   Well, isn't it the case that a mem with vector mode is always mode
   dependent, in which case adding VECTOR_MODE_P to mode-dependent target
   hook would be enough making the patch not so useful?

   http://gcc.gnu.org/ml/gcc/2014-01/msg00248.html

where it sounded like you were instead going to add the check to your
target's TARGET_MODE_DEPENDENT_ADDRESS_P hook.  I don't think it makes
sense to defer the VECTOR_MODE_P check to the target hook since I don't
know how target-independent code could attach any meaning to something
like (mem:V4HI (reg:V4SI ...)) -> (mem:DI (reg:V4SI ...)).

Again, this is all on the basis that vector-mode addresses really
are supported.



Now I understand what you mean. I was pretty confused by what you meant 
by target-independent mode_dependent_address_p because initially I had 
the feeling that targetm.mode_dependent_address_p was being called in 
simplify_rtx but there's actually a mode_dependent_address_p in recog.c 
and there is where you suggested to add the check _if_ vector modes are 
supported. Got it.


I apologize for my misunderstanding and thank you for your patience.

--
Paulo Matos


Thanks,
Richard





Re: [PATCH] Vector mode addresses

2014-01-30 Thread Paulo Matos

On 30/01/14 20:47, Jakub Jelinek wrote:

On Thu, Jan 30, 2014 at 08:27:47PM +, Paulo Matos wrote:

Yes, it looks strange but it was the way we came up with to
implement an instruction that loads from a pair of addresses.

 From what I wrote previously to Richard.
"We have an instruction that loads two 32 bit values into a lower
and upper parts of a 64bit register using a base register and a 64
bit register used as a double index.
So,
r1 <- [r0, r2]
means:
low(r1) = [r0 + low(r2)]
high(r1) = [r0 + high(r2)]"


That sounds like gather instruction e.g. i?86 AVX2/AVX512F has.
I don't like using vector mode for the address though, i?86 uses UNSPECs and
IMNSHO you should too.  Or express it as vec_concat of two MEM loads
where address of each one will be the base + vec_select of the vector
register.

Jakub



I will take a closer look at our pattern and how i?86 implements it.

Thanks for the advice.

Paulo Matos



Re: [PATCH] [lto/55113] Fix use of -fshort-double with -flto for powerpc

2014-03-05 Thread Paulo Matos

On 05/03/2014 11:51, Richard Biener wrote:
On Wed, Mar 5, 2014 at 12:43 PM, Dominique Dhumieres 
 wrote:


Revision 208312 causes

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60427


Uhm.  pointer comparison against double_type_node ...

I'd say we want to revert the patch.  Paulo, please do that.  Let's
do the alternate approach of marking -fshort-double eligible for LTO
as well and handle it there properly.



Sure, I will prepare a new patch and post it for approval by the end of 
the day.


Apologies for the regression.
--
Paulo Matos


Re: [PATCH] [lto/55113] Fix use of -fshort-double with -flto for powerpc

2014-03-06 Thread Paulo Matos

On 06/03/2014 11:19, Richard Biener wrote:


I have reverted the patch for now.

Richard.


That's fine Richard, thanks. I got stuck with another issue in the 
meantime but I will look at it again very soon.


--
Paulo Matos


Re: [PATCH] [lto/55113] Fix use of -fshort-double with -flto for powerpc

2014-03-06 Thread Paulo Matos

On 06/03/14 11:19, Richard Biener wrote:

On Wed, Mar 5, 2014 at 12:55 PM, Paulo Matos  wrote:

On 05/03/2014 11:51, Richard Biener wrote:


On Wed, Mar 5, 2014 at 12:43 PM, Dominique Dhumieres 
wrote:



Revision 208312 causes

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60427



Uhm.  pointer comparison against double_type_node ...

I'd say we want to revert the patch.  Paulo, please do that.  Let's
do the alternate approach of marking -fshort-double eligible for LTO
as well and handle it there properly.



Sure, I will prepare a new patch and post it for approval by the end of the
day.

Apologies for the regression.


I have reverted the patch for now.

Richard.




Please find new patch attached. I have enabled LTO for short-double and 
passed flag_short_double to build_common_tree_nodes.


I have tested this for C on powerpc-eabipse (target for which we are 
fixing pr55113), and C/Fortran on a x86_64. Saw no regressions.


OK to commit?

gcc/c-family/
2014-03-06  Paulo Matos  

* c.opt: Enable LTO FE for fshort-double.

gcc/lto/
2014-03-06  Paulo Matos  

* lto-lang.c (lto_init): Pass flag_short_double to
build_common_tree_nodes.

gcc/testsuite/
2014-03-06  Paulo Matos  

* gcc.dg/lto/pr55113_0.c: New testcase.


--
Paulo Matos
Index: gcc/c-family/c.opt
===
--- gcc/c-family/c.opt	(revision 208385)
+++ gcc/c-family/c.opt	(working copy)
@@ -1141,7 +1141,7 @@ C++ ObjC++ Optimization Var(flag_rtti) I
 Generate run time type descriptor information
 
 fshort-double
-C ObjC C++ ObjC++ Optimization Var(flag_short_double)
+C ObjC C++ ObjC++ LTO Optimization Var(flag_short_double)
 Use the same size for double as for float
 
 fshort-enums
Index: gcc/lto/lto-lang.c
===
--- gcc/lto/lto-lang.c	(revision 208385)
+++ gcc/lto/lto-lang.c	(working copy)
@@ -1158,7 +1158,7 @@ lto_init (void)
   flag_generate_lto = (flag_wpa != NULL);
 
   /* Create the basic integer types.  */
-  build_common_tree_nodes (flag_signed_char, /*short_double=*/false);
+  build_common_tree_nodes (flag_signed_char, flag_short_double);
 
   /* The global tree for the main identifier is filled in by
  language-specific front-end initialization that is not run in the
Index: gcc/testsuite/gcc.dg/lto/pr55113_0.c
===
--- gcc/testsuite/gcc.dg/lto/pr55113_0.c	(revision 0)
+++ gcc/testsuite/gcc.dg/lto/pr55113_0.c	(working copy)
@@ -0,0 +1,13 @@
+/* PR 55113 */
+/* { dg-lto-do link } */
+/* { dg-lto-options { { -flto -fshort-double -O0 } } }*/
+/* { dg-skip-if "PR60410" { { x86_64-*-* i?86-*-* } && lp64 } } */
+
+int 
+main(void)
+{
+  float a = 1.0;
+  float b = 2.0;
+  double f = a + b * 1e-12;
+  return (int)f - 1;
+}


Re: [PATCH] [lto/55113] Fix use of -fshort-double with -flto for powerpc

2014-03-08 Thread Paulo Matos

On 07/03/14 09:03, Richard Biener wrote:


Btw, can you check the attached as well?  It makes sure all TUs
have -fshort-double set consistently and it automatically enables
it at link-time, not allowing to override the setting.

If it works for you please check it in, too.  (I can't really test it
because -fshort-double brokeness on x86_64).



I have tested it and everything looks fine. I have now committed all the 
code and testcase.  Hopefully it's now sorted.


Thanks for your help,

Paulo Matos


Thanks,
Richard.




--
PMatos


Fix PR55761

2012-12-20 Thread Paulo Matos
2012-12-20 Paulo Matos 

PR tree-optimization/55761
* tree-tailcall.c (process_assignment): Use build_int_cst only for 
integral types,
for every other type that managed to pass all conditions use 
fold_build1.





pr55761.patch
Description: pr55761.patch


RE: Fix PR55761

2012-12-20 Thread Paulo Matos
> -Original Message-
> From: Richard Biener [mailto:richard.guent...@gmail.com]
> Sent: 20 December 2012 16:13
> To: Paulo Matos
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: Fix PR55761
> 
> On Thu, Dec 20, 2012 at 5:06 PM, Paulo Matos  wrote:
> > 2012-12-20 Paulo Matos 
> >
> > PR tree-optimization/55761
> > * tree-tailcall.c (process_assignment): Use build_int_cst only for
> integral types,
> > for every other type that managed to pass all conditions use
> fold_build1.
> 
>  case NEGATE_EXPR:
>if (FLOAT_TYPE_P (TREE_TYPE (op0)))
>  *m = build_real (TREE_TYPE (op0), dconstm1);
> +  else if (INTEGRAL_TYPE_P (TREE_TYPE (non_ass_var)))
> +*m = build_int_cst (TREE_TYPE (non_ass_var), -1);
>else
> -*m = build_int_cst (TREE_TYPE (op0), -1);
> +*m = fold_build1 (NEGATE_EXPR, TREE_TYPE (non_ass_var),
> non_ass_var);
> 
> looks bogus (op0 vs. non_ass_var). 

Correct. My mistake applying same MINUS_EXPR pattern to NEGATE_EXPR case.

> I'd rather use fold_unary here as I'm not
> sure if callers handle a NEGATE_EXPR in *m.  And I'd use that
> unconditionally,
> this last case looks like it will have very weak testing coverage.  Thus,
> 
>*m = fold_unary (NEGATE_EXPR, TREE_TYPE (op0), op0);
> 
> and also in the MINUS_EXPR case.
> 

Sounds reasonable. That would simplify it, it seems. Will fix patch and replace 
it in PR.

> Richard.