Displaying 20 results from an estimated 34 matches for "getindirect".
Did you mean:
get_indirect
2016 Mar 16
13
[PATCH mesa 1/6] tgsi_build: Fix return of uninitialized memory in tgsi_*_instruction_memory
tgsi_default_instruction_memory / tgsi_build_instruction_memory were
returning uninitialized memory for tgsi_instruction_memory.Texture and
tgsi_instruction_memory.Format. Note 0 means not set, and thus is a
correct default initializer for these.
Fixes: 3243b6fc97 ("tgsi: add Texture and Format to tgsi_instruction_memory")
Cc: Nicolai Hähnle <nicolai.haehnle at amd.com>
2016 Mar 16
2
[PATCH mesa 5/6] nouveau: codegen: Add support for OpenCL global memory buffers
...00;
> + break;
> case FILE_MEMORY_SHARED:
> code[0] = 0x00000002;
> if (i->subOp == NV50_IR_SUBOP_STORE_UNLOCKED)
> @@ -1678,7 +1685,8 @@ CodeEmitterGK110::emitSTORE(const Instruction *i)
>
> srcId(i->src(1), 2);
> srcId(i->src(0).getIndirect(0), 10);
> - if (i->src(0).getFile() == FILE_MEMORY_BUFFER &&
> + if ((i->src(0).getFile() == FILE_MEMORY_BUFFER ||
> + i->src(0).getFile() == FILE_MEMORY_GLOBAL) &&
> i->src(0).isIndirect(0) &&
> i->getIndirect(0, 0...
2012 Oct 08
1
[LLVMdev] Fwd: Multiply i8 operands promotes to i32
...ListAddr, QualType Ty,
CodeGenFunction &CGF) const { return 0; }
};
ABIArgInfo MSP430ABIInfo::classifyReturnType(QualType RetTy) const {
if (RetTy->isVoidType())
return ABIArgInfo::getIgnore();
if (isAggregateTypeForABI(RetTy))
return ABIArgInfo::getIndirect(0);
return ABIArgInfo::getDirect();
}
ABIArgInfo MSP430ABIInfo::classifyArgumentType(QualType Ty) const {
if (isAggregateTypeForABI(Ty))
return ABIArgInfo::getIndirect(0);
return ABIArgInfo::getDirect();
}
3) Register your new MSP430ABIInfo class in the TargetCodeGenInfo
constructor i...
2016 Mar 16
2
[PATCH mesa 4/6] nouveau: codegen: s/FILE_MEMORY_GLOBAL/FILE_MEMORY_BUFFER/
...gt; case FILE_MEMORY_LOCAL: code[1] = 0x7a800000; code[0] = 0x00000002;
> break;
> case FILE_MEMORY_SHARED:
> code[0] = 0x00000002;
> @@ -1678,7 +1678,7 @@ CodeEmitterGK110::emitSTORE(const Instruction *i)
>
> srcId(i->src(1), 2);
> srcId(i->src(0).getIndirect(0), 10);
> - if (i->src(0).getFile() == FILE_MEMORY_GLOBAL &&
> + if (i->src(0).getFile() == FILE_MEMORY_BUFFER &&
> i->src(0).isIndirect(0) &&
> i->getIndirect(0, 0)->reg.size == 8)
> code[1] |= 1 << 23;
> @@...
2016 Mar 16
0
[PATCH mesa 4/6] nouveau: codegen: s/FILE_MEMORY_GLOBAL/FILE_MEMORY_BUFFER/
...000000; code[0] = 0x00000000; break;
case FILE_MEMORY_LOCAL: code[1] = 0x7a800000; code[0] = 0x00000002; break;
case FILE_MEMORY_SHARED:
code[0] = 0x00000002;
@@ -1678,7 +1678,7 @@ CodeEmitterGK110::emitSTORE(const Instruction *i)
srcId(i->src(1), 2);
srcId(i->src(0).getIndirect(0), 10);
- if (i->src(0).getFile() == FILE_MEMORY_GLOBAL &&
+ if (i->src(0).getFile() == FILE_MEMORY_BUFFER &&
i->src(0).isIndirect(0) &&
i->getIndirect(0, 0)->reg.size == 8)
code[1] |= 1 << 23;
@@ -1690,7 +1690,7 @@ CodeEmitte...
2016 Mar 16
0
[PATCH mesa 5/6] nouveau: codegen: Add support for OpenCL global memory buffers
...[0] = 0x00000002;
+ code[1] = 0x7a800000;
+ break;
case FILE_MEMORY_SHARED:
code[0] = 0x00000002;
if (i->subOp == NV50_IR_SUBOP_STORE_UNLOCKED)
@@ -1678,7 +1685,8 @@ CodeEmitterGK110::emitSTORE(const Instruction *i)
srcId(i->src(1), 2);
srcId(i->src(0).getIndirect(0), 10);
- if (i->src(0).getFile() == FILE_MEMORY_BUFFER &&
+ if ((i->src(0).getFile() == FILE_MEMORY_BUFFER ||
+ i->src(0).getFile() == FILE_MEMORY_GLOBAL) &&
i->src(0).isIndirect(0) &&
i->getIndirect(0, 0)->reg.size == 8)...
2016 Mar 16
0
[PATCH mesa 4/6] nouveau: codegen: s/FILE_MEMORY_GLOBAL/FILE_MEMORY_BUFFER/
...code[1] = 0x7a800000; code[0] = 0x00000002;
>> break;
>> case FILE_MEMORY_SHARED:
>> code[0] = 0x00000002;
>> @@ -1678,7 +1678,7 @@ CodeEmitterGK110::emitSTORE(const Instruction *i)
>>
>> srcId(i->src(1), 2);
>> srcId(i->src(0).getIndirect(0), 10);
>> - if (i->src(0).getFile() == FILE_MEMORY_GLOBAL &&
>> + if (i->src(0).getFile() == FILE_MEMORY_BUFFER &&
>> i->src(0).isIndirect(0) &&
>> i->getIndirect(0, 0)->reg.size == 8)
>> code[1] |=...
2016 Mar 16
0
[PATCH mesa 5/6] nouveau: codegen: Add support for OpenCL global memory buffers
...gt; case FILE_MEMORY_SHARED:
>> code[0] = 0x00000002;
>> if (i->subOp == NV50_IR_SUBOP_STORE_UNLOCKED)
>> @@ -1678,7 +1685,8 @@ CodeEmitterGK110::emitSTORE(const Instruction *i)
>>
>> srcId(i->src(1), 2);
>> srcId(i->src(0).getIndirect(0), 10);
>> - if (i->src(0).getFile() == FILE_MEMORY_BUFFER &&
>> + if ((i->src(0).getFile() == FILE_MEMORY_BUFFER ||
>> + i->src(0).getFile() == FILE_MEMORY_GLOBAL) &&
>> i->src(0).isIndirect(0) &&
>> i-...
2016 Mar 16
2
[PATCH mesa 6/6] nouveau: codegen: Disable more old resource handling code
...I_FILE_MEMORY:
> for (c = 0; c < 4; ++c) {
> if (!dst0[c])
> continue;
> @@ -2295,9 +2300,12 @@ Converter::handleLOAD(Value *dst0[4])
> if (tgsi.getSrc(0).isIndirect(0))
> ld->setIndirect(0, 1, fetchSrc(tgsi.getSrc(0).getIndirect(0), 0, 0));
> }
> - return;
> + break;
> + default:
> + assert(!"Unsupported srcFile for LOAD");
> }
>
> +/* Keep this around for now as reference when adding img support
> getResourceCoords(off, r, 1);
>
> if (isRes...
2012 Jun 13
2
[LLVMdev] Structs passed by value
...@convert(%myType %in) nounwind readonly alwaysinline{
entry:
%in.addr = alloca %myType, align 8
store %myType %in, %myType* %in.addr, align 8
%0 = getelementptr inbounds %myType* %in.addr, i32 0, i32 0
%1 = load i64* %0, align 8
%conv = trunc i64 %1 to i32
ret i32 %conv
}
[ABIArgInfo::getIndirect(0) - Default]
%struct.myType = type { i64 }
define i32 @convert(%struct.myType* nocapture byval %in) nounwind readonly {
entry:
%val = getelementptr inbounds %struct.myType* %in, i64 0, i32 0
%0 = load i64* %val, align 8, !tbaa !0
%conv = trunc i64 %0 to i32
ret i32 %conv
}
[ABIArgInfo::g...
2014 May 16
2
[LLVMdev] It is possible to somehow turn off coercion of struct parameters into ints?
In particular, I would for example like to prevent that two fields of
type i32 are packed into an i64 parameter. And so on...
Thanks!
-- Zvonimir
2012 Dec 06
2
[LLVMdev] Value of structure passed byval to a recurse function not initialized when accessed through GDB
...ruct when accessed through GDB.
This seems to be an ABI problem in clang.
The problem seems to be that when we have pass by value of struct
(having indirect arguments) stack is not aligned properly.
I tried realigning the stack for indirect arguments in(TargetInfo.cpp) -
ABIArgInfo X86_32ABIInfo::getIndirectResult(QualType Ty, bool ByVal)
.....
if (StackAlign == 0)
return ABIArgInfo::getIndirect(4, /*ByVal=*/true,
/*Realign=*/true); // Do a
realign of stack.
...
This seems to have fixed the issue. Also in case we have a large
structure - e.g. -
type...
2016 Mar 16
0
[PATCH mesa 6/6] nouveau: codegen: Disable more old resource handling code
...case TGSI_FILE_BUFFER:
+ case TGSI_FILE_MEMORY:
for (c = 0; c < 4; ++c) {
if (!dst0[c])
continue;
@@ -2295,9 +2300,12 @@ Converter::handleLOAD(Value *dst0[4])
if (tgsi.getSrc(0).isIndirect(0))
ld->setIndirect(0, 1, fetchSrc(tgsi.getSrc(0).getIndirect(0), 0, 0));
}
- return;
+ break;
+ default:
+ assert(!"Unsupported srcFile for LOAD");
}
+/* Keep this around for now as reference when adding img support
getResourceCoords(off, r, 1);
if (isResourceRaw(code, r)) {
@@ -2363,6 +2371,7 @@ Converter::h...
2016 Mar 14
2
[RFC mesa] nouveau: Add support for OpenCL global memory buffers
...::visit(Instruction *i)
} else if (i->src(0).getFile() == FILE_SHADER_OUTPUT) {
assert(prog->getType() == Program::TYPE_TESSELLATION_CONTROL);
i->op = OP_VFETCH;
+#if 0
} else if (i->src(0).getFile() == FILE_MEMORY_GLOBAL) {
Value *ind = i->getIndirect(0, 1);
Value *ptr = loadResInfo64(ind, i->getSrc(0)->reg.fileIndex * 16);
@@ -2126,6 +2127,7 @@ NVC0LoweringPass::visit(Instruction *i)
if (i->defExists(0)) {
bld.mkMov(i->getDef(0), bld.mkImm(0));
}
+#endif
}
break;
case OP_A...
2012 Jun 14
0
[LLVMdev] Structs passed by value
...store %myType %in, %myType* %in.addr, align 8****
>
> %0 = getelementptr inbounds %myType* %in.addr, i32 0, i32 0****
>
> %1 = load i64* %0, align 8****
>
> %conv = trunc i64 %1 to i32****
>
> ret i32 %conv****
>
> }****
>
> ** **
>
> [ABIArgInfo::getIndirect(0) – Default]****
>
> %struct.myType = type { i64 }****
>
> ** **
>
> define i32 @convert(%struct.myType* nocapture byval %in) nounwind readonly
> {****
>
> entry:****
>
> %val = getelementptr inbounds %struct.myType* %in, i64 0, i32 0****
>
> %0 = load i6...
2014 Jan 13
20
[PATCH 00/19] nv50: add sampler2DMS/GP support to get OpenGL 3.2
OK, so there's a bunch of stuff in here. The geometry stuff is based on the
work started by Bryan Cain and Christoph Bumiller.
Patches 01-12: Add support for geometry shaders and fix related issues
Patches 13-14: Make it possible for fb clears to operate on texture attachments
with an explicit layer set (as is allowed in gl 3.2).
Patches 15-17: Make ARB_texture_multisample work
2016 Mar 16
0
[PATCH mesa 6/6] nouveau: codegen: Disable more old resource handling code
...for (c = 0; c < 4; ++c) {
>> if (!dst0[c])
>> continue;
>> @@ -2295,9 +2300,12 @@ Converter::handleLOAD(Value *dst0[4])
>> if (tgsi.getSrc(0).isIndirect(0))
>> ld->setIndirect(0, 1, fetchSrc(tgsi.getSrc(0).getIndirect(0), 0, 0));
>> }
>> - return;
>> + break;
>> + default:
>> + assert(!"Unsupported srcFile for LOAD");
>> }
>>
>> +/* Keep this around for now as reference when adding img support
>> getResourceCoords(...
2012 Dec 06
0
[LLVMdev] Value of structure passed byval to a recurse function not initialized when accessed through GDB
...gt; This seems to be an ABI problem in clang.
> The problem seems to be that when we have pass by value of struct
> (having indirect arguments) stack is not aligned properly.
>
> I tried realigning the stack for indirect arguments in(TargetInfo.cpp) -
>
> ABIArgInfo X86_32ABIInfo::getIndirectResult(QualType Ty, bool ByVal)
>
> .....
> if (StackAlign == 0)
> return ABIArgInfo::getIndirect(4, /*ByVal=*/true,
> /*Realign=*/true); // Do a
> realign of stack.
>
> ...
>
>
> This seems to have fixed the issue. Al...
2016 Mar 14
2
[RFC mesa] nouveau: Add support for OpenCL global memory buffers
...rc(0).getFile() == FILE_SHADER_OUTPUT) {
>> assert(prog->getType() == Program::TYPE_TESSELLATION_CONTROL);
>> i->op = OP_VFETCH;
>> +#if 0
>> } else if (i->src(0).getFile() == FILE_MEMORY_GLOBAL) {
>> Value *ind = i->getIndirect(0, 1);
>> Value *ptr = loadResInfo64(ind, i->getSrc(0)->reg.fileIndex *
>> 16);
>> @@ -2126,6 +2127,7 @@ NVC0LoweringPass::visit(Instruction *i)
>> if (i->defExists(0)) {
>> bld.mkMov(i->getDef(0), bld.mkImm(0));
>>...
2016 Mar 17
4
[PATCH mesa v2 1/2] nouveau: codegen: Use FILE_MEMORY_BUFFER for buffers
...ile() == FILE_SHADER_OUTPUT) {
assert(prog->getType() == Program::TYPE_TESSELLATION_CONTROL);
i->op = OP_VFETCH;
- } else if (i->src(0).getFile() == FILE_MEMORY_GLOBAL) {
+ } else if (i->src(0).getFile() == FILE_MEMORY_BUFFER) {
Value *ind = i->getIndirect(0, 1);
Value *ptr = loadResInfo64(ind, i->getSrc(0)->reg.fileIndex * 16);
// XXX come up with a way not to do this for EVERY little access but
@@ -1978,6 +1979,7 @@ NVC0LoweringPass::visit(Instruction *i)
}
i->setIndirect(0, 1, NULL);
i->...