All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dibyendu Majumdar <mobile@majumdar.org.uk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>,
	Linux-Sparse <linux-sparse@vger.kernel.org>
Subject: Re: sparse-llvm array size computation issue
Date: Wed, 29 Mar 2017 21:24:07 +0100	[thread overview]
Message-ID: <CACXZuxcPzvi0F1da2oQWdGx2bEGLqpBrPTzWbc4ULV7KqyHF0g@mail.gmail.com> (raw)
In-Reply-To: <CACXZuxdmV+KGKMEPOmjcyipArp1czg-gpDeXZi7NUfcdkJ-ZHw@mail.gmail.com>

On 29 March 2017 at 19:12, Dibyendu Majumdar <mobile@majumdar.org.uk> wrote:
> On 29 March 2017 at 17:41, Linus Torvalds <torvalds@linux-foundation.org> wrote:
>> On Wed, Mar 29, 2017 at 9:21 AM, Dibyendu Majumdar
>> <mobile@majumdar.org.uk> wrote:
>>>
>>> I am trying out an approach. If a SYM_NODE has a base type of SYM_NODE
>>> then which of the nodes should be used as the source for information
>>> you mention?
>>
>> Does that actually happen? It shouldn't. A symbol node contains the C
>> name of the symbol, but you should never have a SYM_NODE that points
>> to another SYM_NODE, it always points to some actual type (ie ptr,
>> whatever).
>>
>> So the rule should be that the node can have specific information
>> about that particular named symbol (so: name, array size, modifiers,
>> address space, initializer etc), and then the node->ctype.base_type
>> should point to a non-NODE symbol describing the base type.
>>
>
> Okay thank you - that's good to know. It wasn't obvious to me looking
> at the code, and I thought I had seen an example where a node
> contained another node ... but I cannot find this now, so I may have
> been mistaken.
>

I have implemented a solution in my repository (link below). Basically
I split the symbol_type() function into three:

get_symnode_type() - when we know the symbol is a SYM_NODE
get_symnode_or_basetype() - when we do not know whether a symbol is
SYM_NODE or not

The original symbol_type() is renamed to type_to_llvmtype() and it:
a) takes extra argument that if not NULL is a SYM_NODE
b) the original symbol parameter can never be a SYM_NODE.

My tests pass. I do not know that I have been as conservative I could
- i.e. where the symbol is known to be a SYM_NODE or a base type - it
would be good to be as specific as possible.

Here is the link to my version:

https://github.com/dibyendumajumdar/dmr_c/blob/master/llvm-backend/sparse-llvm.c

Thanks and Regards
Dibyendu

  reply	other threads:[~2017-03-29 20:24 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-28 20:25 sparse-llvm array size computation issue Dibyendu Majumdar
2017-03-28 20:41 ` Dibyendu Majumdar
2017-03-28 20:49   ` Luc Van Oostenryck
2017-03-28 21:06     ` Dibyendu Majumdar
2017-03-28 21:14       ` Dibyendu Majumdar
2017-03-28 21:33         ` Luc Van Oostenryck
2017-03-28 21:43           ` Dibyendu Majumdar
2017-03-28 22:21             ` Luc Van Oostenryck
2017-03-29 11:32               ` Dibyendu Majumdar
2017-03-29 14:41                 ` Dibyendu Majumdar
2017-03-29 15:10                   ` Luc Van Oostenryck
2017-03-29 16:21                     ` Dibyendu Majumdar
2017-03-29 16:41                       ` Linus Torvalds
2017-03-29 18:12                         ` Dibyendu Majumdar
2017-03-29 20:24                           ` Dibyendu Majumdar [this message]
2017-12-28 21:30         ` Luc Van Oostenryck

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=CACXZuxcPzvi0F1da2oQWdGx2bEGLqpBrPTzWbc4ULV7KqyHF0g@mail.gmail.com \
    --to=mobile@majumdar.org.uk \
    --cc=linux-sparse@vger.kernel.org \
    --cc=luc.vanoostenryck@gmail.com \
    --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.