Displaying 20 results from an estimated 2231 matches for "inner".
2013 Sep 05
0
[LLVMdev] [ast-dump] Class template partial specializations missing from an implicit class template instantiation?
I was looking at the ClassTemplatePartialSpecializationDecl::getInstantiatedFromMember documentation, in the included example it says: "(..) the instantiation of Outer<float>::Inner<int*> will end up instantiating the partial specialization Outer<float>::Inner<U*> (...)".
To understand the concept better, I dumped the AST for the following code:
template<typename T>
struct Outer {
template<typename U> struct Inner {float f(){};};
templa...
2013 Oct 31
0
[LLVMdev] loop vectorizer
...ter 1:
index_0 = 8 index_1 = 12
index_0 = 9 index_1 = 13
index_0 = 10 index_1 = 14
index_0 = 11 index_1 = 15
For completeness, here the code:
void bar(std::uint64_t start, std::uint64_t end, float * __restrict__
c, float * __restrict__ a, float * __restrict__ b)
{
const std::uint64_t inner = 4;
for (std::uint64_t i = start ; i < end ; i+=4 ) {
{
const std::uint64_t ir0 = ( ((i+0)/inner) * 2 + 0 ) * inner +
(i+0)%4;
const std::uint64_t ir1 = ( ((i+0)/inner) * 2 + 1 ) * inner +
(i+0)%4;
c[ ir0 ] = a[ ir0 ] + b[ ir0 ];
c[ ir1 ]...
2013 Oct 31
2
[LLVMdev] loop vectorizer
...fy the address expression ? Can you write " index0 = i*8 + 0 “ and give it a try ?
>
> For completeness, here the code:
>
> void bar(std::uint64_t start, std::uint64_t end, float * __restrict__ c, float * __restrict__ a, float * __restrict__ b)
> {
> const std::uint64_t inner = 4;
> for (std::uint64_t i = start ; i < end ; i+=4 ) {
> {
> const std::uint64_t ir0 = ( ((i+0)/inner) * 2 + 0 ) * inner + (i+0)%4;
> const std::uint64_t ir1 = ( ((i+0)/inner) * 2 + 1 ) * inner + (i+0)%4;
> c[ ir0 ] = a[ ir0 ] + b[ ir0 ];
>...
2020 May 05
2
Missing vectorization of loop due to load late in the loop
...events it, but I
don't know what the best way to fix it would be so I thought I'd share
a reduced version of it to see if anyone here have ideas.
So, what happens can be reproduced on trunk with
opt -O3 -S -o - bbi-39227-reduced.ll
The input program consists of two nested loops where the inner loop
loads a value and does some calculations and then the outer loop writes
the calculated value somewhere.
With
-debug-only=loop-vectorize
I see this printout from the vectorizer for the inner loop:
LV: Not vectorizing: Found an unidentified PHI %h.15 = phi i32 [
%h.11, %inner.cond.preheade...
2008 Jan 04
2
subsetting
..."package:utils"
[17] "package:methods" "Autoloads" "package:base"
The Problem: I'm using a function which is constructing a subset of a dataframe. This dataframe is used in another function. The
structure is like this:
> inner = function (){
+ print('inner:')
+ print(s)
+ }
> outer = function(){
+ t = data.frame(list(X=1:10, Y=LETTERS[1:10]))
+ s = t[t[,'X'] < 5, ]
+ print('outer:')
+ print(t[, 'Y'])
+ inner()
+ }
> outer()
And the response in the R-Console is:
[1] "outer:&...
2004 Aug 22
2
[LLVMdev] How to handle nested procedures?
How would following Pascal code be translated to LLVM?
procedure outer(a: integer): integer;
procedure inner(b: integer): integer;
begin
return a + b
end;
begin
return inner(a)
end;
If outer(10) is called, it returns 20.
The problem here is that inner has access to the locals and formal
arguments of outer. I do not see any direct support for this. It could
be handled by creating...
2012 Dec 30
2
[LLVMdev] alignment issue, getting corrupt double values
I'm having an issue where a certain set of types and insert/extractvalue
are producing the incorrect values. It appears as though extractvalue
getting my sub-structure is not getting the correct data.
I have these types:
%outer = type { i32, %inner, i1 }
%inner = type { double, i32 }
The trouble is that when I have a value of type %outer then proceed to
extract the components of the contained %inner structure I get corrupt
values. If I don't have the "i1" type in there everything works fine,
leading me to think it is something...
2015 Jul 09
4
[LLVMdev] readonly and infinite loops
Here's a fun spin on this same topic (I can't file a bug at this
moment since llvm.org is down).
Consider:
define i32 @x(i32* %x, i1* %y) {
entry:
br label %loop
loop:
%v = phi i32 [ 0 , %entry ], [ %v.inc, %exit.inner ], [ %v, %loop ]
%c = load volatile i1, i1* %y
br i1 %c, label %exit.inner, label %loop
exit.inner:
%c1 = load volatile i1, i1* %y
%x.val = load i32, i32* %x
%v.inc = add i32 %v, %x.val
br i1 %c1, label %exit.real, label %loop
exit.real:
ret i32 %v
}
Now if %c is false every time...
2002 May 29
2
Tcl/tk , question about the environment of the call
This is my simple code, my intention is to let the inner function browse the
objects in the outer function.
#######################
tk1 <- function() {
tk2 <- function() {
inner <- 3
list2 <- ls()
#list objects in fuction tk2
print("**** inner objects ****")
print(list2)
#list objects in fuction tk1
list_paren...
2013 Oct 31
0
[LLVMdev] loop vectorizer
...write " index0 = i*8 + 0 “ and give it a try ?
>
>>
>> For completeness, here the code:
>>
>> void bar(std::uint64_t start, std::uint64_t end, float * __restrict__
>> c, float * __restrict__ a, float * __restrict__ b)
>> {
>> const std::uint64_t inner = 4;
>> for (std::uint64_t i = start ; i < end ; i+=4 ) {
>> {
>> const std::uint64_t ir0 = ( ((i+0)/inner) * 2 + 0 ) * inner +
>> (i+0)%4;
>> const std::uint64_t ir1 = ( ((i+0)/inner) * 2 + 1 ) * inner +
>> (i+0)%4;
>> c[ ir0 ]...
2004 Aug 22
0
[LLVMdev] How to handle nested procedures?
...ohen" <jeffc at jolt-lang.org>
To: <LLVMdev at cs.uiuc.edu>
Sent: Saturday, August 21, 2004 7:35 PM
Subject: [LLVMdev] How to handle nested procedures?
> How would following Pascal code be translated to LLVM?
>
> procedure outer(a: integer): integer;
> procedure inner(b: integer): integer;
> begin
> return a + b
> end;
> begin
> return inner(a)
> end;
>
> If outer(10) is called, it returns 20.
>
> The problem here is that inner has access to the locals and formal
> arguments of outer. I do not see any direc...
2015 Sep 11
5
[RFC] New pass: LoopExitValues
Hi Steve
it seems the general consensus is that the patch feels like a work-around for a problem with LSR (and possibly other loop transformations) that introduces redundant instructions. It is probably best to file a bug and a few of your test cases.
Thanks
Gerolf
> On Sep 10, 2015, at 4:37 PM, Steve King via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> On Thu, Sep 10, 2015
2009 Apr 26
2
THE EQUIVALENT OF SQL INNER TABLE JOIN IN R
Hello all,
Apologize for the newbie question. What's the easiest way to do a SQL inner
table join in R?
Say I have a table containing column names A, B, C and another which has
columns named C, D, E. I would like to do an inner table join on C and
produce a table A, B, C, D, E.
thanks a lot,
N.
--
View this message in context: http://www.nabble.com/THE-EQUIVALENT-OF-SQL-INNER-TA...
2013 Oct 30
3
[LLVMdev] loop vectorizer
Hi Frank,
> We are looking at a variety of target architectures. Ultimately we aim to run on BG/Q and Intel Xeon Phi (native). However, running on those architectures with the LLVM technology is planned in some future. As a first step we would target vanilla x86 with SSE/AVX 128/256 as a proof-of-concept.
Great! It should be easy to support these targets. When you said wide-vectors I assumed
2013 Jun 12
2
Functions within functions - environments
Dear list,
I have a problem with nested functions and I don't manage to get it
solved. I know I should be looking in environments, and I have tried a
lot, but it keeps on erroring.
An easy version of the problem is as follows:
innerfunction<-function()
{
print(paste(a, " from inner function"))
print(paste(b, " from inner function"))
setwd(wd)
}
middlefunction<-function()
{
b="b"
print(paste(b, " from middle function"))
innerfunction()
}
outerfunction<...
2004 Aug 22
1
[LLVMdev] How to handle nested procedures?
...; To: <LLVMdev at cs.uiuc.edu>
> Sent: Saturday, August 21, 2004 7:35 PM
> Subject: [LLVMdev] How to handle nested procedures?
>
>
> > How would following Pascal code be translated to LLVM?
> >
> > procedure outer(a: integer): integer;
> > procedure inner(b: integer): integer;
> > begin
> > return a + b
> > end;
> > begin
> > return inner(a)
> > end;
> >
> > If outer(10) is called, it returns 20.
> >
> > The problem here is that inner has access to the locals and forma...
2008 Jan 09
0
WG: subsetting
...this clarificaton. This is very helpful f?r me.
Matthias
-----Urspr?ngliche Nachricht-----
Von: Gabor Grothendieck [mailto:ggrothendieck at gmail.com]
Gesendet: Freitag, 4. Januar 2008 20:05
An: Matthias Wendel
Cc: r-help at r-project.org
Betreff: Re: [R] subsetting
Here are three ways:
1. Define inner inside outer:
outer <- function() { s <- 1; inner <- function() s; inner() }
outer() # 1
2. Use parent.frame:
inner <- function() parent.frame()$s
outer <- function() { s <- 1; inner() }
outer() # 1
3. Pass s explicitly:
inner <- function(s) s
outer <- function() { s &...
2012 Dec 30
0
[LLVMdev] alignment issue, getting corrupt double values
...ort-ora-y wrote:
> I'm having an issue where a certain set of types and insert/extractvalue
> are producing the incorrect values. It appears as though extractvalue
> getting my sub-structure is not getting the correct data.
>
> I have these types:
>
> %outer = type { i32, %inner, i1 }
> %inner = type { double, i32 }
>
> The trouble is that when I have a value of type %outer then proceed to
> extract the components of the contained %inner structure I get corrupt
> values. If I don't have the "i1" type in there everything works fine,
> leading...
2017 Apr 13
3
Question on induction variable simplification pass
...of information making ScalarEvolution's analysis conservative which can lead to missed performance opportunities.
For example, consider this loopnest-
int i, j;
for(i=0; i< 40; i++)
for(j=0; j< i-1; j++)
A[i+j] = j;
We are mainly interested in the backedge taken count of the inner loop.
Before indvars, the backedge information computed by ScalarEvolution is as follows-
Outer loop-
backedge-taken count is 39
max backedge-taken count is 39
Inner loop-
backedge-taken count is {-2,+,1}<nsw><%for.cond1.preheader>
max backedge-taken count is 37
After indvars, the...
2014 Nov 24
1
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
...arlier in this thread, and I'd like to run something by you to make sure we're on the same page.
Starting from a C++ function that looks like this:
void do_some_thing(int &i)
{
Outer outer;
try {
Middle middle;
if (i == 1) {
do_thing_one();
}
else {
Inner inner;
do_thing_two();
}
}
catch (int en) {
i = -1;
}
}
I'll have IR that looks more or less like this:
; Function Attrs: uwtable
define void @_Z13do_some_thingRi(i32* dereferenceable(4) %i) #0 {
entry:
%i.addr = alloca i32*, align 8
%outer = alloca %class.Outer, al...