summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2011-11-15 00:18:28 +0100
committerChristoph Bumiller <[email protected]>2012-04-14 21:54:01 +0200
commit5e4b2a1a47ca9a173f6419ed2f12c9fba80e757c (patch)
tree097102f2a99b735ac0b6440124aae655107ae33a /src
parentd32ebb8c304725fa6bb7ec2d3d40ce828c713917 (diff)
nv50/ir: Add support for removing functions from a program.
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/nv50/codegen/nv50_ir.h1
-rw-r--r--src/gallium/drivers/nv50/codegen/nv50_ir_bb.cpp2
2 files changed, 3 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir.h b/src/gallium/drivers/nv50/codegen/nv50_ir.h
index e803a8b7b7a..25e729eb5d4 100644
--- a/src/gallium/drivers/nv50/codegen/nv50_ir.h
+++ b/src/gallium/drivers/nv50/codegen/nv50_ir.h
@@ -1001,6 +1001,7 @@ public:
Type getType() const { return progType; }
inline void add(Function *fn, int& id) { allFuncs.insert(fn, id); }
+ inline void del(Function *fn, int& id) { allFuncs.remove(id); }
inline void add(Value *rval, int& id) { allRValues.insert(rval, id); }
bool makeFromTGSI(struct nv50_ir_prog_info *);
diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir_bb.cpp b/src/gallium/drivers/nv50/codegen/nv50_ir_bb.cpp
index 5a76558863c..8854247db8b 100644
--- a/src/gallium/drivers/nv50/codegen/nv50_ir_bb.cpp
+++ b/src/gallium/drivers/nv50/codegen/nv50_ir_bb.cpp
@@ -45,6 +45,8 @@ Function::Function(Program *p, const char *fnName)
Function::~Function()
{
+ prog->del(this, id);
+
if (domTree)
delete domTree;
if (bbArray)