similar to: [LLVMdev] Some small changes to the memory dependence analysis API

Displaying 20 results from an estimated 900 matches similar to: "[LLVMdev] Some small changes to the memory dependence analysis API"

2013 Aug 07
1
[LLVMdev] DSA - LocalDataStructures pass does not create DSGraphs
Hallo. I wanted to use the DSA from the poolalloc project as a starting point for static C code analysis (for me it has some benefits to work on LLVM-IR (generated by clang) instead of C code). Currently there is no poolalloc version 3.3. Therefore I wrote a quick patch to make poolalloc 3.2 compile with llvm 3.3 (mostly adaptions to file relocations were necessary). The patch is attached as
2018 Mar 08
1
[RFC] jump threading on std::pair<int, bool>
Hi, While comparing the code by LLVM and GCC for some major libraries, I found that LLVM fails to apply jump threading with a method whose return type is std::pair<int, bool> (actually, any pair of 32-bit values like std::pair<bool, int> and std::pair<int, int>). For example, jump threading does not work for the if statement in func. std::pair<int, bool> callee(int v) {
2013 Aug 26
0
[LLVMdev] Question about boolean type variable generation of Global Variable Optimization
Hi all, I have tested a simple example with '-Ox' optimization options and saw transformation from specific global variable to boolean variable. I would like to know what kind of advantages come from this . The simplified example is as following: Source code: static unsigned int g_3461 = 0xffffffff; unsigned int test(unsigned int a) { printf("g_3461=%d\n", g_3461);
2018 Aug 23
2
[RFC] "Properly" Derive Function/Argument/Parameter Attributes
After I spend some time working with the function attribute* deduction pass** [1,3], I would like to propose a "proper" organization***. Why? Because we do not derive nearly as many attributes as we could****, while we do maintain various (separate and diffently organized) "data-flow-like analyses" to do so. What else? I propose a single optimistic data-flow
2017 Mar 31
2
Dereferenceable load semantics & LICM
Hi all, I have a question about dereferenceable metadata on load instruction. I have a patch (https://reviews.llvm.org/D31539) for LICM that hoists loads with !invariant.group. The motivation example is devirtualization: struct A { virtual void foo(); }; int bar(); void indirect(A &a) { while(bar()) a.foo(); } With -O2 -fstrict-vtable-pointers we get: define void
2005 Jun 09
1
single assignment affecting multiple sub-structures (PR#7924)
I'm trying to create a language structure that is a call to a function with a number of arguments that is only known at run time. I do this by using repeated indices to expand out a call with a single argument. However, when I change one of the arguments, all are changed. I don't see the same behavior when I initially create a call with multiple arguments. Even more strangely,
2013 Apr 28
0
hierarchical confirmatory factor analysis with sem package
Hi, I am doing a hierarchical CFA using the sem package. I have 20 items, and I have 2 factors (F3 and F4), and also F1 and F2 are nested within F3. Here is the code that I have, but it is giving me an error message "Warning message: In eval(expr, envir, enclos) : Negative parameter variances. Model may be underidentified." and a further error "Error in summary.objectiveML(cfa,
2006 Jun 28
0
Fwd: add1() and anova() with glm with dispersion
> Hello, > > I have a question about a discrepancy between the > reported F statistics using anova() and add1() from > adding an additional term to form nested models. > > I found and old posting related to anova() and > drop1() regarding a glm with a dispersion parameter. > > The posting is very old (May 2000, R 1.1.0). > The old posting is located here. >
2016 Dec 23
2
[canonicalization] GEP 0, 0
Hi everyone, I started digging into MemDep to enhance devirtualization and I found out that it doesn't handle invariant.group if it will find GEP 0, 0. If I understand it correctly getelementptr with zeros is just bitcast. Is there any good reason why it is not canonicalized into bitcast? Example: define void @_Z5testGv() local_unnamed_addr #0 { entry: * %a* = alloca %struct.A, align 8
2013 Jun 08
0
[LLVMdev] Canonicalization of select vs shift
I decided to pump some IR through the optimizers and was surprised to find that we don't choose to canonicalize any of the following functions to the other even though they are all roughly the same. define i32 @f1(i32 %x, i32 %m) #0 { entry: %and = and i32 %m, 32896 %tobool = icmp ne i32 %and, 0 %cond = select i1 %tobool, i32 8, i32 0 %shr = lshr i32 %x, %cond ret i32 %shr } ;
2011 Dec 27
2
[LLVMdev] InstCombine "pessimizes" trunc i8 to i1?
Hi! before InstCombine (llvm::createInstructionCombiningPass()) I have a trunc from i8 to i1 and then a select: %45 = load i8* @myGlobal, align 1 %tobool = trunc i8 %45 to i1 %cond = select i1 %tobool, float 1.000000e+00, float -1.000000e+00 after instCombine I have: %29 = load i8* @myGlobal, align 1 %30 = and i8 %29, 1 %tobool = icmp ne i8 %30, 0 %cond = select i1 %tobool, float 1.000000e+00,
2011 Dec 28
0
[LLVMdev] InstCombine "pessimizes" trunc i8 to i1?
On Dec 27, 2011, at 5:09 AM, Jochen Wilhelmy wrote: > Hi! > > before InstCombine (llvm::createInstructionCombiningPass()) I have > a trunc from i8 to i1 and then a select: > > %45 = load i8* @myGlobal, align 1 > %tobool = trunc i8 %45 to i1 > %cond = select i1 %tobool, float 1.000000e+00, float -1.000000e+00 > > after instCombine I have: > > %29 = load i8*
2010 Jun 09
1
counting across leves of factors
I have dataframe with 17factors variables (for example every factor have 3levels) I have maybe 5000 observation. And i need to do table where is in every raw 1 of possible combination of this factors and the numbur how many time is this combination in my dataset. I wrote one code, but this is very slow and dumb. it looks like this: i<-0 for(i1 in levels(hivdat$pohl)){
2013 Mar 11
0
[LLVMdev] How to detect all free() calls
if you don't include stdlib.h, where free() is declared, you'll simply get a default C function signature: int free(...); On Mon, Mar 11, 2013 at 1:56 AM, Jane <270611649 at qq.com> wrote: > Thanks. isFreeCall() works well but for > %call2 = call i32 bitcast (i32 (...)* @free to i32 (i8*)*)(i8* %call1) > nounwind, !dbg !16 > So I tried to figure out when the above
2013 Feb 14
2
Plotting survival curves after multiple imputation
I am working with some survival data with missing values. I am using the mice package to do multiple imputation. I have found code in this thread which handles pooling of the MI results: https://stat.ethz.ch/pipermail/r-help/2007-May/132180.html Now I would like to plot a survival curve using the pooled results. Here is a reproducible example: require(survival) require(mice) set.seed(2) dt
2008 Aug 12
4
[LLVMdev] Eliminating gotos
Hi, Comments inline. Ben On 12/08/2008 03:14, "Owen Anderson" <resistor at mac.com> wrote: >> We would like to develop a code generator using LLVM for a target language >> that does not support conditional branches and in fact only supports >> structured control flow, eg. If and while. What's the difference between an "if" and a conditional
2011 Dec 28
3
[LLVMdev] InstCombine "pessimizes" trunc i8 to i1?
>> Hi! >> >> before InstCombine (llvm::createInstructionCombiningPass()) I have >> a trunc from i8 to i1 and then a select: >> >> %45 = load i8* @myGlobal, align 1 >> %tobool = trunc i8 %45 to i1 >> %cond = select i1 %tobool, float 1.000000e+00, float -1.000000e+00 >> >> after instCombine I have: >> >> %29 = load i8*
2013 Mar 11
2
[LLVMdev] How to detect all free() calls
Thanks. isFreeCall() works well but for %call2 = call i32 bitcast (i32 (...)* @free to i32 (i8*)*)(i8* %call1) nounwind, !dbg !16 So I tried to figure out when the above instruction occurred. When <stdlib.h> is included, free(buf2R1); turn into call void @free(i8* %call1) nounwind, !dbg !16 when I forget to include <stdlib.h>, free(buf2R1); turn into %call2 = call i32 bitcast (i32
2009 Oct 07
0
how to extract the second table from the factanal functions result's loadings part?
Hi All, Can someone help me?The way to do this may be very easy but i do not know. *Question1:----* factanal() function produces the results in this way:-- *RESULTS:--* *>fact1<- factanal(data_withNA,factors=1,rotation="none") >fact1$"loadings"* Loadings: Factor1 i1 0.784 i2 0.874 i3 0.786 i4 0.839 i5 0.778 i6 0.859 i7 0.850 i8 0.763 i9 0.810 i10 0.575
2011 Dec 29
0
[LLVMdev] InstCombine "pessimizes" trunc i8 to i1?
I think Chris is saying that the and is necessary because with your i1 trunc you're ignoring all of the high bits. The and implements that. If you don't want this behavior, don't generate the trunc in the first place and just compare the full width to zero. Reid On Wed, Dec 28, 2011 at 6:45 AM, Jochen Wilhelmy <j.wilhelmy at arcor.de>wrote: > > >> Hi! >