Displaying 12 results from an estimated 12 matches for "scaninstruction".
2016 Mar 16
0
[PATCH mesa 2/6] nouveau: codegen: Slightly refactor Source::scanInstruction() dst handling
.../drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
index 8a1a426..1e91ad3 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
@@ -1261,9 +1261,9 @@ bool Source::scanInstruction(const struct tgsi_full_instruction *inst)
info->numBarriers = 1;
if (insn.dstCount()) {
- if (insn.getDst(0).getFile() == TGSI_FILE_OUTPUT) {
- Instruction::DstRegister dst = insn.getDst(0);
+ Instruction::DstRegister dst = insn.getDst(0);
+ if (dst.getFile(...
2012 Apr 20
2
[LLVMdev] CriticalAntiDepBreaker rewrites a register operand of a call instruction
...id
*
CriticalAntiDepBreaker has replaced T9_64 with S6_64 to break an
anti-dependence edge.
This code is incorrect since the first operand of JALR64 has to be T9_64 in
PIC mode.
After further investigation, I found that the flag for T9_64 of
CriticalAntiDepBreaker::KeepRegs that had been set in PrescanInstruction
was reset in ScanInstruction, which I think is causing the problem:
*CriticalAntiDepBreaker.cpp:
00154 PrescanInstruction(MI);
00155 ScanInstruction(MI, Count);
*T9_64 is cleared in CriticalAntiDepBreaker.cpp:264:
*Breakpoint 8, llvm::CriticalAntiDepBreaker::ScanInstruction
(this=0x262d290,...
2019 Oct 14
1
[PATCH] nv50/ir: mark STORE destination inputs as used
...nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
index d62d36008e6..8c429026452 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
@@ -1591,6 +1591,12 @@ bool Source::scanInstruction(const struct tgsi_full_instruction *inst)
if (insn.getOpcode() == TGSI_OPCODE_STORE &&
dst.getFile() != TGSI_FILE_MEMORY) {
info->io.globalAccess |= 0x2;
+
+ if (dst.getFile() == TGSI_FILE_INPUT) {
+ // TODO: Handle indirect somehow?
+...
2016 Jan 14
0
[PATCH] nv50/ir: only use FILE_LOCAL_MEMORY for temp arrays that use indirection
...reak;
- case TGSI_FILE_NULL:
case TGSI_FILE_TEMPORARY:
+ for (i = first; i <= last; ++i)
+ tempArrayId[i] = arrayId;
+ break;
+ case TGSI_FILE_NULL:
case TGSI_FILE_ADDRESS:
case TGSI_FILE_CONSTANT:
case TGSI_FILE_IMMEDIATE:
@@ -1241,7 +1260,7 @@ bool Source::scanInstruction(const struct tgsi_full_instruction *inst)
} else
if (insn.getDst(0).getFile() == TGSI_FILE_TEMPORARY) {
if (insn.getDst(0).isIndirect(0))
- mainTempsInLMem = true;
+ indirectTempArrays.insert(insn.getDst(0).getArrayId());
} else
if (insn.g...
2016 Mar 16
2
[PATCH mesa 5/6] nouveau: codegen: Add support for OpenCL global memory buffers
...::FILE_MEMORY_BUFFER;
> - case TGSI_FILE_MEMORY: return nv50_ir::FILE_MEMORY_BUFFER;
> + case TGSI_FILE_MEMORY: return nv50_ir::FILE_MEMORY_GLOBAL;
> case TGSI_FILE_SAMPLER:
> case TGSI_FILE_NULL:
> default:
> @@ -1284,7 +1284,9 @@ bool Source::scanInstruction(const struct tgsi_full_instruction *inst)
> if (dst.isIndirect(0))
> indirectTempArrays.insert(dst.getArrayId());
> } else
> - if (dst.getFile() == TGSI_FILE_BUFFER) {
> + if (dst.getFile() == TGSI_FILE_BUFFER ||
> + (dst.getFile...
2016 Mar 16
0
[PATCH mesa 5/6] nouveau: codegen: Add support for OpenCL global memory buffers
...E_BUFFER: return nv50_ir::FILE_MEMORY_BUFFER;
- case TGSI_FILE_MEMORY: return nv50_ir::FILE_MEMORY_BUFFER;
+ case TGSI_FILE_MEMORY: return nv50_ir::FILE_MEMORY_GLOBAL;
case TGSI_FILE_SAMPLER:
case TGSI_FILE_NULL:
default:
@@ -1284,7 +1284,9 @@ bool Source::scanInstruction(const struct tgsi_full_instruction *inst)
if (dst.isIndirect(0))
indirectTempArrays.insert(dst.getArrayId());
} else
- if (dst.getFile() == TGSI_FILE_BUFFER) {
+ if (dst.getFile() == TGSI_FILE_BUFFER ||
+ (dst.getFile() == TGSI_FILE_MEMORY &&...
2016 Mar 16
0
[PATCH mesa 5/6] nouveau: codegen: Add support for OpenCL global memory buffers
...t;> - case TGSI_FILE_MEMORY: return nv50_ir::FILE_MEMORY_BUFFER;
>> + case TGSI_FILE_MEMORY: return nv50_ir::FILE_MEMORY_GLOBAL;
>> case TGSI_FILE_SAMPLER:
>> case TGSI_FILE_NULL:
>> default:
>> @@ -1284,7 +1284,9 @@ bool Source::scanInstruction(const struct tgsi_full_instruction *inst)
>> if (dst.isIndirect(0))
>> indirectTempArrays.insert(dst.getArrayId());
>> } else
>> - if (dst.getFile() == TGSI_FILE_BUFFER) {
>> + if (dst.getFile() == TGSI_FILE_BUFFER ||
>>...
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 17
4
[PATCH mesa v2 1/2] nouveau: codegen: Use FILE_MEMORY_BUFFER for buffers
Some of the lowering steps we currently do for FILE_MEMORY_GLOBAL only
apply to buffers, making it impossible to use FILE_MEMORY_GLOBAL for
OpenCL global buffers.
This commits changes the buffer code to use FILE_MEMORY_BUFFER at the
ir_from_tgsi and lowering steps, freeing use of FILE_MEMORY_GLOBAL
for use with OpenCL global buffers.
Note that after lowering buffer accesses use the
2014 Feb 04
2
[PATCH 1/3] nv50: rework primid logic
Functionally identical but much simpler. Should also better integrate
with future layer/viewport changes/fixes.
Cc: 10.1 <mesa-stable at lists.freedesktop.org>
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
Not *strictly* necessary in stable, but it will make backporting later fixes
easier. No regressions in piglit.
src/gallium/drivers/nouveau/nv50/nv50_program.c | 5
2011 May 06
0
[LLVMdev] Question about linking llvm-mc when porting a new backend
...igned int)
in libLLVMCodeGen.a(MachineVerifier.cpp.o)
(anonymous
namespace)::MachineVerifier::visitMachineOperand(llvm::MachineOperand
const*, unsigned int)
in libLLVMCodeGen.a(MachineVerifier.cpp.o)
llvm::AggressiveAntiDepBreaker::ScanInstruction(llvm::MachineInstr*,
unsigned int)in libLLVMCodeGen.a(AggressiveAntiDepBreaker.cpp.o)
llvm::AggressiveAntiDepBreaker::PrescanInstruction(llvm::MachineInstr*,
unsigned int, std::set<unsigned int, std::less<unsigned int>,
std::allocator<unsigned int> >&)in
libLLVMCodeGen.a(Aggr...
2015 May 17
14
[PATCH 00/12] Tessellation support for nvc0
This is enough to enable tessellation support on nvc0. It seems to
work a lot better on my GF108 than GK208. I suspect that there's some
sort of scheduling shenanigans that need to be adjusted for
kepler+. Or perhaps some shader header things.
Even with the GF108, I still get occasional blue triangles in Heaven,
but I get a *ton* of them on the GK208 -- seemingly the same issue,
but it's