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->...
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->...
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