Displaying 20 results from an estimated 50000 matches similar to: "[LLVMdev] [RFC] Exhaustive bitcode compatibility tests for IR features"
2014 Sep 19
4
[LLVMdev] [RFC] Exhaustive bitcode compatibility tests for IR features
> On Sep 19, 2014, at 9:57 AM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:
>
> So the proposal is that during development new features are added to
> test/Features/compatibility.ll (or some other name). When 3.6 is
> released, we will
>
> * assemble the file with llvm-as-3.6.
> * Check in the .bc file as test/Features/Input/compatibility-3.6.bc
> *
2014 Sep 19
2
[LLVMdev] [RFC] Exhaustive bitcode compatibility tests for IR features
This sounds like a good plan. Initially, the tests will be very
repetitious, but over time as we make changes they will diverge. For
example, before swapping the order of 'alias' and linkage in the IL, we
would've had:
@a = alias weak i8* @target
; CHECK: @a = alias weak i8* @target
This would've been copied to compatibility-3.N.ll for the previous release
before the change, and
2014 Nov 08
2
[LLVMdev] [RFC] Exhaustive bitcode compatibility tests for IR features
It sounds like the Android RenderScript guys have the most in-the-trenches
experience with bitcode incompatibilities. Stephen Hines (CC'd), what sorts
of incompatibilities have you guys seen during the 3.x timeline? Would
Steven Wu's proposal catch the sorts of incompatibilities that you guys
have seen?
-- Sean Silva
On Thu, Nov 6, 2014 at 4:38 PM, Steven Wu <stevenwu at apple.com>
2014 Jul 03
5
[LLVMdev] Global constructors "get lost" when transforming bitcode files
Hello,
A strange problem appears when upgrading from release_34 to testing. Some
transformations to bitcode files cause registered global_ctors to not be
called. Here's an example (I've also attached the complete example and
pasted it below):
This works:
clang -fsanitize=address -flto -c -o sum.o sum.c
clang -fsanitize=address -o sum sum.o
This doesn't work:
clang
2010 Apr 11
1
[LLVMdev] llvm.global_ctors and other "appending linkage" global variables?
Can anyone explain how llc translates "appending linkage" global
variables like llvm.global_ctors into assembly? In the case I am
examining, the global_ctor variables are in multiple bitcode object
modules produced by the llvm compiler as arrays of pointers. As
documented, the arrays seem to be combined when the different bitcode
object modules are linked into one, so now there is one
2010 Jan 31
2
[LLVMdev] Boehm GC + static variables?
Hi,
I'm running LLVM bitcode generated by my compiler under lli. The bitcode is
linked against Boehm GC (lli -load=/usr/lib/libgc.so).
It looks like Boehm GC isn't scanning global variables and as a result
objects referenced only through globals are being prematurely collected. I
understand that Boehm GC needs to see the data segment containing my global
variables as a root. For native
2009 Sep 05
2
[LLVMdev] should we stop using llvm-as/llvm-dis in tests?
A recent commit added the ability to opt and llc to read .ll files
directly. Should we go through and update the existing tests?
llvm-as < %s | opt ... | llvm-dis
would become:
opt %s ... -print-module
and
llvm-as < %s | llc
would become:
llc < %s
The pro of this is that it would remove the bitcode write and read from
the tests, making them faster. The con of this is
2010 Jan 31
0
[LLVMdev] Boehm GC + static variables?
I've implemented this by adding calls to GC_add_roots(<first global in
module>,<last global in module>+1) to the llvm.global_ctors before any other
static initialization code for the module.
This should be safe assuming that:
- global variables are laid out in memory in the order they appear in their
module (and ideally contiguously without being interleaved with any other
values)
2014 Jul 31
2
[LLVMdev] Inconsistent third field in global_ctors (was Re: [llvm] r214321 - UseListOrder: Visit global values)
On Wed, Jul 30, 2014 at 3:46 PM, Rafael Espíndola <
rafael.espindola at gmail.com> wrote:
> > Looking a little deeper, it's not "old-style" exactly; rejecting this
> > isn't trivial.
> >
> > - According to LangRef, the third field is optional [1].
> >
> > [1]:
> http://llvm.org/docs/LangRef.html#the-llvm-global-ctors-global-variable
2010 Jan 31
1
[LLVMdev] Boehm GC + static variables?
You should look at
http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/JITMemoryManager.h?view=markup
and see if inheriting from that and overriding allocateGlobal() will
do what you want.
I'm a little surprised the boehm gc doesn't already see the globals,
since there's a reference to their memory from the JMM, but maybe it
doesn't scan mmap regions by
2014 Jul 30
2
[LLVMdev] Inconsistent third field in global_ctors (was Re: [llvm] r214321 - UseListOrder: Visit global values)
+reid, +llvmdev, -llvm-commits
> On 2014-Jul-30, at 11:56, Rafael Avila de Espindola <rafael.espindola at gmail.com> wrote:
>
>
>> I think the fix is to upgrade old-style global arrays (or reject
>> them?) in the .ll parser.
>>
>
> The .ll format is not stable, so you should be able to just reject it.
Looking a little deeper, it's not
2020 Feb 18
2
LLD doesn't handle globals with appending linkage
On Tue, Feb 18, 2020 at 9:42 PM David Blaikie <dblaikie at gmail.com> wrote:
> I'm /guessing/ this might be related to the COFF support specifically
> (perhaps COFF has no appending linkage support - in some cases LLVM IR
> supports the union of all semantics so that different formats can be fully
> expressed - but it means when targeting certain formats, some features are
2015 Sep 10
2
Rewriting LLVM IR intrinsic functions
On 10 Sep 2015, at 10:09, serge guelton via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> On Thu, Sep 10, 2015 at 04:20:01PM +0800, Dipanjan Das via llvm-dev wrote:
>> Hello,
>>
>> I can see the occurrences of several LLVM intrinsic functions in the LLVM
>> IR generated by llvm-dis disassembler. Is there any means to rewrite these
>> functions
2017 Jun 20
2
JIT, LTO and @llvm.global_ctors: Looking for advise
Thanks for the hindsight.
I am currently working on a patch/potential fix which introduces a new
Linker::ImportIntrinsicGlobalVariables flag. The patch includes a unit
test reproducing the problem. Hopefully, that will help getting more
feedback.
Note that it might take a while before I am allowed to upload the patch
since I need approval from Autodesk Legal department.
Cheers,
Benoit
Benoit
2014 Jul 31
2
[LLVMdev] Inconsistent third field in global_ctors (was Re: [llvm] r214321 - UseListOrder: Visit global values)
> On 2014-Jul-30, at 18:05, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
>
>> On 2014-Jul-30, at 17:19, Reid Kleckner <rnk at google.com> wrote:
>>
>>> On Wed, Jul 30, 2014 at 3:46 PM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:
>>>> Looking a little deeper, it's not "old-style" exactly; rejecting this
2017 Jun 20
2
JIT, LTO and @llvm.global_ctors: Looking for advise
Thanks Peter, this is very useful feedback.
I did manage to change the behavior of LinkOnlyNeeded to correctly import
all variables with AppendingLinkage. In fact, I discovered that there was
already something fishy. A variable with AppendingLinkage would get
imported correctly from the source module if the destination module
already contained a definition for that variable and wouldn't be
2017 Jun 19
2
JIT, LTO and @llvm.global_ctors: Looking for advise
Hi Everyone,
We are looking for advise regarding the proper use of LTO in
conjunction with just-in time generated code. Our usage scenario goes
as follows.
1. Our front-end generates an LLVM module.
2. A small runtime support library is linked-in. The runtime
library is distributed as bitcode. It is generated using "clang++
-emit-llvm' and 'llvm-link'. This allows
2014 Jul 31
2
[LLVMdev] Inconsistent third field in global_ctors (was Re: [llvm] r214321 - UseListOrder: Visit global values)
> On 2014-Jul-31, at 10:07, Reid Kleckner <rnk at google.com> wrote:
>
>> On Thu, Jul 31, 2014 at 9:49 AM, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
>> Hold on, I'm still not sure what kind of guarantees (restrictions) the C
>> API imposes.
>>
>> If I implement (2), then -verify will fail if someone (e.g.) adds
>>
2018 Jan 17
2
Dumping debug information from BC files
The debug information is actually still in a different format in the .bc
file, it is LLVM metadata. I think the best reference for it is here:
https://llvm.org/docs/SourceLevelDebugging.html#ccxx-frontend
You can dump it just by disassembling the .bc file to textual IR using
llvm-dis and examining the !DI* metadata nodes. You will have to run the
file through llc to generate an object file to
2011 Mar 16
5
[LLVMdev] Bug in opt
I have a problem.
I'm writing a C compiler in my favorite programming language (don't ask :-)
I have made a .s file, which can be correctly assembled
and run with lli. But when I optimize it I get no errors
from the optimizer, but the resultant file is incorrect.
Here's what happens:
llvm-as test2_gen.s %% no errors test2_gen.s.bc is produced
lli test2_gen.s.bc
n=887459712