search for: valuepair

Displaying 14 results from an estimated 14 matches for "valuepair".

2011 Dec 02
5
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...ectorize : public BasicBlockPass { > + static char ID; // Pass identification, replacement for typeid > + BBVectorize() : BasicBlockPass(ID) { > + initializeBBVectorizePass(*PassRegistry::getPassRegistry()); > + } > + > + typedef std::pair<Value *, Value *> ValuePair; > + typedef std::pair<ValuePair, size_t> ValuePairWithDepth; > + typedef std::pair<ValuePair, ValuePair> VPPair; // A ValuePair pair > + typedef std::pair<std::multimap<Value *, Value *>::iterator, > + std::multimap<Value *, Value *>::...
2011 Dec 14
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...ss { > > + static char ID; // Pass identification, replacement for typeid > > + BBVectorize() : BasicBlockPass(ID) { > > + initializeBBVectorizePass(*PassRegistry::getPassRegistry()); > > + } > > + > > + typedef std::pair<Value *, Value *> ValuePair; > > + typedef std::pair<ValuePair, size_t> ValuePairWithDepth; > > + typedef std::pair<ValuePair, ValuePair> VPPair; // A ValuePair pair > > + typedef std::pair<std::multimap<Value *, Value *>::iterator, > > + std::multimap<Va...
2011 Nov 23
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Mon, 2011-11-21 at 21:22 -0600, Hal Finkel wrote: > On Mon, 2011-11-21 at 11:55 -0600, Hal Finkel wrote: > > Tobias, > > > > I've attached an updated patch. It contains a few bug fixes and many > > (refactoring and coding-convention) changes inspired by your comments. > > > > I'm currently trying to fix the bug responsible for causing a compile
2011 Dec 02
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...ss { > > + static char ID; // Pass identification, replacement for typeid > > + BBVectorize() : BasicBlockPass(ID) { > > + initializeBBVectorizePass(*PassRegistry::getPassRegistry()); > > + } > > + > > + typedef std::pair<Value *, Value *> ValuePair; > > + typedef std::pair<ValuePair, size_t> ValuePairWithDepth; > > + typedef std::pair<ValuePair, ValuePair> VPPair; // A ValuePair pair > > + typedef std::pair<std::multimap<Value *, Value *>::iterator, > > + std::multimap<Va...
2011 Nov 22
5
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Mon, 2011-11-21 at 11:55 -0600, Hal Finkel wrote: > Tobias, > > I've attached an updated patch. It contains a few bug fixes and many > (refactoring and coding-convention) changes inspired by your comments. > > I'm currently trying to fix the bug responsible for causing a compile > failure when compiling >
2017 Aug 19
1
[PATCH] nv50/ra: Only increment DefValue counter if we are going to spill
...s/nouveau/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp index e4f38c8e46..5034f8f989 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp @@ -1750,8 +1750,7 @@ SpillCodeInserter::run(const std::list<ValuePair>& lst) // multiple destinations that all need to be spilled (like OP_SPLIT). unordered_set<Instruction *> to_del; - for (Value::DefIterator d = lval->defs.begin(); d != lval->defs.end(); - ++d) { + for (Value::DefIterator d = lval->defs.begi...
2013 Aug 02
1
[LLVMdev] replacing GetElementPtrConstantExpr with GetElementPtrInst ... sometimes
...i32 0) must be skipped and not replaced. Hence 'replaceAllUsesWith' is a bad idea! I plan to explore the parent node next to verify its type and replace its GetElementPtrConstantExpr operand if it is an instruction. Q: Is this the right direction? Thank you. Robert namespace { struct ValuePair { Value * CE; Value * Inst; }; } static bool hasNonInstructionUse(GlobalVariable *GV) { // first try to replace GetElementPtrConstantExpr with GetElementPtrInst SmallVector<ValuePair,4> Replace; for (Value::use_iterator UI = GV->use_begin(), E = GV->use_end(); UI != E; ++UI) {...
2014 Sep 25
0
[PATCH] nv50/ir: avoid deleting pseudo instructions too early
.../gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp @@ -25,6 +25,7 @@ #include <stack> #include <limits> +#include <tr1/unordered_set> namespace nv50_ir { @@ -1547,6 +1548,11 @@ SpillCodeInserter::run(const std::list<ValuePair>& lst) LValue *lval = it->first->asLValue(); Symbol *mem = it->second ? it->second->asSym() : NULL; + // Keep track of which instructions to delete later. Deleting them + // inside the loop is unsafe since a single instruction may have + // multi...
2012 Apr 04
2
[LLVMdev] Fwd: [Review Request][PATCH] Add the function "vectorizeBasicBlock"
...ry());     } + +    BBVectorize(Pass *P) : BasicBlockPass(ID) { +      AA = &P->getAnalysis<AliasAnalysis>(); +      SE = &P->getAnalysis<ScalarEvolution>(); +      TD = P->getAnalysisIfAvailable<TargetData>(); +    }     typedef std::pair<Value *, Value *> ValuePair;     typedef std::pair<ValuePair, size_t> ValuePairWithDepth; @@ -280,11 +286,7 @@ namespace {                      Instruction *&InsertionPt,                      Instruction *I, Instruction *J); -    virtual bool runOnBasicBlock(BasicBlock &BB) { -      AA = &getAnalysis<Ali...
2012 Apr 04
0
[LLVMdev] [Review Request][PATCH] Add the function "vectorizeBasicBlock"
...e(Pass *P) : BasicBlockPass(ID) { > +      AA = &P->getAnalysis<AliasAnalysis>(); > +      SE = &P->getAnalysis<ScalarEvolution>(); > +      TD = P->getAnalysisIfAvailable<TargetData>(); > +    } > >     typedef std::pair<Value *, Value *> ValuePair; >     typedef std::pair<ValuePair, size_t> ValuePairWithDepth; > @@ -280,11 +286,7 @@ namespace { >                      Instruction *&InsertionPt, >                      Instruction *I, Instruction *J); > > -    virtual bool runOnBasicBlock(BasicBlock &BB) { >...
2014 Sep 01
0
[PATCH] nv50/ir: use unordered_set instead of list to keep track of var defs
...(Value::DefIterator d = lval->defs.begin(); d != lval->defs.end(); ++d) - lval->join->defs.remove(*d); + lval->join->defs.erase(*d); lval->join = lval; } } @@ -1547,8 +1547,7 @@ SpillCodeInserter::run(const std::list<ValuePair>& lst) LValue *lval = it->first->asLValue(); Symbol *mem = it->second ? it->second->asSym() : NULL; - for (Value::DefIterator d = lval->defs.begin(); d != lval->defs.end(); - ++d) { + for (Value::DefIterator d = lval->defs.begin();...
2014 Dec 02
0
[PATCH RESEND] nv50/ir: use unordered_set instead of list to keep track of var defs
...(Value::DefIterator d = lval->defs.begin(); d != lval->defs.end(); ++d) - lval->join->defs.remove(*d); + lval->join->defs.erase(*d); lval->join = lval; } } @@ -1553,8 +1553,7 @@ SpillCodeInserter::run(const std::list<ValuePair>& lst) // multiple destinations that all need to be spilled (like OP_SPLIT). std::tr1::unordered_set<Instruction *> to_del; - for (Value::DefIterator d = lval->defs.begin(); d != lval->defs.end(); - ++d) { + for (Value::DefIterator d = lval-&gt...
2014 Jul 08
1
[PATCH] nv50/ir: use unordered_set instead of list to keep our instructions in uses
...i = (*insn->getDef(0)->uses.begin())->getInsn(); // if this is a contraint-move there will only be a single use if (i && i->op == OP_MERGE) // do we really still need this ? break; @@ -1559,7 +1559,7 @@ SpillCodeInserter::run(const std::list<ValuePair>& lst) // Unspill at each use *before* inserting spill instructions, // we don't want to have the spill instructions in the use list here. while (!dval->uses.empty()) { - ValueRef *u = dval->uses.front(); + ValueRef *u = *dval-&gt...
2014 May 30
4
[Bug 79462] New: [NVC0/Codegen] Shader compilation falis in spill logic
https://bugs.freedesktop.org/show_bug.cgi?id=79462 Priority: medium Bug ID: 79462 Assignee: nouveau at lists.freedesktop.org Summary: [NVC0/Codegen] Shader compilation falis in spill logic Severity: normal Classification: Unclassified OS: All Reporter: imirkin at alum.mit.edu Hardware: Other