Re: Possible incorrect linearization of code (master branch)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Chris,

On 7 March 2017 at 15:45, Christopher Li <sparse@xxxxxxxxxxx> wrote:
> On Tue, Mar 7, 2017 at 6:39 AM, Dibyendu Majumdar
> <mobile@xxxxxxxxxxxxxxx> wrote:
>
>> As I mentioned before I am using Sparse to create a JIT compiler for
>> C. So this needs to be callable as a library - and I need the ability
>> to call it many times. Moreover it must be possible to call several
>> instances of Sparse simultaneously without conflict. To achieve all
>> this, all global state is held in a set of structures. The main change
>> is that the most function calls have an additional argument. The other
>
> Adding an additional argument is a very big change.
>

Indeed.

>
>> changes are related to initialization of the various global structures
>> used by Sparse.
>
> In your usage case, is it possible to use some kind of lock to avoid
> racing to initialize sparse?
>

It is not just the initialization - any execution of Sparse would have
to be restricted by locking.

>> Generally I try to keep the code as far as possible
>> identical to Sparse except for these changes. Even so merging is very
>> painful.
>
> May be need a script of some short to automate part of the change.
>
> Do you have that big and painful change already?
>

Yes, I also have some other changes to ensure that the code can be
compiled on Windows using Visual C++, plus I am using a CMake build
system. I have not converted all the code in Sparse - just the main
library, and the LLVM backend. I intend to add other backends in the
future as LLVM is too slow for a JIT engine.

You can see my project at https://github.com/dibyendumajumdar/dmr_c.

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



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux