public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Richard Biener <richard.guenther@gmail.com>
To: Kenneth Zadeck <zadeck@naturalbridge.com>
Cc: Mike Stump <mikestump@comcast.net>,
	gcc-patches <gcc-patches@gcc.gnu.org>,
		rdsandiford@googlemail.com, Lawrence Crowl <crowl@google.com>
Subject: Re: patch to fix constant math - 4th patch - the wide-int class.
Date: Tue, 23 Oct 2012 14:33:00 -0000	[thread overview]
Message-ID: <CAFiYyc2hQLUNzei2_cFmfDqV8GQORAMSwehrS_HEqg+r7j9Wjw@mail.gmail.com> (raw)
In-Reply-To: <50743E2B.6000104@naturalbridge.com>

On Tue, Oct 9, 2012 at 5:09 PM, Kenneth Zadeck <zadeck@naturalbridge.com> wrote:
> This patch implements the wide-int class.    this is a more general version
> of the double-int class and is meant to be the eventual replacement for that
> class.    The use of this class removes all dependencies of the host from
> the target compiler's integer math.
>
> I have made all of the changes i agreed to in the earlier emails. In
> particular, this class internally maintains a bitsize and precision but not
> a mode.     The class now is neutral about modes and tree-types.    the
> functions that take modes or tree-types are just convenience functions that
> translate the parameters into bitsize and precision and where ever there is
> a call that takes a mode, there is a corresponding call that takes a
> tree-type.
>
> All of the little changes that richi suggested have also been made.
>
> The buffer sizes is now twice the size needed by the largest integer mode.
> This gives enough room for tree-vrp to do full multiplies on any type that
> the target supports.
>
> Tested on x86-64.
>
> This patch depends on the first three patches.   I am still waiting on final
> approval on the hwint.h patch.
>
> Ok to commit?

diff --git a/gcc/wide-int.h b/gcc/wide-int.h
new file mode 100644
index 0000000..efd2c01
--- /dev/null
+++ b/gcc/wide-int.h
...
+#ifndef GENERATOR_FILE

The whole file is guarded with that ... why?  That is bound to be fragile once
use of wide-int spreads?  How do generator programs end up including
this file if they don't need it at all?

+#include "tree.h"
+#include "hwint.h"
+#include "options.h"
+#include "tm.h"
+#include "insn-modes.h"
+#include "machmode.h"
+#include "double-int.h"
+#include <gmp.h>
+#include "insn-modes.h"
+

That's a lot of tree and rtl dependencies.  double-int.h avoids these by
placing conversion routines in different headers or by only resorting to
types in coretypes.h.  Please try to reduce the above to a minimum.

+  HOST_WIDE_INT val[2 * MAX_BITSIZE_MODE_ANY_INT / HOST_BITS_PER_WIDE_INT];

are we sure this rounds properly?  Consider a port with max byte mode
size 4 on a 64bit host.

I still would like to have the ability to provide specializations of wide_int
for "small" sizes, thus ideally wide_int would be a template templated
on the number of HWIs in val.  Interface-wise wide_int<2> should be
identical to double_int, thus we should be able to do

typedef wide_int<2> double_int;

in double-int.h and replace its implementation with a specialization of
wide_int.  Due to a number of divergences (double_int is not a subset
of wide_int) that doesn't seem easily possible (one reason is the
ShiftOp and related enums you use).  Of course wide_int is not a
template either.  For the hypotetical embedded target above we'd
end up using wide_int<1>, a even more trivial specialization.

I realize again this wide-int is not what your wide-int is (because you
add a precision member).  Still factoring out the "common"s of
wide-int and double-int into a wide_int_raw <> template should be
possible.

+class wide_int {
+  /* Internal representation.  */
+
+  /* VAL is set to a size that is capable of computing a full
+     multiplication on the largest mode that is represented on the
+     target.  The full multiplication is use by tree-vrp.  If
+     operations are added that require larger buffers, then VAL needs
+     to be changed.  */
+  HOST_WIDE_INT val[2 * MAX_BITSIZE_MODE_ANY_INT / HOST_BITS_PER_WIDE_INT];
+  unsigned short len;
+  unsigned int bitsize;
+  unsigned int precision;

The len, bitsize and precision members need documentation.  At least
one sounds redundant.

+ public:
+  enum ShiftOp {
+    NONE,
NONE is never a descriptive name ... I suppose this is for arithmetic vs.
logical shifts?
+    /* There are two uses for the wide-int shifting functions.  The
+       first use is as an emulation of the target hardware.  The
+       second use is as service routines for other optimizations.  The
+       first case needs to be identified by passing TRUNC as the value
+       of ShiftOp so that shift amount is properly handled according to the
+       SHIFT_COUNT_TRUNCATED flag.  For the second case, the shift
+       amount is always truncated by the bytesize of the mode of
+       THIS.  */
+    TRUNC

ah, no, it's for SHIFT_COUNT_TRUNCATED.  "mode of THIS"?  Now
it's precision I suppose.  That said, handling SHIFT_COUNT_TRUNCATED
in wide-int sounds over-engineered, the caller should be responsible
of applying SHIFT_COUNT_TRUNCATED when needed.

+  enum SignOp {
+    /* Many of the math functions produce different results depending
+       on if they are SIGNED or UNSIGNED.  In general, there are two
+       different functions, whose names are prefixed with an 'S" and
+       or an 'U'.  However, for some math functions there is also a
+       routine that does not have the prefix and takes an SignOp
+       parameter of SIGNED or UNSIGNED.  */
+    SIGNED,
+    UNSIGNED
+  };

double-int and _all_ of the rest of the middle-end uses a 'int uns' parameter
for this.  _Please_ follow that.  Otherwise if you communicate between
those interfaces you have to to uns ? UNSIGNED : SIGNED and
signop == UNSIGNED ? 1 : 0 all over the place.

+  static wide_int from_shwi (HOST_WIDE_INT op0, unsigned int bitsize,
+                            unsigned int precision);
+  static wide_int from_shwi (HOST_WIDE_INT op0, unsigned int bitsize,
+                            unsigned int precision, bool *overflow);

I suppose , bool *overflow = NULL would do as well?  What's the
distinction between bitsize and precision (I suppose, see the above
question)?  I suppose precision <= bitsize and bits above precision
are sign/zero extended (and the rest of the val[] array contains undefined
content?)?  But we also have 'len', which then matches bitsize (well
it may be larger).  So IMHO either bitsize or len is redundant.  At least
the tree level nowhere considers partial integer modes special this way
(only the precision is ever taken into account, but we always sign-/zero-extend
to the whole double-int - thus 'len' in wide-int terms).

+  inline static wide_int from_hwi (HOST_WIDE_INT op0, const_tree type);
+  inline static wide_int from_hwi (HOST_WIDE_INT op0, const_tree type,
+                                  bool *overflow);

Are you needing this overload or are you adding it for "completeness"?
Because this interface is wrong(TM), and whoever calls it has at least
cleanup opportunities ... from_tree or from_rtx makes sense.

Also in which cases do you need "overflow"?  a HWI always fits in
a wide-int!  All trees and rtxen do, too.  You seem to merge two
operations here, conversion to wide-int and truncation / extension.
That doesn't look like a clean interface to me.

+  static wide_int from_double_int (enum machine_mode, double_int);

the choice of passing a mode seems arbitrary (the natural interface
would be nothing - precision is 2 * HWI).  Passing it as first parameter
is even more strange to me ;)

+  static wide_int from_tree (const_tree);
+  static wide_int from_rtx (const_rtx, enum machine_mode);

+  HOST_WIDE_INT to_shwi (unsigned int prec) const;

See above - merges two basic operations.  You should write

 w.sext (prec).to_shwi ()

instead (I _suppose_ it should sign-extend, should it? ;)).  Btw, why
don't we need to always specify bitsize together with precision in all
the places?  (not that I am arguing for it, I'm arguing for the
removal of bitsize)

+  static wide_int max_value (unsigned int bitsize, unsigned int prec,
SignOp sgn);

now that I am seeing this - is there any restriction on how the precision
of a partial integer mode may differ from its bitsize?  Can we have
POImode with 1 bit precision?  I suppose the solution for all this is
that when converting a wide-int to a RTX with a mode then we need to
zero-/sign-extend to the modes bitsize (and wide-int only cares about
precision).  Eventually a set_len can adjust the amount of BITS_PER_UNITs
we fill with meaningful values if needed.  Otherwise len == precision
/ BITS_PER_UNIT (rounded to HWI for obvious practical reasons).

+  inline static wide_int minus_one (unsigned int bitsize, unsigned int prec);
+  inline static wide_int minus_one (const_tree type);
+  inline static wide_int minus_one (enum machine_mode mode);
+  inline static wide_int zero (unsigned int bitsize, unsigned int prec);
+  inline static wide_int zero (const_tree type);
+  inline static wide_int zero (enum machine_mode mode);
+  inline static wide_int one (unsigned int bitsize, unsigned int prec);
+  inline static wide_int one (const_tree type);
+  inline static wide_int one (enum machine_mode mode);
+  inline static wide_int two (unsigned int bitsize, unsigned int prec);
+  inline static wide_int two (const_tree type);
+  inline static wide_int two (enum machine_mode mode);
+  inline static wide_int ten (unsigned int bitsize, unsigned int prec);
+  inline static wide_int ten (const_tree type);
+  inline static wide_int ten (enum machine_mode mode);

wheeee .... ;)

What's wrong with from_uhwi (10, ...)?  double-int has the above for
compatibility reasons only.  And why should I care about type/mode/size
for something as simple as '1'?

+  inline unsigned short get_len () const;
+  inline unsigned int get_bitsize () const;
+  inline unsigned int get_precision () const;
+  inline unsigned int get_full_len () const;

not sure which air you are pulling full_len from ;)

+  wide_int force_to_size (unsigned int bitsize,
+                         unsigned int precision) const;

or rather 'trunc'?  Seems to be truncation and set_len combined?

I wonder if for the various ways to specify precision/len there is a nice C++
way of moving this detail out of wide-int.  I can think only of one:

struct WIntSpec {
  WIntSpec (unsigned int len, unsigned int precision);
  WIntSpec (const_tree);
  WIntSpec (enum machine_mode);
  unsigned int len;
  unsigned int precision;
};

and then (sorry to pick one of the less useful functions):

  inline static wide_int zero (WIntSpec)

which you should be able to call like

  wide_int::zero (SImode)
  wide_int::zero (integer_type_node)

and (ugly)

  wide_int::zero (WIntSpec (32, 32))

with C++0x wide_int::zero ({32, 32}) should be possible?  Or we keep
the precision overload.  At least providing the WIntSpec abstraction
allows custom ways of specifying required bits to not pollute wide-int
itself too much.  Lawrence?

+  /* Printing functions.  */
+
+  void print_dec (char *buf, SignOp sgn) const;
+  void print_dec (FILE *file, SignOp sgn) const;
+  void print_decs (char *buf) const;
+  void print_decs (FILE *file) const;
+  void print_decu (char *buf) const;
+  void print_decu (FILE *file) const;
+  void print_hex (char *buf) const;
+  void print_hex (FILE *file) const;

consider moving them to standalone functions, out of wide-int.h

+  inline bool minus_one_p () const;
+  inline bool zero_p () const;
+  inline bool one_p () const;
+  inline bool neg_p () const;

what's wrong with w == -1, w == 0, w == 1, etc.?

+  bool only_sign_bit_p (unsigned int prec) const;
+  bool only_sign_bit_p () const;

what's that?  Some of the less obvious functions should be documented
in the header I think.  Smells of combining two things again here.
Either wide-int has an intrinsic precision or it has not ... (like double-int).

+  bool fits_u_p (unsigned int prec) const;
+  bool fits_s_p (unsigned int prec) const;

See above.

+  /* Extension  */
+
+  inline wide_int ext (unsigned int offset, SignOp sgn) const;
+  wide_int sext (unsigned int offset) const;
+  wide_int sext (enum machine_mode mode) const;
+  wide_int zext (unsigned int offset) const;
+  wide_int zext (enum machine_mode mode) const;

'offset'?  I suppose that's 'precision'.  Does that alter the
precision of *this?
I think it should (and thus there should be no set_precision function).
If it doesn't alter precision the functions don't make much sense to me.

+  wide_int set_bit (unsigned int bitpos) const;

this kind of interface is strange.  You call it like w.set_bit (1) but it
doesn't actually set bit 1 in w but it constructs a new wide_int and
returns that.  So I suppose it should be

  wide_int with_bit_set (unsigned int bitpos) const;

or similar.  Or simply have a mutating set_bit.  Or leave it out entierly,
we cannot have many uses of this kind of weird interface.

similar comments for the rest.

.... rest skipped ...

+                                   / HOST_BITS_PER_WIDE_INT + 32));
+  char *dump (char* buf) const;
+ private:
+
+  /* Private utility routines.  */
+  wide_int decompress (unsigned int target, unsigned int bitsize,
+                      unsigned int precision) const;
+  static wide_int add_overflow (const wide_int *op0, const wide_int *op1,
+                               wide_int::SignOp sgn, bool *overflow);
+  static wide_int sub_overflow (const wide_int *op0, const wide_int *op1,
+                               wide_int::SignOp sgn, bool *overflow);
+};


IMHO way too many functions for a well tested initial implementation.
There are a lot of things that seem operation compositions.  Is your
concern efficiency here?  That would be bad as that means wide_ints
are too heavy weight.

Can you use gcov to see which functions have (how much) coverage?

Thanks,
Richard.



> kenny
>
>

  reply	other threads:[~2012-10-23 14:12 UTC|newest]

Thread overview: 217+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-03 17:17 patch to fix Kenneth Zadeck
2012-10-03 20:47 ` Marc Glisse
2012-10-03 22:05   ` Kenneth Zadeck
2012-10-04 13:17     ` Marc Glisse
2012-10-04 15:19       ` Kenneth Zadeck
2012-10-04 16:55         ` Marc Glisse
2012-10-04 21:06     ` Marc Glisse
2012-10-04 23:02       ` Kenneth Zadeck
2012-10-05  7:05         ` Marc Glisse
2012-10-03 22:55   ` Mike Stump
2012-10-04 12:48 ` Richard Guenther
2012-10-04 13:55   ` patch to fix constant math Kenneth Zadeck
2012-10-04 16:58     ` Richard Guenther
2012-10-04 18:08       ` Kenneth Zadeck
2012-10-04 19:27         ` Richard Sandiford
2012-10-05  9:27           ` Richard Guenther
2012-10-05  9:29             ` Richard Guenther
2012-10-05  9:56             ` Richard Sandiford
2012-10-05 10:34               ` Richard Guenther
2012-10-05 11:24                 ` Richard Sandiford
2012-10-05 11:42                   ` Richard Guenther
2012-10-05 12:26                     ` Richard Sandiford
2012-10-05 12:39                       ` Richard Guenther
2012-10-05 13:11                         ` Richard Sandiford
2012-10-05 13:18                           ` Richard Sandiford
2012-10-05 13:53                             ` Richard Guenther
2012-10-05 14:15                               ` Richard Sandiford
2012-10-05 14:36                                 ` Richard Guenther
2012-10-05 14:41                                   ` Kenneth Zadeck
2012-10-05 14:53                                     ` Richard Sandiford
2012-10-05 13:49                         ` Richard Guenther
2012-10-05 16:34                           ` Kenneth Zadeck
2012-10-05 17:29                             ` Richard Sandiford
2012-10-05 17:53                               ` Kenneth Zadeck
2012-10-05 22:12                               ` patch to fix constant math - first small patch Kenneth Zadeck
2012-10-05 22:48                                 ` patch to fix constant math - second " Kenneth Zadeck
2012-10-06 15:55                                   ` patch to fix constant math - third " Kenneth Zadeck
2012-10-08  9:08                                     ` Richard Guenther
2012-10-08 11:37                                     ` Kenneth Zadeck
2012-10-08 12:11                                       ` Richard Guenther
2012-10-08 19:43                                       ` Richard Sandiford
2012-10-09 15:10                                         ` patch to fix constant math - 4th patch - the wide-int class Kenneth Zadeck
2012-10-23 14:33                                           ` Richard Biener [this message]
2012-10-23 16:25                                             ` Kenneth Zadeck
2012-10-23 18:52                                               ` Lawrence Crowl
2012-10-23 19:27                                                 ` Kenneth Zadeck
2012-10-23 20:51                                                   ` Lawrence Crowl
2012-10-23 21:34                                                     ` Kenneth Zadeck
2012-10-24 10:10                                               ` Richard Biener
2012-10-24 17:30                                                 ` Mike Stump
2012-10-25 10:55                                                   ` Richard Biener
2012-10-25 10:59                                                     ` Kenneth Zadeck
2012-10-25 12:12                                                       ` Richard Biener
2012-10-31 11:01                                                         ` Richard Sandiford
2012-10-31 12:01                                                           ` Richard Biener
2012-10-31 12:12                                                             ` Richard Sandiford
2012-10-31 12:14                                                               ` Richard Biener
2012-10-31 12:23                                                                 ` Richard Sandiford
2012-10-31 12:50                                                                   ` Richard Biener
2012-10-31 13:50                                                                     ` Richard Sandiford
2012-10-31 13:56                                                                       ` Richard Biener
2012-10-31 14:26                                                                         ` Kenneth Zadeck
2012-10-31 19:45                                                                         ` Mike Stump
2012-10-31 15:52                                                                       ` Kenneth Zadeck
2012-10-31 14:39                                                                     ` Kenneth Zadeck
2012-10-31 19:22                                                                     ` Mike Stump
2012-10-31 13:54                                                                 ` Kenneth Zadeck
2012-10-31 14:07                                                                   ` Richard Biener
2012-10-31 14:25                                                                     ` Kenneth Zadeck
2012-10-31 14:25                                                                       ` Richard Biener
2012-10-31 14:30                                                                         ` Kenneth Zadeck
2012-11-01 22:13                                                                         ` patch to fix constant math - 8th patch - tree-vrp.c Kenneth Zadeck
2012-11-01 22:28                                                                           ` Marc Glisse
2012-11-01 22:35                                                                             ` Kenneth Zadeck
2012-11-01 22:33                                                                           ` patch to fix constant math - 4th patch - wide-int.[ch] refresh Kenneth Zadeck
2012-11-01 22:36                                                                             ` Kenneth Zadeck
2012-11-30 16:46                                                                         ` patch to fix constant math - 4th patch - the wide-int class Kenneth Zadeck
2012-11-30 17:00                                                                           ` patch to fix constant math - 5th patch - the rtl level changes Kenneth Zadeck
2012-11-30 18:13                                                                             ` patch to add storage classes to wide int Kenneth Zadeck
2012-11-30 19:05                                                                               ` Kenneth Zadeck
2012-12-01  9:28                                                                               ` Richard Sandiford
2012-12-01 13:43                                                                                 ` Kenneth Zadeck
2013-02-27  1:59                                                                         ` patch to fix constant math - 4th patch - the wide-int class - patch ping for the next stage 1 Kenneth Zadeck
2013-03-27 14:54                                                                           ` Richard Biener
2013-04-04  8:08                                                                             ` Kenneth Zadeck
2013-04-02 15:40                                                                           ` Richard Biener
2013-04-02 19:23                                                                             ` Kenneth Zadeck
2013-04-03 10:44                                                                               ` Richard Biener
2013-04-03 13:36                                                                                 ` Kenneth Zadeck
2013-04-03 14:46                                                                                   ` Richard Biener
2013-04-03 19:18                                                                                     ` Kenneth Zadeck
2013-04-04 11:45                                                                                       ` Richard Biener
2013-04-08  5:28                                                                                         ` Comments on the suggestion to use infinite precision math for wide int Kenneth Zadeck
2013-04-08 10:32                                                                                           ` Florian Weimer
2013-04-08 13:58                                                                                             ` Kenneth Zadeck
2013-04-08 14:00                                                                                               ` Robert Dewar
2013-04-08 14:12                                                                                                 ` Kenneth Zadeck
2013-04-08 14:41                                                                                                   ` Robert Dewar
2013-04-08 15:10                                                                                                     ` Kenneth Zadeck
2013-04-08 17:18                                                                                                       ` Robert Dewar
2013-04-08 17:22                                                                                                         ` Kenneth Zadeck
2013-04-08 19:14                                                                                                           ` Robert Dewar
2013-04-08 23:48                                                                                                             ` Lawrence Crowl
2013-04-09  1:22                                                                                                               ` Robert Dewar
2013-04-09  1:56                                                                                                                 ` Kenneth Zadeck
2013-04-09  2:10                                                                                                                   ` Robert Dewar
2013-04-09  7:06                                                                                                                     ` Mike Stump
2013-04-09  8:20                                                                                                                       ` Robert Dewar
2013-04-09  8:22                                                                                                                         ` Kenneth Zadeck
2013-04-09  8:24                                                                                                                           ` Robert Dewar
2013-04-09 12:42                                                                                                                             ` Florian Weimer
2013-04-09 15:06                                                                                                                               ` Robert Dewar
2013-04-09 16:16                                                                                                                                 ` Florian Weimer
2013-04-08 13:12                                                                                           ` Richard Biener
2013-04-08 13:32                                                                                             ` Kenneth Zadeck
2013-04-08 13:44                                                                                               ` Robert Dewar
2013-04-08 14:26                                                                                                 ` Kenneth Zadeck
2013-04-08 14:35                                                                                                   ` Robert Dewar
2013-04-08 19:06                                                                                               ` Richard Biener
2013-04-08 22:34                                                                                               ` Lawrence Crowl
2013-04-09  9:47                                                                                                 ` Richard Biener
     [not found]                                                                                                   ` <CAGqM8fZ7NxiMnC6PTA8v6w_E6ZJ5HbjhJXzh-HAOJqaSx+7rnw@mail.gmail.com>
2013-04-10  9:44                                                                                                     ` Richard Biener
2013-04-10 17:43                                                                                                       ` Mike Stump
2013-04-10 17:53                                                                                                         ` Kenneth Zadeck
2013-04-08 23:46                                                                                             ` Lawrence Crowl
2013-04-22 21:39                                                                                         ` patch to fix constant math - 4th patch - the wide-int class - patch ping for the next stage 1 Richard Sandiford
2013-04-23  0:35                                                                                           ` Richard Biener
2013-04-23  6:47                                                                                             ` Richard Sandiford
2013-04-05 15:05                                                                             ` Kenneth Zadeck
2013-04-08 13:06                                                                               ` Richard Biener
2013-04-17  0:49                                                                                 ` Kenneth Zadeck
2013-04-17  3:41                                                                                   ` patch to fix constant math -5th patch, rtl Kenneth Zadeck
2013-04-24 13:25                                                                                     ` Richard Biener
2013-04-24 13:37                                                                                       ` Richard Sandiford
2013-04-24 14:18                                                                                         ` Richard Biener
2013-04-24 14:34                                                                                           ` Richard Sandiford
2013-04-24 14:37                                                                                             ` Richard Biener
2013-04-24 14:53                                                                                               ` Richard Sandiford
2013-04-24 15:07                                                                                                 ` Richard Biener
2013-04-24 15:13                                                                                                   ` Kenneth Zadeck
2013-04-24 15:45                                                                                                   ` Richard Sandiford
2013-04-24 16:51                                                                                                     ` Richard Biener
2013-04-24 18:24                                                                                                       ` Richard Sandiford
2013-05-03 11:28                                                                                                         ` Richard Biener
2013-05-03 12:38                                                                                                           ` Richard Sandiford
2013-05-03 12:53                                                                                                             ` Richard Biener
2013-05-03 13:50                                                                                                               ` Richard Sandiford
2013-05-03 14:27                                                                                                               ` Kenneth Zadeck
2013-04-25  8:38                                                                                                       ` Kenneth Zadeck
2013-05-03 11:34                                                                                                         ` Richard Biener
2013-05-03 11:50                                                                                                           ` Kenneth Zadeck
2013-05-03 12:12                                                                                                             ` Richard Biener
2013-05-03 12:31                                                                                                               ` Kenneth Zadeck
2013-05-03 12:40                                                                                                                 ` Richard Biener
2013-05-03 14:09                                                                                                                   ` Kenneth Zadeck
2013-05-03 12:48                                                                                                                 ` Richard Sandiford
2013-05-03 13:06                                                                                                                   ` Richard Biener
2013-05-03 13:23                                                                                                                     ` Richard Sandiford
2013-05-03 15:32                                                                                                                       ` Kenneth Zadeck
2013-04-24 14:57                                                                                           ` Kenneth Zadeck
2013-04-24 15:49                                                                                             ` Richard Biener
2013-04-24 17:11                                                                                               ` Richard Sandiford
2013-05-03 11:19                                                                                                 ` Richard Biener
2013-05-03 12:46                                                                                                   ` Kenneth Zadeck
2013-05-03 13:02                                                                                                     ` Richard Biener
2013-05-03 14:34                                                                                                       ` Kenneth Zadeck
2013-05-02 17:22                                                                                       ` Kenneth Zadeck
2013-04-17  7:34                                                                                   ` patch to fix constant math - builtins.c - the first of the tree level patches for wide-int Kenneth Zadeck
2013-05-02 17:53                                                                                     ` Kenneth Zadeck
2013-04-17 15:01                                                                                   ` patch to fix constant math - 4th patch - the wide-int class - patch ping for the next stage 1 Kenneth Zadeck
2013-04-19 15:35                                                                                   ` Richard Biener
2013-04-22  7:15                                                                                     ` Kenneth Zadeck
2013-04-22 15:21                                                                                       ` Richard Biener
2013-04-23  8:11                                                                                         ` Kenneth Zadeck
2013-04-22 18:53                                                                                     ` Kenneth Zadeck
2013-04-22 19:17                                                                                       ` richard, i accidently pushed send rather than save, the previous email was not finished, just ignore it Kenneth Zadeck
2013-05-02 17:21                                                                                     ` patch to fix constant math - 4th patch - the wide-int class - patch ping for the next stage 1 Kenneth Zadeck
2012-10-31 20:07                                                                     ` patch to fix constant math - 4th patch - the wide-int class Mike Stump
2012-10-23 18:10                                             ` Lawrence Crowl
2012-10-09 18:51                                         ` patch to fix constant math - patch 5 - the rest of the rtl stuff Kenneth Zadeck
2012-10-19 16:52                                           ` Richard Sandiford
2012-11-09 13:22                                         ` patch to fix constant math - third small patch Kenneth Zadeck
2012-10-08  9:07                                   ` patch to fix constant math - second " Richard Guenther
2012-11-08 18:14                                     ` Kenneth Zadeck
2012-11-26 15:31                                       ` Richard Biener
2013-02-27  0:28                                   ` patch to fix constant math - second small patch -patch ping for next stage 1 Kenneth Zadeck
2013-03-27 14:18                                     ` Richard Biener
2013-03-27 14:23                                       ` Kenneth Zadeck
2013-03-27 15:07                                         ` Richard Biener
2013-03-28 14:47                                           ` Kenneth Zadeck
2012-10-06  0:14                                 ` patch to fix constant math - first small patch Joseph S. Myers
2012-10-08 19:25                                   ` Kenneth Zadeck
2012-11-08 17:37                                   ` Kenneth Zadeck
2013-02-27  0:23                                   ` patch to fix constant math - first small patch - patch ping for the next stage 1 Kenneth Zadeck
2013-03-27 14:13                                     ` Richard Biener
2013-03-28 15:06                                       ` Kenneth Zadeck
2013-03-31 17:51                                       ` Kenneth Zadeck
2013-04-02  9:45                                         ` Richard Biener
2013-04-02 14:34                                           ` Kenneth Zadeck
2013-04-02 15:29                                             ` Richard Biener
2013-04-02 22:43                                               ` Kenneth Zadeck
2013-04-03 10:48                                                 ` Richard Biener
2013-04-03 12:21                                                   ` Kenneth Zadeck
2013-04-03 13:38                                                     ` Richard Biener
2013-04-04  3:13                                                       ` Kenneth Zadeck
2012-10-07 12:47                             ` patch to fix constant math Richard Guenther
2012-10-07 13:11                               ` Kenneth Zadeck
2012-10-07 13:19                                 ` Richard Guenther
2012-10-07 14:58                                   ` Kenneth Zadeck
2012-10-08  9:27                                     ` Richard Guenther
2012-10-08 15:01                                       ` Nathan Froyd
2012-10-08 15:11                                         ` Robert Dewar
2012-10-08 19:55                                           ` Richard Sandiford
2012-10-09  7:09                                             ` Richard Guenther
2012-10-08 16:18                                         ` Richard Guenther
2012-10-05 13:11                     ` Kenneth Zadeck
2012-10-04 15:39   ` patch to fix Kenneth Zadeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAFiYyc2hQLUNzei2_cFmfDqV8GQORAMSwehrS_HEqg+r7j9Wjw@mail.gmail.com \
    --to=richard.guenther@gmail.com \
    --cc=crowl@google.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=mikestump@comcast.net \
    --cc=rdsandiford@googlemail.com \
    --cc=zadeck@naturalbridge.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).