Displaying 20 results from an estimated 6000 matches similar to: "[LLVMdev] Pointer aliasing issue"
2010 Oct 11
0
[LLVMdev] Pointer aliasing issue
Hi Artiom,
> I have following C code:
>
> void factorial(float **a, float **b)
> {
> b[2][2] = a[0][2];
> b[2][2] = a[0][1];
> }
...
> Assuming that a and b arrays contains pointers that are not aliased,
> is it possible to remove the first store by using some C or LLVM IR specific
> declarations?
try this:
void factorial(float **
2010 Oct 11
1
[LLVMdev] Pointer aliasing issue
Unfortunately since in this example function arguments are array of
pointers, __restrict doesn't help.
Yes, using 2 stores into same location is intentional.
On Mon, Oct 11, 2010 at 12:20 PM, Duncan Sands <baldrick at free.fr> wrote:
> Hi Artiom,
>
> > I have following C code:
> >
> > void factorial(float **a, float **b)
> > {
> >
2010 Oct 11
0
[LLVMdev] Pointer aliasing issue
Hi,
I have a question regarding pointer aliasing.
I have following C code:
void factorial(float **a, float **b)
{
b[2][2] = a[0][2];
b[2][2] = a[0][1];
}
Which is converted to following LLVM IR:
define void @factorial(float** nocapture %a, float** nocapture %b) nounwind{
entry:
%0 = getelementptr inbounds float** %b, i64 2 ; <float**> [#uses=2]
%1 = load float** %0, align 8
2007 Sep 06
6
Serial port on the domU
I configured a domU to access to the physical serial port of the dom0
(/dev/ttyS0) typing this in the domU configuration file:
irq = [ 4 ]
ioports = [ "3f8-3ff" ]
The domU starts without any error, but the serial port isn''t recognised.
The /dev/ttyS0 device exists on the domU, and I blacklisted the
serial_core, the 8250 and 8250_pnp modules on the dom0.
What is the problem?
2012 Jan 24
0
[LLVMdev] Pointer aliasing
Peter Cooper wrote:
> I think the problem here is that the IR doesn't have any way to attach restrict information to loads/stores/pointers.
I think we do now, actually. Now that the loads and stores have TBAA
metadata, I think the restrict attribute can go there. It needs to be
attached to every use of a restrict pointer, but that's similar to how
TBAA already works.
> It works
2012 Jan 24
2
[LLVMdev] Pointer aliasing
I think the problem here is that the IR doesn't have any way to attach restrict information to loads/stores/pointers.
It works on arguments because they can be given the 'noalias' attribute, and then the alias analyzer must understand what that means.
Pete
On Jan 24, 2012, at 7:47 AM, Roel Jordans wrote:
> I have no clue, I didn't have time to look into that example yet.
2010 Jun 17
2
[LLVMdev] Strange pointer aliasing behaviour
On Jun 17, 2010, at 9:42 AM, Pierre C wrote:
>
>>> Consider a case like the following:
>>> struct X { int a; int b[10]; };
>>> int f(struct X* a) { a->b[-1] = 1; return a->a; }
>>>
>>> This is technically illegal code, but various programs depend on
>>> constructs like this working.
>>>
>
> Actually if you want to
2012 Jan 24
0
[LLVMdev] Pointer aliasing
Hi Brent,
Looking at your code I can see at least one reason why some of the store
operations remain in the output since you are (through x, y, and z)
writing in memory which exists outside of your function (p).
Constant propagation also seems to work in the first few lines, *y = *x
+1 (%3) is stored directly.
The strange thing to me is that the same doesn't happen for *z = *x + 2.
Here
2004 Oct 17
3
how to draw a multivariate function
Hi, Rusers:
Thanks for answering my last questions. I am frustrated in plotting a trinomial pmf function
f(x,y | n, pa, pb) = factorial(n)/ (factorial(x) * factorial(y) * factorial (n-x-y))* pa^x * pb^y * ((1-pa-pb)^(n-x-y))
obviously it is a bivariate function of x and y. But I have put a lot of time on this.
**********************************
x <- seq(0, n, len = n/2+1) # for now I set
2012 Jan 24
0
[LLVMdev] Pointer aliasing
Hi Brent,
I think this is a problem in the easy-cse transform. In this transform
load operations can be replaced by their subexpression, in this case the
propagated constant, based on the value of the 'CurrentGeneration' of
memory writes. This implies that any store operation invalidates the
knowledge about previously stored subexpressions.
In general, this is a safe assumption but
2012 Jan 24
0
[LLVMdev] Pointer aliasing
I have no clue, I didn't have time to look into that example yet.
How does the IR (before optimization) differ from the other version?
Roel
On 01/24/2012 04:45 PM, Brent Walker wrote:
> Can you explain please why it works for this version of the function:
>
> double f(double *__restrict__ x, double *__restrict__ y, double
> *__restrict__ z);
>
> What is different here?
2008 Sep 28
5
birthday problem (factorial limit)
Hi,
I tried to calculate the formula for the birthday problem
(the probability that at least two people out of a group of n people
share the same birthday)
But the factorial-function allows me only to calculate factorials up
to 170.
So is there a way to push that limit?
to solve this formula:
(factorial(365) / factorial((365-23))) / (365^23)
(n=23)
2005 Mar 24
3
Caching computation in rails?
Caching computation in rails?
Simple example: factorial modulus a large number
input: integer x
output: factorial( x ) % 12345678901234567
I want it so that if it computes factorial of N once, it will not have
to compute for N again.
code:
class SiteController < ApplicationController
caches_action :factorial, :inv
def examine
@inv = @params[''inv'']
@outv =
2018 Feb 27
2
Parallel assignments and goto
Interestingly, the <<- operator is also a lot faster than using a namespace explicitly, and only slightly slower than using <- with local variables, see below. But, surely, both must at some point insert values in a given environment ? either the local one, for <-, or an enclosing one, for <<- ? so I guess I am asking if there is a more low-level assignment operation I can get my
2009 Apr 22
5
large factorials
I am working on a project that requires me to do very large factorial
evaluations. On R the built in factorial function and the one I created
both are not able to do factorials over 170. The first gives an error and
mine return Inf.
Is there a way to have R do these larger calculations (the calculator in
accessories can do 10000 factorial and Maple can do even larger)
--
View this message in
2018 Feb 26
0
Parallel assignments and goto
Following up on this attempt of implementing the tail-recursion optimisation ? now that I?ve finally had the chance to look at it again ? I find that non-local return implemented with callCC doesn?t actually incur much overhead once I do it more sensibly. I haven?t found a good way to handle parallel assignments that isn?t vastly slower than simply introducing extra variables, so I am going with
2018 Feb 27
0
Parallel assignments and goto
No clue, but see ?assign perhaps if you have not done so already.
-- Bert
Bert Gunter
"The trouble with having an open mind is that people keep coming along and
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
On Tue, Feb 27, 2018 at 6:51 AM, Thomas Mailund <thomas.mailund at gmail.com>
wrote:
> Interestingly, the
2011 Oct 11
2
Creating the mean using algebra matrix
Dear all,
I wanted to create the mean using a algebra matrix.
so I tried this one:
> meanAnimals <- new3%*%factorial
(Calculates the matrix multiplication of the new3 * factorial).
But I get the following error message:
Error in new3 %*% factorial : non-conformable arguments
These are my matrices:
> new3
[,1] [,2]
[1,] 1.350 8.1
[2,] 465.000 423.0
2018 Feb 11
4
Parallel assignments and goto
Hi guys,
I am working on some code for automatically translating recursive functions into looping functions to implemented tail-recursion optimisations. See https://github.com/mailund/tailr
As a toy-example, consider the factorial function
factorial <- function(n, acc = 1) {
if (n <= 1) acc
else factorial(n - 1, acc * n)
}
I can automatically translate this into the loop-version
2018 Feb 11
0
Parallel assignments and goto
> On Feb 11, 2018, at 7:48 AM, Thomas Mailund <thomas.mailund at gmail.com> wrote:
>
> Hi guys,
>
> I am working on some code for automatically translating recursive functions into looping functions to implemented tail-recursion optimisations. See https://github.com/mailund/tailr
>
> As a toy-example, consider the factorial function
>
> factorial <-