Re: [wide-int] Handle zero-precision INTEGER_CSTs again

2014-05-03 Thread Kenneth Zadeck
The doc at wide-int.h:136 needs work.The doc currently says that the precision and length are always greater than 0. This is now not correct. It also says that the bits above the precision are defined to be the sign extension if the precision does not cover that block. I do not know

Re: [wide-int] Handle zero-precision INTEGER_CSTs again

2014-05-03 Thread Kenneth Zadeck
Then with a fixed comment, this patch is fine. kenny On 05/03/2014 02:59 PM, Richard Sandiford wrote: Kenneth Zadeck writes: The doc at wide-int.h:136 needs work.The doc currently says that the precision and length are always greater than 0. This is now not correct. It also says

we are starting the wide int merge

2014-05-06 Thread Kenneth Zadeck
please hold off on committing patches for the next couple of hours as we have a very large merge to do. thanks. kenny

fallout on x86-64 from the wide-int merge.

2014-05-06 Thread Kenneth Zadeck
here is a comparison. The two areas were built using configure with no options at all on x86-64. The comparison is between revision 210112 and 210113.Tsan is very unhappy but everything else looks ok.I know that this worked a couple of days before the merge. I know that there was some

Re: [wide-int] Add fast path for hosts with HWI widening multiplication

2014-05-08 Thread Kenneth Zadeck
everyone who has a private port will hate you forever. note that i have 2 of them. On 05/08/2014 02:31 PM, Richard Sandiford wrote: "Joseph S. Myers" writes: On Thu, 8 May 2014, Ramana Radhakrishnan wrote: Ramana Radhakrishnan * wide-int.cc (UTItype): Define. (UDWtype)

[PATCH]: fix pr61111 Fixed width of mask.

2014-05-09 Thread Kenneth Zadeck
2014-05-09 Kenneth Zadeck PR middle-end/6 * fold-const.c (fold_binary_loc): Changed width of mask. committed as revision 210274. kenny Index: gcc/fold-const.c === --- gcc/fold-const.c (revision 210253) +++ gcc/fold

[wide-int] fixed vector testcases.

2014-01-16 Thread Kenneth Zadeck
several test cases started failing as a result of making the size of the wide-int buffer smaller. this patch fixes them. This failure was unrelated to the wide-int buffer size directly, but a hard constant in the truck code was replaced by MAX_BITSIZE_MODE_ANY_INT when it should have been repl

Re: [wide-int 5/8] Use LOG2_BITS_PER_UNIT

2014-04-22 Thread Kenneth Zadeck
On 04/22/2014 04:02 PM, Richard Sandiford wrote: Looks like a few uses of the old idiom: BITS_PER_UNIT == 8 ? 3 : exact_log2 (BITS_PER_UNIT) I do not think that these crept in as much as they were never squished out. have crept in. This patch replaces them with LOG2_BITS_PER_UNIT. Test

Re: [PATCH][RFC][wide-int] Fix some build errors on arm in wide-int branch and report ICE

2014-04-23 Thread Kenneth Zadeck
On 04/23/2014 05:47 AM, Richard Biener wrote: On Tue, Apr 22, 2014 at 6:04 PM, Mike Stump wrote: On Apr 22, 2014, at 8:33 AM, Richard Sandiford wrote: Kyrill Tkachov writes: Ping. http://gcc.gnu.org/ml/gcc-patches/2014-04/msg00769.html Any ideas? I recall chatter on IRC that we want to mer

Re: [PATCH][RFC][wide-int] Fix some build errors on arm in wide-int branch and report ICE

2014-04-23 Thread Kenneth Zadeck
On 04/23/2014 10:36 AM, Richard Biener wrote: On Wed, Apr 23, 2014 at 4:29 PM, Kenneth Zadeck wrote: On 04/23/2014 05:47 AM, Richard Biener wrote: On Tue, Apr 22, 2014 at 6:04 PM, Mike Stump wrote: On Apr 22, 2014, at 8:33 AM, Richard Sandiford wrote: Kyrill Tkachov writes: Ping. http

Re: [wide-int] Fix signed min / -1 quotient

2014-04-24 Thread Kenneth Zadeck
This is fine with me. kenny On 04/24/2014 10:34 AM, Richard Sandiford wrote: For signed min / -1 we set the overflow flag (good) but also returned a quotient of 0. It should be 0x80...0 instead. Since that's also the value of the original dividend, we can just copy the representation over. T

patch for machine dependent rtl section to hide case statements for different types of constants.

2012-08-20 Thread Kenneth Zadeck
This patch started out to be a purely mechanical change to the switch statements so that the ones that are used to take apart constants can be logically grouped.This is important for the next patch that I will submit this week that frees the rtl level from only being able to represent large

Re: patch for machine dependent rtl section to hide case statements for different types of constants.

2012-08-20 Thread Kenneth Zadeck
I of course meant the machine "independent" not "dependent" On 08/20/2012 09:50 AM, Kenneth Zadeck wrote: This patch started out to be a purely mechanical change to the switch statements so that the ones that are used to take apart constants can be logically grouped.T

Re: patch for machine independent rtl section to hide case statements for different types of constants.

2012-08-21 Thread Kenneth Zadeck
Now that I have had a chance to talk to Richard, I have now done everything that he requested in his email. Here is the new patch and changelog. Everything was tested on x86-64. 2012-08-21 Kenneth Zadeck * alias.c (rtx_equal_for_memref_p): Convert constant cases. * combine.c

Re: patch for machine independent rtl section to hide case statements for different types of constants.

2012-08-21 Thread Kenneth Zadeck
it would have been tough without the second snippit On 08/21/2012 01:02 PM, Richard Sandiford wrote: Richard Sandiford writes: switch (code) { -case CONST_INT: -case CONST_DOUBLE: -case CONST_FIXED: +CASE_CONST_UNIQUE: case SYMBOL_REF: case CONST: cas

Re: patch for machine independent rtl section to hide case statements for different types of constants.

2012-08-21 Thread Kenneth Zadeck
make more sense to have the rtxs be consistent rather than rtx/mode consistent. kenny On 08/21/2012 12:56 PM, Richard Sandiford wrote: Kenneth Zadeck writes: I plan to commit this in a few days unless someone has some comments. This is a mostly trivial patch and the changes from that are

Re: patch for machine independent rtl section to hide case statements for different types of constants.

2012-08-23 Thread Kenneth Zadeck
All changes made as Richard requested. Retested on x86-64. committed as revision 190627 2012-08-23 Kenneth Zadeck * alias.c (rtx_equal_for_memref_p): Convert constant cases. * combine.c (find_single_use_1, mark_used_regs_combine): Convert to CASE_CONST_ANY. * cse.c

Re: new sign/zero extension elimination pass

2012-07-11 Thread Kenneth Zadeck
Tom, I have a problem with the approach that you have taken here. I believe that this could be a very useful addition to gcc so I am in general very supportive, but i think you are missing an important case. My problem is that it the pass does not actually look at the target and make any d

Re: new sign/zero extension elimination pass

2012-07-12 Thread Kenneth Zadeck
, I see I replied to your original message that had the wrong CC, I'm now CC-ing gcc-patches@gcc.gnu.org. Thanks, - Tom On 12/07/12 11:05, Tom de Vries wrote: On 12/07/12 03:39, Kenneth Zadeck wrote: Tom, I have a problem with the approach that you have taken here. I believe that this cou

Re: new sign/zero extension elimination pass

2012-07-13 Thread Kenneth Zadeck
wrote: On 12/07/12 14:04, Kenneth Zadeck wrote: you are on the right track with the example but combine will not get this unless everything is in the same bb. the whole point of having a separate pass for doing extension elimination is that it needs to be done over the entire function. There is a

Re: new sign/zero extension elimination pass

2012-07-17 Thread Kenneth Zadeck
the pass does not handle induction variables, i.e. variables that feed into themselves. kenny On 07/13/2012 03:53 AM, Tom de Vries wrote: On 12/07/12 14:04, Kenneth Zadeck wrote: you are on the right track with the example but combine will not get this unless everything is in the same bb. the

cleanup of CONST_DOUBLE.

2012-07-29 Thread Kenneth Zadeck
on the x86-64. 2012-07-29 Kenneth Zadeck * cfgexpand.c (expand_debug_locations): Encapsulate test for CONST_DOUBLE in macro. * combine.c (try_combine, gen_lowpart_for_combine): Ditto. * cprop.c (implicit_set_cond_p): Ditto. * cselib.c (rtx_equal_for_cselib_1): Ditto

Re: cleanup of CONST_DOUBLE.

2012-07-29 Thread Kenneth Zadeck
sorry, will fix all of this. thanks. On 07/29/2012 12:33 PM, Richard Sandiford wrote: Kenneth Zadeck writes: Given that Richard Sandiford advised on all of the non trivial changes, I am going to check this patch in in the next few days unless i hear some comments otherwise. TBH I'd

Re: cleanup of CONST_DOUBLE.

2012-07-29 Thread Kenneth Zadeck
I will add the comment. However, my hope is that will be short lived knowledge, but i am a couple of patches away from that. kenny On 07/29/2012 05:31 PM, Steven Bosscher wrote: On Sun, Jul 29, 2012 at 6:11 PM, Kenneth Zadeck wrote: * rtl.h (CONST_DOUBLE_AS_INT_P

Re: cleanup of CONST_DOUBLE.

2012-08-02 Thread Kenneth Zadeck
bootstrapped and regression tested on x86-64. committed as revision 190105 2012-08-02 Kenneth Zadeck * cfgexpand.c (expand_debug_locations): Encapsulate test for CONST_DOUBLE in macro. * combine.c (try_combine, gen_lowpart_for_combine): Ditto. * cprop.c (implicit_set_cond_p

Re: [PATCH] Fix overzealous DSE on sparc

2012-05-02 Thread Kenneth Zadeck
this looks ok to me, but I am going to defer this to richard for final acceptance. his contribution to this pass was his deep knowledge of rtl so that we could get the scanning correct and this is clearly in that domain. He may have some trick that does not throw all of the baby out with th

patch to clean up the many ways of saying 2 * HOST_BITS_PER_WIDE_INT

2012-05-31 Thread Kenneth Zadeck
trapped on x86-64. 2012-05-31 Kenneth Zadeck * expmed.c (expand_mult, choose_multiplier): Change "2 * HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT". * expr.c (convert_modes): Likewise. * explow.c (plus_constant): Likewise. * fixed-value.c (fi

Re: patch to clean up the many ways of saying 2 * HOST_BITS_PER_WIDE_INT

2012-06-02 Thread Kenneth Zadeck
committed as revision 188139 2012-06-2 Kenneth Zadeck * expmed.c (expand_mult, choose_multiplier): Change "2 * HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT". * expr.c (convert_modes): Likewise. * explow.c (plus_constant): Likewise. * fixed-valu

obvious fix to simplify-rtx.c

2012-06-09 Thread Kenneth Zadeck
ti mode shifts on an llp64 platform. bootstrapped and regression tested on x86-64. committed as revision 188359. Kenny 2012-06-09 Kenneth Zadeck * simplify-rtx.c (simplify_const_binary_operation): Fixed shift count trucation. Index: gcc/simplify-rtx.c

Re: Passes uses rather than defs to df_set_dead_notes_for_mw

2011-08-26 Thread Kenneth Zadeck
this looks right to me. ok for commit. On 08/26/2011 09:54 AM, Richard Sandiford wrote: As described here: http://gcc.gnu.org/ml/gcc/2011-08/msg00294.html df is currently failing to create REG_DEAD notes for the last use of a multi-reg hard register. This appears to be a typo: df_set_

[C Patch]: pr52543

2012-03-29 Thread Kenneth Zadeck
debugging the new logic. Both of these preprocessor symbols are documented at the top of the pass. I have tested this on an x86_64 with both the force lowering on and off and neither cause any regressions as well as extensive testing on my port. Ok to commit? Kenny 2012-03-29 Kenneth Zadeck

Re: [C Patch]: pr52543

2012-03-30 Thread Kenneth Zadeck
+ There are two useful preprocessor defines for use by maintainers: + + #define LOG_COSTS + + if you wish to see the actual cost estimates that are being used + for each mode wider than word mode and the cost estimates for zero + extension and the shifts. This can be useful when po

Re: [C Patch]: pr52543

2012-03-30 Thread Kenneth Zadeck
On 03/30/2012 10:39 AM, Georg-Johann Lay wrote: This patch takes a different approach to fixing PR52543 than does the patch in http://gcc.gnu.org/ml/gcc-patches/2012-03/msg00641.html This patch transforms the lower-subreg pass(es) from unconditionally splitting wide moves, zero extensions, an

Re: [C Patch]: pr52543

2012-03-30 Thread Kenneth Zadeck
"r" (_a3) : "memory"); _a1; }); if (__builtin_expect (((unsigned int) (_sys_result)>= 0xf001u), 0)) { (__libc_errno = ((-(_sys_result; _sys_result = (unsigned int) -1; } (int) _sys_result; }) : __write (f->_fileno, data, to_do)); if

Re: [C Patch]: pr52543

2012-03-31 Thread Kenneth Zadeck
New version of the patch, with all of Richard Sandiford's comments applied and retested. Ok for commit? Kenny 2012-03-31 Kenneth Zadeck * toplev.c (backend_init_target): Call initializer for lower-subreg pass. * lower-subreg.c (target_info): New static var. (compute_move

Re: [C Patch]: pr52543

2012-04-03 Thread Kenneth Zadeck
Richard, thanks, for doing the changes.In particular, i did not really understand how the target stuff was supposed to work. I have one issue with the changes that you made. I had actually decided that the speed/size decision was not relevant to this patch.The problem is that since t

Re: [DF] Replace various bitmaps with HARD_REG_SETs

2011-07-27 Thread Kenneth Zadeck
i would like to see more testing on other platforms. this is a large patch. but otherwise it looks ok. On 07/27/2011 08:26 AM, Dimitrios Apostolou wrote: Hello list, attached is a fairly intrusive patch that replaces many bitmaps in DF with HARD_REG_SETs. Tested on i386 - no regressions (bes

Re: [DF] [performance] generate DF_REF_BASE REFs in REGNO order

2011-07-29 Thread Kenneth Zadeck
were these tested on any platform aside from x86? On 07/29/2011 01:26 PM, Paolo Bonzini wrote: On 07/29/2011 07:23 PM, Dimitrios Apostolou wrote: 2011-07-29 Dimitrios Apostolou Paolo Bonzini (df_def_record_1): Assert a parallel must contain an EXPR_LIST at this

Re: [DF] [performance] generate DF_REF_BASE REFs in REGNO order

2011-07-29 Thread Kenneth Zadeck
i really think that patches of this magnitude having to with the rtl level should be tested on more than one platform. kenny On 07/29/2011 01:39 PM, Dimitrios Apostolou wrote: Completely forgot it: Tested on i386, no regressions. Dimitrios

Re: [DF] [performance] generate DF_REF_BASE REFs in REGNO order

2011-07-29 Thread Kenneth Zadeck
you are the best kenny On 07/29/2011 05:48 PM, Steven Bosscher wrote: On Fri, Jul 29, 2011 at 7:57 PM, Dimitrios Apostolou wrote: On Fri, 29 Jul 2011, Kenneth Zadeck wrote: i really think that patches of this magnitude having to with the rtl level should be tested on more than one

Re: [PATCH] Fix RTL DSE compile time hog (PR rtl-optimization/48141)

2011-03-15 Thread Kenneth Zadeck
so how much time does this save? I agree that this is a useful simplification, but it seems unlikely to be that important in real code. it seems like the 5000 store test would in general provide a better safety valve. Kenny On 03/15/2011 07:05 PM, Jakub Jelinek wrote: Hi! On the attached t

Re: [PATCH] Fix RTL DSE compile time hog (PR rtl-optimization/48141)

2011-03-16 Thread Kenneth Zadeck
, 2011 at 09:46:20AM +0100, Paolo Bonzini wrote: On 03/16/2011 12:12 AM, Kenneth Zadeck wrote: so how much time does this save? I agree that this is a useful simplification, but it seems unlikely to be that important in real code. it seems like the 5000 store test would in general provide a bett

Re: [PATCH] Fix -fcrossjumping at -O1 (PR rtl-optimization/48156)

2011-03-18 Thread Kenneth Zadeck
I believe that this is not the right way to go. if someone specifies -fcrossjumping, then the pass should turn on live for the duration of the pass just as ifcvt does.If they ask for crossjumping you should give them crossjumping and not some crippled version of it. kenny On 03/18/201

Re: [PATCH] Fix -fcrossjumping at -O1 (PR rtl-optimization/48156)

2011-03-18 Thread Kenneth Zadeck
I could be happy with both patches. On 03/18/2011 12:25 PM, Paolo Bonzini wrote: On Fri, Mar 18, 2011 at 17:23, Kenneth Zadeck wrote: I believe that this is not the right way to go. if someone specifies -fcrossjumping, then the pass should turn on live for the duration of the pass just as

Re: [PATCH] Fix -fcrossjumping at -O1 (PR rtl-optimization/48156)

2011-03-18 Thread Kenneth Zadeck
i see your point.I had forgotten that crossjumping is not really a pass, it is more of an infectious agent. On 03/18/2011 01:45 PM, Paolo Bonzini wrote: On Fri, Mar 18, 2011 at 17:31, Jakub Jelinek wrote: On Fri, Mar 18, 2011 at 12:23:11PM -0400, Kenneth Zadeck wrote: I believe that

Re: [PATCH] Fix -fcrossjumping at -O1 (PR rtl-optimization/48156)

2011-03-19 Thread Kenneth Zadeck
On 03/19/2011 05:19 AM, Paolo Bonzini wrote: On Fri, Mar 18, 2011 at 19:18, Kenneth Zadeck wrote: yes, but i think that the reason this is a pr is that it seems to be needed for correctness. Note that df_get_bb_dirty is defaulting to "return false", not "abort".

Re: [PATCH] Fix -fcrossjumping at -O1 (PR rtl-optimization/48156)

2011-03-19 Thread Kenneth Zadeck
On 03/19/2011 08:15 AM, Jakub Jelinek wrote: On Sat, Mar 19, 2011 at 08:08:48AM -0400, Kenneth Zadeck wrote: On 03/19/2011 05:19 AM, Paolo Bonzini wrote: On Fri, Mar 18, 2011 at 19:18, Kenneth Zadeck wrote: yes, but i think that the reason this is a pr is that it seems to be needed for

Re: [PATCH] Fix -fcrossjumping at -O1 (PR rtl-optimization/48156)

2011-03-19 Thread Kenneth Zadeck
On 03/19/2011 09:01 AM, Jakub Jelinek wrote: On Sat, Mar 19, 2011 at 08:48:55AM -0400, Kenneth Zadeck wrote: i think that there are two separate questions here: 1) should your original patch go in as you did it, or should it go in with the last "return false" be an ab

Re: [PATCH] Fix -fcrossjumping at -O1 (PR rtl-optimization/48156)

2011-03-20 Thread Kenneth Zadeck
yes On 03/20/2011 08:44 AM, Jakub Jelinek wrote: On Sat, Mar 19, 2011 at 09:42:26AM -0400, Kenneth Zadeck wrote: i think that this is the right way to go.my view is not just what the code currently does, but also from the perspective of the way i want this to work as the back ends evolve

Re: RFC: PATCH: Remove 26 element limit in vector

2011-03-31 Thread Kenneth Zadeck
we hit this limit trying to write the explicit semantics for a vec_interleave_evenv32qi. ;;(define_insn "vec_interleave_evenv32qi" ;; [(set (match_operand:V32QI 0 "register_operand" "=r") ;;(vec_select:V32QI ;; (vec_concat:V64QI ;;(match_operand:V32QI 1 "register_operand" "0")

<    1   2   3   4