Displaying 20 results from an estimated 4000 matches similar to: "Using store with operands in non-zero address space"
2019 Jun 24
3
How to handle ISD::STORE when both operands are FrameIndex?
Hello.
After "Initial selection DAG" stage I get a DAG with node
t14: ch = store<(store 4 into %ir.p45, align 8, addrspace 1)> t10,
FrameIndex:i32<2>, FrameIndex:i32<3>, undef:i32
1. Where does it come from? Can I do anything to make it not appear?
2. If not, how do I change it so that the operand being stored would be
first loaded into a register, and that register
2019 Jun 26
2
How to handle ISD::STORE when both operands are FrameIndex?
On Tue, Jun 25, 2019 at 9:59 AM Tim Northover <t.p.northover at gmail.com>
wrote:
> On Tue, 25 Jun 2019 at 06:26, Gleb Popov via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> >> While the store is being selected LLVM will just treat the value being
> >> stored as a generic pointer-width integer unless you have written a
> >> specific pattern for
2020 Mar 22
2
Legalized selection DAG differs for the same code and flags
Hello, LLVM Devs.
I'm compiling following code using my own backend:
int foo() {
char arr[4];
arr[0] = 0xAA;
arr[1] = 0xBB;
arr[2] = 0xCC;
arr[3] = 0xDD;
return *(int*)&arr[0];
}
The memory operation in "return" statement ends up transformed into 4-byte
load in the initial DAG:
load<(dereferenceable load 4 from %ir.7, align 1, addrspace 1)> t31,
2019 Jun 25
2
How to handle ISD::STORE when both operands are FrameIndex?
On Mon, Jun 24, 2019 at 4:08 PM Tim Northover <t.p.northover at gmail.com>
wrote:
> On Mon, 24 Jun 2019 at 12:16, Gleb Popov via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> > 1. Where does it come from? Can I do anything to make it not appear?
>
> It comes from something like:
>
> %ptr = alloca i8
> %var = alloca i8*
> store i8* %ptr, i8**
2015 Sep 01
2
RFC: alloca -- specify address space for allocation
Thanks,
this makes the use case much more clear.
Now though, as far as I would like actually to see supported in LLVM the capability of not having any special meaning assigned to address space 0 your proposal goes slightly in contrast with how I always thought of address spaces in LLVM.
I also have to say that I don’t know deeply how address spaces are meant to be intended in LLVM so my vision of
2019 Jun 26
2
How to handle ISD::STORE when both operands are FrameIndex?
On Wed, Jun 26, 2019 at 12:38 PM Tim Northover <t.p.northover at gmail.com>
wrote:
> Hi Gleb,
>
> On Wed, 26 Jun 2019 at 07:28, Gleb Popov <6yearold at gmail.com> wrote:
> > def StoreStackF : InstRI<2, (outs), (ins IntRegs:$reg, i32imm:$i),
> > "storestackf $reg, [$i]", [(store_stack i32:$reg,
> AddrFI:$i)]>;
> >
>
2015 Aug 27
2
RFC: alloca -- specify address space for allocation
On 08/26/2015 07:02 PM, Chandler Carruth wrote:
> On Wed, Aug 26, 2015 at 6:46 PM Swaroop Sridhar via llvm-dev
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>
> Currently, the alloca instruction always allocates in the generic
> address space (0).
>
> This proposal is to extend the semantics of alloca instruction to
>
2007 Nov 25
2
[LLVMdev] C embedded extensions and LLVM
>>> Please add a generous block comment to
>>> llvm/include/llvm/Bitcode/LLVMBitCodes.h above the new enum
>>> explaining
>>> what the difference is though. :)
>>
>
> Should have said:
>
>> Should I take the same approach to the encoding of pointer types in
>> the types table?
PointerTypes are a bit easier. The code to write them
2014 Dec 05
3
[LLVMdev] Question on equivalence of pointer types
Is copy.0 semantically equivalent to copy.1 in the following example?
define void @copy.0(i8 addrspace(1)* addrspace(1)* %src, i8
addrspace(1)* addrspace(1)* %dst) {
entry:
%val = load i8 addrspace(1)* addrspace(1)* %src
store i8 addrspace(1)* %val, i8 addrspace(1)* addrspace(1)* %dst
ret void
}
define void @copy.1(i8 addrspace(1)* addrspace(1)* %src, i8
addrspace(1)* addrspace(1)* %dst)
2014 Dec 09
2
[LLVMdev] Question on equivalence of pointer types
> On Dec 8, 2014, at 5:12 PM, Sanjoy Das <sanjoy at playingwithpointers.com> wrote:
>
> Partially answering my own question, in general these are not
> equivalent because LLVM allows for pointers in different address
> spaces to have different sizes. However, are they equivalent if
> pointers in addrspace(1) have the same size as pointers in
> addrspace(0)?
>
>
2016 May 24
1
BitcodeReader non explicit error
Hi,
I'm working on OpenCL and I'm using clang as compiler (based on clang 3.7.0).
I have a issue, I'm generating a bitcode file (that I can print before before the generation). But when I'm trying to read it again with clang, I have this issue:
"error: Invalid record"
How can I managed to know where it comes from?
Thank you,
Romaric
Here is what is print before the
2015 Aug 29
5
RFC: alloca -- specify address space for allocation
> -----Original Message-----
> From: Philip Reames [mailto:listmail at philipreames.com]
> Sent: Friday, August 28, 2015 9:38 AM
> To: Swaroop Sridhar <Swaroop.Sridhar at microsoft.com>; llvm-dev <llvm-
> dev at lists.llvm.org>; Sanjoy Das <sanjoy at playingwithpointers.com>
> Cc: Joseph Tremoulet <jotrem at microsoft.com>; Andy Ayers
> <andya at
2014 Oct 03
2
[LLVMdev] Weird problems with cos (was Re: [PATCH v3 2/3] R600: Add carry and borrow instructions. Use them to implement UADDO/USUBO)
Hi Tom, Matt,
I'm running into strange issues with the cos test (piglit
generated_tests/cl/builtin/math/builtin-float-cos-1.0.generated.c)
I have been seeing random failures (incorrect results) for some time and
tried to investigate. the weird part is that the failures are not 100%
reproducible, sometimes the tests pass, or partly pass
(it's usually float8 and float16 subtests that
2008 Oct 06
3
[LLVMdev] Address calculation
I am attempting to get indexing code generation working with my backend.
However, it seems that the addresses being calculated is being
multiplied by the width of the data type.
define void @ test_input_index_constant_int(i32 addrspace(11)* %input,
i32 addrspace(11)* %result) {
entry:
%input.addr = alloca i32 addrspace(11)* ; <i32
addrspace(11)**> [#uses=2]
2018 Sep 25
2
byval argument causes llvm to crash after inlining
Hello,
With the following reduced test case, cmd "opt -always-inline t.ll" crashes after inlining. Notice that byval argument %a will be remapped to %1 below, and consequently produces an illegal store.
%1 = alloca i32, align 4
store i32 * %1, i32 addrspace(1)** %a.addr, align 8
Looks like Inliner assumes that byval arguments are from address space 0. Or this is just a bug in inliner?
2017 Jan 03
2
Optimisation passes introducing address space casts
OK, I’ve hit one more existing regression test that I’m weary of:
define void @test2_addrspacecast() {
%A = alloca %T
%B = alloca %T
%a = addrspacecast %T* %A to i8 addrspace(1)*
%b = addrspacecast %T* %B to i8 addrspace(1)*
call void @llvm.memcpy.p1i8.p0i8.i64(i8 addrspace(1)* %a, i8* bitcast (%T* @G to i8*), i64 124, i32 4, i1 false)
call void
2018 Sep 25
2
byval argument causes llvm to crash after inlining
It is problematic when byval argument is not from address space 0. When the default alloca address space is 0, should we consider this IR illegal?
define internal i32 @bar(i32 addrspace(1)* byval %a) alwaysinline
From: Reid Kleckner [mailto:rnk at google.com]
Sent: Tuesday, September 25, 2018 2:38 PM
To: Pan, Wei <wei.pan at intel.com>
Cc: llvm-dev <llvm-dev at lists.llvm.org>
2016 Mar 28
0
RFC: atomic operations on SI+
On Fri, Mar 25, 2016 at 02:22:11PM -0400, Jan Vesely wrote:
> Hi Tom, Matt,
>
> I'm working on a project that needs few coherent atomic operations (HSA
> mode: load, store, compare-and-swap) for std::atomic_uint in HCC.
>
> the attached patch implements atomic compare and swap for SI+
> (untested). I tried to stay within what was available, but there are
> few issues
2016 Jun 13
2
Is addrspace info available during instruction scheduling?
We'd like to be able to vary the latency of our load instructions based on
what address space is being loaded from. I was thinking I could do this by
overriding getOperandLatency in our target, but I'm wondering if the
addrspace info is available when instructions are scheduled?
For example, I have this in our llvm IR:
%0 = load i32 addrspace(4)* @answer, align 4
store i32 %0, i32*
2018 Sep 25
2
byval argument causes llvm to crash after inlining
This sounds right to me. If there is no objection, I will implement a patch to enforce this in langref and IR verifier.
-----Original Message-----
From: Friedman, Eli [mailto:efriedma at codeaurora.org]
Sent: Tuesday, September 25, 2018 3:07 PM
To: Pan, Wei <wei.pan at intel.com>; Reid Kleckner <rnk at google.com>
Cc: llvm-dev <llvm-dev at lists.llvm.org>
Subject: Re: