All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pekka Enberg <penberg@kernel.org>
To: Jeff Garzik <jeff@garzik.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Josh Triplett <josh@joshtriplett.org>,
	Sparse Mailing-list <linux-sparse@vger.kernel.org>
Subject: Re: [PATCH] Re: LLVM and PSEUDO_REG/PSEUDO_PHI
Date: Wed, 31 Aug 2011 15:09:40 +0300	[thread overview]
Message-ID: <CAOJsxLEf=G90sveWrrmsx1nXFXi+pvPvjHBy=D6WC85sDz7F7g@mail.gmail.com> (raw)
In-Reply-To: <4E5A980E.70308@garzik.org>

On 08/28/2011 02:23 PM, Linus Torvalds wrote:
>> On Sun, Aug 28, 2011 at 10:52 AM, Josh Triplett<josh@joshtriplett.org>
>>  wrote:
>>>>
>>>> You should consider all types to be just "blocks of memory", and
>>>> sparse has already calculated all offsets etc for you. As far as LLVM
>>>> is concerned, the memory has no structure, it's just a blob.
>>>
>>> I suspect LLVM's optimization passes won't particularly care for that
>>> approach.
>>
>> That's fine. We've already done the CSE and alias analysis on the
>> thing. And as mentioned, trying to turn overlapping (or partial)
>> accesses into some "named accesses" is just *wrong*. They weren't
>> named in the C code either. They are accesses through pointer
>> arithmetic. Trying to make them be somehow named would just be crazy.

On Sun, Aug 28, 2011 at 10:33 PM, Jeff Garzik <jeff@garzik.org> wrote:
> LLVM just cares about layout.
>
> It does not care about naming (or lack thereof).  Nobody/nothing is trying
> to make them named.

Yup. The LLVM backend pretty much expects to know about struct layout.
For example, this simple initialization:

  struct symbol {
    char *s;
  };

  extern struct symbol foo;

  struct symbol *foo_p = &foo;

Looks like this in LLVM bitcode:

  %struct.symbol = type { i8* }

  @foo = external global %struct.symbol
  @foo_p = global %struct.symbol* @foo, align 8

I'm sure we *could* turn treat 'foo' as simple block of memory and
turn 'foo_p' into an untyped pointer. However, it's likely to be more
difficult than to just let LLVM know about struct layouts.

                        Pekka
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2011-08-31 12:09 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4E5495C9.6050207@kernel.org>
     [not found] ` <CA+55aFwLLn30qohqJeBZLVUYWLKUnbBxnL9u+v=4Fx8TpxDQUQ@mail.gmail.com>
     [not found]   ` <4E55F33C.50203@kernel.org>
     [not found]     ` <CAOJsxLF-=mPSdKLwmc61ZRTQrLGjPTUwVw+PqabYvGKVRwh9sQ@mail.gmail.com>
     [not found]       ` <CAOJsxLFMz7fs4ySkizHk43a0fz9VKS5ReWXoJa8cy2AQ6iwRng@mail.gmail.com>
     [not found]         ` <CA+55aFywG3vBA87W2h1f=-H144MTZesEwp5jVu8ndyBfLX7Sbg@mail.gmail.com>
     [not found]           ` <alpine.DEB.2.00.1108252046090.6272@localhost6.localdomain6>
     [not found]             ` <CA+55aFxRkS4HLeW18-q+4Co7kRdiQBv4wnD=GX5ymAGigXR3MQ@mail.gmail.com>
     [not found]               ` <alpine.DEB.2.00.1108252107210.6272@localhost6.localdomain6>
     [not found]                 ` <4E58731A.7010708@garzik.org>
     [not found]                   ` <alpine.DEB.2.00.1108271104440.2570@localhost6.localdomain6>
     [not found]                     ` <4E58AE9E.1090601@garzik.org>
     [not found]                       ` <4E59478C.9000504@garzik.org>
     [not found]                         ` <alpine.DEB.2.00.1108280815530.2734@localhost6.localdomain6>
2011-08-28 10:04                           ` [PATCH] Re: LLVM and PSEUDO_REG/PSEUDO_PHI Jeff Garzik
2011-08-28 10:18                             ` Jeff Garzik
2011-08-29 14:45                               ` Pekka Enberg
2011-08-28 17:04                             ` Linus Torvalds
2011-08-28 17:52                               ` Josh Triplett
2011-08-28 18:23                                 ` Linus Torvalds
2011-08-28 19:33                                   ` Jeff Garzik
2011-08-31 12:09                                     ` Pekka Enberg [this message]
2011-08-28 19:31                               ` Jeff Garzik
2011-08-28 19:46                                 ` Linus Torvalds
2011-08-29 14:42                             ` Pekka Enberg
2011-08-29 15:14                               ` Jeff Garzik
2011-08-29 16:16                               ` Josh Triplett
     [not found]                 ` <alpine.DEB.2.00.1108252310490.22479@localhost6.localdomain6>
     [not found]                   ` <CA+55aFy3TUT=BFD+Nb9H6uDBhz427kC4tBc+ehQDs6JBggTuHQ@mail.gmail.com>
     [not found]                     ` <4E573A3E.6060104@kernel.org>
     [not found]                       ` <CA+55aFzbV0OvrtkzbjxvL1tkfF=+6xbBsyWb8XtAcK-YNeKjZw@mail.gmail.com>
     [not found]                         ` <alpine.DEB.2.00.1108271214410.14365@localhost6.localdomain6>
     [not found]                           ` <CA+55aFzbfD4RDe52HCL9mfSYMzFdvP96OiK5ifkfUKNkzjJNrg@mail.gmail.com>
2011-08-29 19:45                             ` Pekka Enberg
2011-08-29 19:52                               ` Jeff Garzik
2011-08-29 20:32                               ` Linus Torvalds
2011-08-29 20:42                                 ` Pekka Enberg

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='CAOJsxLEf=G90sveWrrmsx1nXFXi+pvPvjHBy=D6WC85sDz7F7g@mail.gmail.com' \
    --to=penberg@kernel.org \
    --cc=jeff@garzik.org \
    --cc=josh@joshtriplett.org \
    --cc=linux-sparse@vger.kernel.org \
    --cc=torvalds@linux-foundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.