Displaying 20 results from an estimated 400 matches similar to: "[LLVMdev] Problem with intrinsics"
2019 Dec 18
2
Missing code depending on a #ifdef within the .ll file
Hi all,
I have managed to compile libpng using wllvm and obtain the IR of pngpixel
( small tool which is part of libpng ).
libpng has a function called png_check_IHDR:
void /* PRIVATE */
png_check_IHDR(png_const_structrp png_ptr,
png_uint_32 width, png_uint_32 height, int bit_depth,
int color_type, int interlace_type, int compression_type,
int filter_type)
{
int error = 0;
/*
2017 Jan 02
2
RFC: Allowing @llvm.objectsize to be more conservative with null.
Hi George,
On Mon, Jan 2, 2017 at 10:41 AM, George Burgess IV
<george.burgess.iv at gmail.com> wrote:
> Thanks for the comments!
>
>> Have you considered changing our existing behavior to match GCC's
>> builtin_object_size instead of adding a new parameter
>
> Yup! My issue with turning `i1 %min` into `i8 %flags` is that
> __builtin_object_size would get
2019 Jan 13
2
Convert commands in make to llmv commands for code analysis
This URL mentions using LLVM IR to perform code analysis.
https://stackoverflow.com/questions/9939794/how-to-use-llvm-to-generate-a-call-graph
But the first problem to solve is how to convert the commands used in
Makefiles to the corresponding LLVM commands.
https://pastebin.com/RcnA14Qa
The above URL shows the makefile screen output from the bash source
code. Where `gcc -c`, `gcc` (link with
2017 Jan 02
2
RFC: Allowing @llvm.objectsize to be more conservative with null.
Hi George,
Have you considered changing our existing behavior to match GCC's
builtin_object_size instead of adding a new parameter? That may be
simpler overall. There's also a clear upgrade strategy -- fold every
old style call to "<min> ? 0 : 1".
You probably already know this, but GCC folds
builtin_object_size(0, 0) to -1 and builtin_object_size(0, 2) to 0.
We'll
2009 Dec 23
5
[LLVMdev] Build Failure!
This is a new build failure as of today. Does this look familiar to anyone?
-bw
llvm[2]: Compiling CommonProfiling.ll to CommonProfiling.bc for Debug build (bytecode)
Intrinsic parameter #1 is wrong!
i64 (i8*, i32)* @llvm.objectsize.i64
Intrinsic parameter #1 is wrong!
i64 (i8*, i32)* @llvm.objectsize.i64
Intrinsic parameter #1 is wrong!
i64 (i8*, i32)* @llvm.objectsize.i64
Intrinsic parameter
2019 Dec 18
2
Missing code depending on a #ifdef within the .ll file
Hi David,
My question is: why both #ifdef and #else branches are missing? I think at
least one of the two should be present... In fact there is a case where the
width could be greater then
PNG_USER_WIDTH_MAX but not greater then PNG_UINT_31_MAX. That's why I was
expecting at least one of the two...
Thanks
Alberto
On Wed, Dec 18, 2019, 22:12 David Blaikie <dblaikie at gmail.com>
2016 Dec 21
2
RFC: Allowing @llvm.objectsize to be more conservative with null.
tl;dr: We'd like to add a bit to @llvm.objectsize to make it optionally be
conservative when it's handed a null pointer.
Happy Wednesday!
We're trying to fix PR23277, which is a bug about how clang+LLVM treat
__builtin_object_size when it's given a null pointer. For compatibility
with GCC, clang would like to be able to hand back a conservative result
(e.g. (size_t)-1), but the
2018 Jun 29
2
Cleaning up ‘br i1 false’ cases in CodeGenPrepare
> we lower llvm.objectsize later than we should
Is there a well-accepted best (or even just better) place to lower
objectsize? I ask because I sorta fear that these kinds of problems will
become more pronounced as llvm.is.constant, which is also lowered in CGP,
gains popularity.
(To be clear, I think it totally makes sense to lower is.constant and
objectsize in the same place. I'm just
2016 Mar 16
4
Problem with __builtin_object_size when it depends on a condition
Optimizer doesn't know how to calculate the object size when it finds
condition that cannot be eliminated. There is example:
-----------------------------------------------
#include<stdlib.h>
#define STATIC_BUF_SIZE 10
#define LARGER_BUF_SIZE 30
size_t foo(int flag) {
char *cptr;
char chararray[LARGER_BUF_SIZE];
char chararray2[STATIC_BUF_SIZE];
if(flag)
cptr =
2014 Nov 05
3
[LLVMdev] How to lower the intrinsic function 'llvm.objectsize'?
Thanks for your reply.
I'm attempting to expand KLEE to support this intrinsic function.
That's why I need to handle this myself.
According to the reply, the correct implementation should first find the
definition of the object and then determine the
size of the object.
BTW, can I just refer to the implementation in InstCombineCalls.cpp.
On Wed, Nov 5, 2014 at 2:24 PM, Matt Arsenault
2009 Dec 23
0
[LLVMdev] Build Failure!
My mistake. I needed to update llvm-gcc as well. Sorry for the noise.
-bw
On Dec 23, 2009, at 3:22 PM, Bill Wendling wrote:
> This is a new build failure as of today. Does this look familiar to anyone?
>
> -bw
>
> llvm[2]: Compiling CommonProfiling.ll to CommonProfiling.bc for Debug build (bytecode)
> Intrinsic parameter #1 is wrong!
> i64 (i8*, i32)* @llvm.objectsize.i64
2013 Feb 27
4
[LLVMdev] Question about intrinsic function llvm.objectsize
On Feb 27, 2013, at 4:05 AM, Nuno Lopes <nunoplopes at sapo.pt> wrote:
> Hi,
>
> Regarding the definition of object for @llvm.objectsize, it is identical to gcc's __builtin_object_size(). So it's not wrong; it's just the way it was defined to be.
>
> Regarding the BasicAA's usage of these functions, I'm unsure. It seems to me that isObjectSmallerThan()
2013 Feb 26
2
[LLVMdev] Question about intrinsic function llvm.objectsize
Hi,
In the following instruction sequence, llvm.objectsize.i64(p) returns
6 (the entire *.ll is attached to the mail).
Is this correct? Shouldn't the "object" refer to the entire block of
memory being allocated?
(char*) p = malloc(56)
llvm.objectisize.i32(p+50);
Thanks
Shuxin
This question is related to PR14988 (failure in bootstrap build with
LTO). Part of the
2014 Nov 05
3
[LLVMdev] How to lower the intrinsic function 'llvm.objectsize'?
The documentation of LLVM says that "The llvm.objectsize intrinsic is
lowered to a constant representing the size of the object concerned". I'm
attempting to lower this intrinsic function to a constant in a pass. Below
is the code snippet that I wrote:
for (BasicBlock::iterator i = b.begin(), ie = b.end();
(i != ie) && (block_split == false);) {
IntrinsicInst *ii =
2016 Mar 17
3
Problem with __builtin_object_size when it depends on a condition
I made a mistake here, I get zero same as you. I want to fix it to get
correct value.
On 16.03.2016. 19:28, Duncan P. N. Exon Smith wrote:
>> On 2016-Mar-16, at 09:39, Strahinja Petrovic via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>
>> Optimizer doesn't know how to calculate the object size when it finds condition that cannot be eliminated. There is example:
2013 Feb 27
0
[LLVMdev] Question about intrinsic function llvm.objectsize
Hi,
Regarding the definition of object for @llvm.objectsize, it is
identical to gcc's __builtin_object_size(). So it's not wrong; it's
just the way it was defined to be.
Regarding the BasicAA's usage of these functions, I'm unsure. It
seems to me that isObjectSmallerThan() also expects the same
definition, but I didn't review the code carefully.
When you do a
2013 Feb 27
0
[LLVMdev] Question about intrinsic function llvm.objectsize
Hi, Nuno and Arnold:
Thank you all for the input.
Let me coin a term, say "clique" for this discussion to avoid
unnecessary confusion.
A clique is statically or dynamically allocated type-free stretch of
memory. A "clique"
1) is maximal in the sense that a clique dose not have any
enclosing data structure that can
completely cover or, partially
2013 Feb 27
2
[LLVMdev] Question about intrinsic function llvm.objectsize
On Feb 27, 2013, at 12:37 PM, Shuxin Yang <shuxin.llvm at gmail.com> wrote:
> Hi, Nuno and Arnold:
>
> Thank you all for the input.
>
> Let me coin a term, say "clique" for this discussion to avoid unnecessary confusion.
> A clique is statically or dynamically allocated type-free stretch of memory. A "clique"
> 1) is maximal in the sense
2013 May 09
1
[LLVMdev] How should LLVM interpreter handle llvm.objectsize.i64
Hello LLVMer,
I use dragonegg to generate LLVM bitcode. Then I use LLVM interpreter to
execute what I get from compilation. However an error occurred and the
error
message is:
"LLVM ERROR: Code generator does not support intrinsic function
'llvm.objectsize.i64'!."
As far as I know, objectsize intrinsic is equivalent to gcc built-in
function
__builtin_object_size. But I don't
2012 May 30
0
[LLVMdev] alloc_size metadata
Hi Nuno,
>>> This is actually non-trivial to accomplish.
>>> Metadata doesn't count as a user, so internal functions with no
>>> other usage will get removed.
>>
>> I thought that it is possible to have passes run before the optimizer
>> performs such deletions. Is this not practical? Another option is to
>> change the current implementation