All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Garzik <jeff@garzik.org>
To: Pekka Enberg <penberg@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Sparse Mailing-list <linux-sparse@vger.kernel.org>
Subject: Re: [PATCH] Re: LLVM and PSEUDO_REG/PSEUDO_PHI
Date: Sun, 28 Aug 2011 06:04:15 -0400	[thread overview]
Message-ID: <4E5A129F.1090801@garzik.org> (raw)
In-Reply-To: <alpine.DEB.2.00.1108280815530.2734@localhost6.localdomain6>

On 08/28/2011 01:16 AM, Pekka Enberg wrote:
> On Sat, 27 Aug 2011, Jeff Garzik wrote:
>> OK, I lied. Function call support (OP_CALL) sent your way via github
>> pull request.
>
> Pulled, thanks!

(added list to CC)

Just sent another, tiny pull req.  That's it for tonight.

Random thoughts / backend status:

* it will soon be necessary to pay more attention to target-specific 
details.  we need some mechanism for specifying i386, x86-64, etc. so 
that we may fill in bits_in_pointer and similar values properly.  This 
may involve some sparse hacking IIRC, because sparse (used to be?) 
largely hardcoded to use i386 target values when checking.  Or maybe 
this is already done, and I just am ignorant of that area of the code.

* playing with some simple loop test cases, we are blocked on properly 
listing out all phi's in an OP_PHI.  sparse correctly sends us 
OP_PHISOURCE, and test-linearize output looks good, but if the phisrc is 
from a succeeding basic block, we may lack 'priv' necessary to fill in 
LLVMValueRef required by LLVM phi machinery.

* my development workflow is very simple.  create testcase; look at 
test-linearize output; observe how linearize.c's show_instruction() and 
show_pseudo() walk their data structures; copy this into sparse-llvm.

* it would be nice to get "printf(hello world)" working all the way 
through sparsec.

* need to start integrating struct support.  LLVM has a type system 
where one defines data structures in the IR, then uses 'getelementptr' 
LLVM instruction to build addresses for complex load/store operations. 
The Linux kernel uses a lot of function calls (indirect branches) from 
values buried deep within a struct.


       reply	other threads:[~2011-08-28 10:04 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                           ` Jeff Garzik [this message]
2011-08-28 10:18                             ` [PATCH] Re: LLVM and PSEUDO_REG/PSEUDO_PHI 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
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=4E5A129F.1090801@garzik.org \
    --to=jeff@garzik.org \
    --cc=linux-sparse@vger.kernel.org \
    --cc=penberg@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.