search for: scaninstruction

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