public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: kenner@vlsi1.ultra.nyu.edu (Richard Kenner)
To: dnovillo@redhat.com
Cc: gcc@gcc.gnu.org
Subject: Re: [RFC] Contributing tree-ssa to mainline
Date: Mon, 19 Jan 2004 19:13:00 -0000	[thread overview]
Message-ID: <10401191915.AA01080@vlsi1.ultra.nyu.edu> (raw)

    Well, I know nothing about Ada so I'm not sure what you mean by that
    remark.  That's why I was asking for specific examples.  Annotated, if
    possible.

OK.  Here's a test program:

procedure Tparray (X: Integer) is
   type Barr is array (Integer range <>) of Boolean;
   pragma Pack (Barr);		-- So we have a packed array of 1 bit
   Y: constant Integer := 31;	-- Here's a variable whose value we know.

   subtype Barr1 is Barr(1..X); -- This type has variable size.
   subtype Barr2 is Barr(1..Y); -- ... and this one has a fixed size (31 bits).

   --  Now we have two identical functions, one on each type.

   function F1 (A, B : Barr1) return Barr1 is
      Arr: Barr1 := A;
   begin
      Arr (2) := False;
      return Arr xor B;
   end F1;

   function F2 (A, B : Barr2) return Barr2 is
      Arr: Barr2 := A;
   begin
      Arr (2) := False;
      return Arr xor B;
   end F2;
begin
   null;
end Tparray;

Now here's the Ada expanded code for this.  Note the very different forms
of tparray__f1 and tparray__f2:

Source recreated from tree for Tparray (body)
---------------------------------------------

with system.system__unsigned_types;
with system.system__bit_ops;
with system;
with system.system__secondary_stack;

procedure tparray (x : integer) is
   type tparray__barr is array (-16#8000_0000# .. 16#7FFF_FFFF#
     range <>) of boolean;
   pragma pack (tparray__barr);
   y : constant integer := 31;
   subtype tparray__barr1 is tparray__barr (1 .. x);
   subtype tparray__barr2 is tparray__barr (1 .. 31);
   freeze tparray__barr []
   freeze tparray__barr1 []
   freeze tparray__barr2 []
   
   function tparray__f1 (a : tparray__barr1; b : tparray__barr1)
     return tparray__barr1 is
      arr : tparray__barr1 := a;
   begin
      arr (0) := system__unsigned_types__packed_byte!(arr (0) and 16#FD#);
      null;
      T3b : tparray__barr1;
      system__bit_ops__bit_xor (arr'address, tparray__Tbarr1P1'
        range_length, b'address, tparray__Tbarr1P1'range_length, T3b'
        address);
      return T3b;
   end tparray__f1;
   
   function tparray__f2 (a : tparray__barr2; b : tparray__barr2)
     return tparray__barr2 is
      arr : tparray__barr2 := a;
   begin
      arr := tparray__barr2___XP1!(arr and 16#FFFF_FFFD#);
      null;
      return tparray__barr2!(arr xor b);
   end tparray__f2;
begin
   null;
   return;
end tparray;

             reply	other threads:[~2004-01-19 19:13 UTC|newest]

Thread overview: 192+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-19 19:13 Richard Kenner [this message]
  -- strict thread matches above, loose matches on Subject: below --
2004-01-20 12:36 Richard Kenner
2004-01-20 15:06 ` Daniel Jacobowitz
2004-01-20 15:14 ` Steven Bosscher
2004-01-20 16:14 ` Diego Novillo
2004-01-20 11:46 Richard Kenner
2004-01-20 11:57 ` Steven Bosscher
2004-01-20  4:35 Robert Dewar
2004-01-20  4:23 Richard Kenner
2004-01-20  4:28 ` Andrew Pinski
2004-01-20 11:15 ` Diego Novillo
2004-01-19 23:40 Richard Kenner
2004-01-19 23:15 Richard Kenner
2004-01-19 23:31 ` tm_gccmail
2004-01-19 18:06 Richard Kenner
2004-01-19 16:12 Richard Kenner
2004-01-19 15:05 Richard Kenner
2004-01-19 15:56 ` law
2004-01-19 22:41 ` Andrew Pinski
2004-01-19 14:17 Richard Kenner
2004-01-19 14:46 ` Diego Novillo
2004-01-19 17:58 ` Dan Nicolaescu
2004-01-19 14:02 Richard Kenner
2004-01-19 12:29 Richard Kenner
2004-01-19 12:24 Richard Kenner
2004-01-19 12:31 ` Andrew Haley
2004-01-19 12:36 ` Paul Brook
2004-01-19 12:39   ` Paul Brook
2004-01-19 12:38 ` Andrew Haley
2004-01-19 12:49 ` Diego Novillo
2004-01-19 17:42   ` Geert Bosch
2004-01-19 17:51     ` Diego Novillo
2004-01-19 17:56       ` John R. Shannon
2004-01-19 18:02         ` Diego Novillo
2004-01-19 18:09       ` Geert Bosch
2004-01-19 18:27       ` Robert Dewar
2004-01-19 12:51 ` Jan Hubicka
2004-01-19 15:51   ` law
2004-01-19 17:30     ` Robert Dewar
2004-01-19 17:48       ` law
2004-01-19 17:57         ` Diego Novillo
2004-01-19 13:26 ` Theodore Papadopoulo
2004-01-19 14:23 ` Robert Dewar
2004-01-19 18:00 ` Tom Tromey
2004-01-19 18:11   ` Andrew Haley
2004-01-19 18:39   ` Jeff Sturm
2004-01-19 11:44 Richard Kenner
2004-01-19 12:00 ` Jan Hubicka
2004-01-19 12:13   ` Andrew Pinski
2004-01-19 12:12 ` Richard Henderson
2004-01-18 13:09 Richard Kenner
2004-01-17 17:17 Dara Hazeghi
2004-01-19 17:23 ` law
2004-01-17 13:35 Richard Kenner
2004-01-17 14:05 ` Steven Bosscher
2004-01-17 15:26   ` Andreas Jaeger
2004-01-17 13:33 Richard Kenner
2004-01-17 13:29 Richard Kenner
2004-01-17 17:58 ` Diego Novillo
2004-01-17 13:20 Richard Kenner
2004-01-17  3:26 Richard Kenner
2004-01-17 14:49 ` Scott Robert Ladd
2004-01-17  3:21 Richard Kenner
2004-01-17  3:26 ` Diego Novillo
2004-01-17  5:52   ` Per Bothner
2004-01-17  6:09     ` Andrew Pinski
2004-01-18  2:46       ` Scott A Crosby
2004-01-17  8:00     ` Diego Novillo
2004-01-17 13:47   ` Florian Weimer
2004-01-17 14:48     ` Daniel Berlin
2004-01-17 14:53       ` Florian Weimer
2004-01-17 15:14         ` Daniel Berlin
2004-01-17 17:07       ` Joseph S. Myers
2004-01-17 17:14         ` Diego Novillo
2004-01-17 17:40           ` Daniel Berlin
2004-01-17 18:34         ` Mark Mitchell
2004-01-17 14:57     ` Diego Novillo
2004-01-19 23:30 ` Joe Buck
2004-01-19 23:43   ` Daniel Berlin
2004-01-20  0:20     ` Dale Johannesen
2004-01-20  3:12     ` Geert Bosch
2004-01-20  3:27       ` Diego Novillo
2004-01-17  3:15 Robert Dewar
2004-01-17  2:56 Richard Kenner
2004-01-17  3:14 ` Steven Bosscher
2004-01-17  3:20   ` Diego Novillo
2004-01-17  2:52 Richard Kenner
2004-01-17  3:12 ` Steven Bosscher
2004-01-17  2:39 Richard Kenner
2004-01-17  3:04 ` Robert Dewar
2004-01-17 16:55   ` Gerald Pfeifer
2004-01-19 14:48 ` Lars Segerlund
2004-01-19 23:37   ` Joe Buck
2004-01-17  2:28 Richard Kenner
2004-01-17  3:09 ` Steven Bosscher
2004-01-17  5:04   ` Roger Sayle
2004-01-17  5:31     ` Diego Novillo
2004-01-17  6:04       ` Roger Sayle
2004-01-17  6:19       ` David Edelsohn
2004-01-17 14:54       ` Scott Robert Ladd
2004-01-17 14:01     ` Jan Hubicka
2004-01-17 14:20       ` Roger Sayle
2004-01-17 14:29         ` Roger Sayle
2004-01-17 14:44           ` Jan Hubicka
2004-01-17 15:07             ` Jan Hubicka
2004-01-17 14:37         ` Jan Hubicka
2004-01-17 21:32   ` Richard Henderson
2004-01-17 21:45     ` Diego Novillo
2004-01-17  5:06 ` Diego Novillo
2004-01-17  6:13 ` law
2004-01-17 12:07   ` Robert Dewar
2004-01-17 12:15     ` John R. Shannon
2004-01-19 23:46   ` Joe Buck
2004-01-17  0:19 Diego Novillo
2004-01-17  0:31 ` Daniel Berlin
2004-01-17  0:35 ` Andrew Pinski
2004-01-17  0:44 ` Gerald Pfeifer
2004-01-17  0:53   ` law
2004-01-17  0:54   ` law
2004-01-17  1:37     ` Gerald Pfeifer
2004-01-17  1:46       ` Diego Novillo
2004-01-17  0:55   ` Eric Christopher
2004-01-17  2:48     ` Robert Dewar
2004-01-17 22:08       ` Eric Christopher
2004-01-17  1:02   ` Joseph S. Myers
2004-01-17  1:51     ` Kaveh R. Ghazi
2004-01-17  2:01       ` Gabriel Dos Reis
2004-01-17  2:17         ` Kaveh R. Ghazi
2004-01-17  3:01           ` Daniel Berlin
2004-01-17  2:19         ` Steven Bosscher
2004-01-17  3:02           ` Robert Dewar
2004-01-17  3:55             ` Andrew Pinski
2004-01-17  3:36       ` Diego Novillo
2004-01-17 13:06         ` Giovanni Bajo
2004-01-17 13:53         ` Jan Hubicka
2004-01-18  7:01           ` law
2004-01-17 17:04         ` Kaveh R. Ghazi
2004-01-17 17:16           ` Scott Robert Ladd
2004-01-17 17:30             ` Kaveh R. Ghazi
2004-01-17 17:50               ` Scott Robert Ladd
2004-01-17 17:37             ` Robert Dewar
2004-01-17 17:46               ` Joseph S. Myers
2004-01-17 17:51                 ` Robert Dewar
2004-01-17 18:11                   ` Joseph S. Myers
2004-01-17 19:12                     ` Arnaud Charlet
2004-01-29  0:36                       ` Robert Dewar
2004-01-29  0:00                     ` Robert Dewar
2004-01-17 17:58               ` Scott Robert Ladd
2004-01-17 18:09                 ` Joseph S. Myers
2004-01-17 18:06           ` Mark Mitchell
2004-01-18  7:15           ` law
2004-01-18 15:50             ` Daniel Berlin
2004-01-17 17:12         ` Kaveh R. Ghazi
2004-01-17 17:26           ` Diego Novillo
2004-01-17  5:31     ` Diego Novillo
2004-01-17  6:15       ` law
2004-01-17  6:22         ` Andrew Pinski
2004-01-17  6:38         ` Diego Novillo
2004-01-17 14:45         ` Daniel Berlin
2004-01-17 21:23           ` law
2004-01-17 21:33             ` Steven Bosscher
2004-01-18  2:34               ` Zack Weinberg
2004-01-17 11:16       ` Joseph S. Myers
2004-01-17 17:50         ` Diego Novillo
2004-01-17 18:06           ` Joseph S. Myers
2004-01-17 20:14           ` Steven Bosscher
2004-01-17 23:38         ` Toon Moene
2004-01-18  1:06           ` Phil Edwards
2004-01-17  2:15   ` Steven Bosscher
2004-01-17  3:01     ` Robert Dewar
2004-01-17 11:08 ` Andrew Walrond
2004-01-17 23:33   ` Toon Moene
2004-01-17 14:30 ` Scott Robert Ladd
2004-01-17 14:57   ` Paul Brook
2004-01-17 15:28     ` Scott Robert Ladd
2004-01-17 21:24     ` law
2004-01-17 21:47       ` Diego Novillo
2004-01-17 19:01 ` Mark Mitchell
2004-01-17 19:23   ` Andrew Pinski
2004-01-18  0:14     ` Toon Moene
2004-01-20  1:39   ` Kaveh R. Ghazi
2004-01-20  2:00     ` Gabriel Dos Reis
2004-01-20  2:08       ` Mark Mitchell
2004-01-20  2:31         ` Gabriel Dos Reis
2004-01-20 15:19       ` Scott Robert Ladd
2004-01-20 15:27         ` Andrew Haley
2004-01-20  2:09     ` Diego Novillo
2004-01-22  8:49     ` Gerald Pfeifer
2004-01-17 19:22 ` Daniel Jacobowitz
2004-01-17 19:34   ` Richard Guenther
2004-01-17 20:21     ` Steven Bosscher
2004-01-18  1:24     ` David Edelsohn

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=10401191915.AA01080@vlsi1.ultra.nyu.edu \
    --to=kenner@vlsi1.ultra.nyu.edu \
    --cc=dnovillo@redhat.com \
    --cc=gcc@gcc.gnu.org \
    /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).