Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Storing values in global variables"
2020 Jul 15
2
[MTE] Tagging Globals
Hello,
We're evaluating memory tagging (MTE) on some internal workloads.
We noticed that stack variables are tagged by an instrumentation pass and heap objects are handled by the allocator (Scudo).
How about global variables? We tried a simple case using -march=armv8a+memtag -fsanitize=memtag, but found no tagging:
Are we missing anything or tagging globals is still in progress?
int
2020 Jul 15
2
[MTE] Tagging Globals
Thanks for the update, Phillips.
Yes, please add me, Stephen and Ana (CCed) to Phabricator reviews.
Zhaoshi
From: Mitch Phillips <mitchp at google.com>
Sent: Tuesday, July 14, 2020 19:10
To: Zhaoshi Zheng <zhaoshiz at quicinc.com>
Cc: llvm-dev at lists.llvm.org; Stephen Long <steplong at quicinc.com>
Subject: [EXT] Re: [llvm-dev] [MTE] Tagging Globals
Hi Zhaoshi,
Currently
2019 May 25
3
llvm pass
Hi list,
I have several questions about LLVM pass.
1) Is building a custom LLVM pass out-of-source not recommended?
The official document only contains instructions about in-source build (http://llvm.org/docs/WritingAnLLVMPass.html <http://llvm.org/docs/WritingAnLLVMPass.html>).
2) opt (ver >= 4) with custom pass libraries does not work as before. When I have a simple custom LLVM pass
2009 Aug 23
1
[LLVMdev] Having JIT resolve extern "C" functions declared in executible
2009/8/22 Bill Wendling <isanbard at gmail.com>:
> I think you might have to provide an empty list if your function doesn't
> take parameters. Maybe using an irbuilder would help?
It does take one parameter. Here's the important bits:
// My Function
extern "C"
void print(double X) {
printf("%f\n", X);
}
// Args type
std::vector<const Type*>
2009 Aug 22
0
[LLVMdev] Having JIT resolve extern "C" functions declared in executible
I think you might have to provide an empty list if your function
doesn't take parameters. Maybe using an irbuilder would help?
-bw
On Aug 22, 2009, at 2:13 PM, Renato Golin <rengolin at systemcall.org>
wrote:
> 2009/7/4 Albert Graef <Dr.Graef at t-online.de>:
>> This is all I ever needed to interface to C functions using LLVM.
>> It's
>> really
2009 Aug 22
1
[LLVMdev] Having JIT resolve extern "C" functions declared in executible
2009/7/4 Albert Graef <Dr.Graef at t-online.de>:
> This is all I ever needed to interface to C functions using LLVM. It's
> really easy. Of course you still need a prototype of the external
> function (function definition without body) in your IR, but that's it.
Hi Albert,
I'm having a similar problem and I found I can't declare the function
and use it, most likely
2019 Jul 03
2
optimisation issue in an llvm IR pass
Hello,
I have an optimisation issue in an llvm IR pass - the issue being that
unnecessary instructions are generated in the final assembly (with -O3).
I want to create the following assembly snippet:
mov dl,BYTE PTR [rsi+rdi*1]
add dl,0x1
adc dl,0x0
mov BYTE PTR [rsi+rdi*1],dl
however what is created is (variant #1):
mov dl,BYTE PTR [rsi+rdx*1]
add dl,0x1
cmp
2015 Jun 24
3
[LLVMdev] how to compile a large project to LLVM IR?
> On Jun 24, 2015, at 10:19 AM, Eli Bendersky <eliben at google.com> wrote:
>
>
>
> On Wed, Jun 24, 2015 at 7:05 AM, Q Z <zhaoqian301 at gmail.com <mailto:zhaoqian301 at gmail.com>> wrote:
> Hello,I want to compile a large project(for example,Apache httpd) to one .bc file. How can I do this? Can you give me some examples?
>
>
> In general, if the
2015 Mar 10
4
[LLVMdev] noob IR builder question
I am trying to get a handle on IR builder, at least some basics. I ran through a tutorial here: Create a working compiler with the LLVM framework, Part 1 <http://www.ibm.com/developerworks/library/os-createcompilerllvm1/>, and it worked well enough. I have some simple code that creates a hello world IR. I am trying to now bring in some concepts from the Kaleidoscope tutorial, namely
2012 Oct 18
1
[LLVMdev] Incrementing a pointer to array element?
Using the LLVM C++ API, if I want to create an array via an Alloca instruction like:
Value *a = ir_builder.CreateAlloca( my_type, my_size );
and then I want to initialize each element of the array with values computed elsewhere like:
for ( vector<Value*>::const_iterator i = v.begin(); i != v.end(); ++i ) {
builder.CreateStore( *i, a );
// How do I increment 'a' to point to
2020 Jul 15
2
[MTE] Tagging Globals
Not at this stage -- no.
On Wed, Jul 15, 2020 at 3:23 PM Zhaoshi Zheng <zhaoshiz at quicinc.com> wrote:
> Mitch,
>
>
>
> I forgot to ask: do you have any timeline on sharing it through
> Phabricator?
>
>
>
> Thanks,
>
> Zhaoshi
>
>
>
> *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org> *On Behalf Of *Zhaoshi
> Zheng via llvm-dev
2019 Jul 03
3
optimisation issue in an llvm IR pass
Hi Craig,
On 03.07.19 17:33, Craig Topper wrote:
> Don't the CreateICmp calls return a Value* with an i1 type? But then
> they are added to an i8 type? Not sure that works.
I had that initially:
auto cf = IRB.CreateICmpULT(Incr, ConstantInt::get(Int8Ty, 1));
auto carry = IRB.CreateZExt(cf, Int8Ty);
Incr = IRB.CreateAdd(Incr, carry);
it makes no difference to the generated assembly
2012 Apr 23
1
[LLVMdev] Problem about the type of Function's arguement in llvm
I read the tutorial doc and some info of SSA, finally understand it. Thanks
for your help.
And the segmentation error of loading arguementation occurs, (gdb error
info)
Program received signal SIGSEGV, Segmentation fault.
0x0855bb68 in llvm::LoadInst::LoadInst(llvm::Value*, char const*, bool,
llvm::Instruction*) ()
code is like follows:
//#include necessary header files
int main(){
2015 Aug 05
2
[BUG] Incorrect ASCII escape characters on Mac
On Wed, 2015-08-05 at 10:02 -0400, Ramkumar Ramachandra wrote:
>
> - at 5 = internal global [10 x i8] c"\22\D0\12\F4!\00\15\F9\EC\E1"
> - at 6 = internal global [10 x i8] c"\D0\19\FB+\FD\F8#\03\E2\11"
> + at 5 = internal global [10 x i8] c"\22Ð\12ô!\00\15ùìá"
> + at 6 = internal global [10 x i8] c"Ð\19û+ýø#\03â\11"
>
> The diff
2015 May 28
1
[LLVMdev] Passing ConstantDataArray to GetElementPtrInst
Hi, I'm having a hard time finding an answer to what I assume is a very basic
idea. I'm trying to produce this llvm code using the LLVM api:
%myString = alloca [13 x i8], i32 13
store [13 x i8] c"Hello world.\00", [13 x i8]* %myString
%tmp1 = getelementptr [13 x i8]* %myString, i32 0, i32 0
%tmp2 = call i32 (i8*, ...)* @printf( i8* %tmp1 ) nounwind
A simple Hello
2012 Apr 22
0
[LLVMdev] Problem about the type of Function's arguement in llvm
hi
On Sun, Apr 22, 2012 at 8:36 PM, Jianfei Hu <hujianfei258 at gmail.com> wrote:
> in the tutorial of official llvm doc, chapter 3, it deals with arguement of
> function as follow:
>
> for (Function::arg_iterator AI = F->arg_begin(); Idx != Args.size();
> ++AI, ++Idx) {
> AI->setName(Args[Idx]);
>
> // NamedValues is map<string, Value*>
2012 Apr 22
2
[LLVMdev] Problem about the type of Function's arguement in llvm
in the tutorial of official llvm doc, chapter 3, it deals with arguement
of function as follow:
for (Function::arg_iterator AI = F->arg_begin(); Idx != Args.size();
++AI, ++Idx) {
AI->setName(Args[Idx]);
// NamedValues is map<string, Value*>
NamedValues[Args[Idx]] = AI;
and when it try to get the value of arguement, it simply does:
Value
2017 Jun 04
2
[newbie] trouble with global variables and CreateLoad/Store in JIT
Emitting calls to these functions (written in an .ll file linked in) works
fine, and does the right thing.
%Any = type { i8*, i32 }
define dllexport void @setGlobal(%Any* %ptr, %Any %value) {
store %Any %value, %Any* %ptr
ret void
}
define dllexport %Any @getGlobal(%Any* %ptr) {
%val = load %Any, %Any* %ptr
ret %Any %val
}
Trying to replace the setGlobal call with what should be
2017 Jun 05
2
[newbie] trouble with global variables and CreateLoad/Store in JIT
Since the getelementptrs were implicitly generated by the CreateStore/Load
I'm not sure how to get access to them.
So I hacked the assignment to be done thrice: once using a manual
decomposition into two GEPs and stores, once using the "big" CreateStore,
once via the setGlobal function, printing addresses and memory contents at
each point to the degree that I have access to them.
2017 Jul 10
2
Problems with registering of ModulePass (with Dependencies)
Hello,
I have created a ModulePass, that now needs LoopInfo information.
The ModulePass registration is taken from [1]. I use clang to directly invoke
it (This is also a hard requirement, because I need the fancy output of clang
warnings/remarks).
The problem is, that the dependency to the LoopInfoWrapperPass does not seem
to work. The error is:
--- snip ---
clang-4.0: