aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ExecutionEngine/Interpreter/Interpreter.cpp
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-08-19 00:20:02 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-08-19 00:20:02 +0000
commit7b859ff22cb712061f294346094487ddce7cf032 (patch)
tree2468c8663a430ca51ca28540bb18309f242f1a11 /llvm/lib/ExecutionEngine/Interpreter/Interpreter.cpp
parent171699083d11672faca505edb98dac28c0efd59d (diff)
downloadllvm-7b859ff22cb712061f294346094487ddce7cf032.zip
llvm-7b859ff22cb712061f294346094487ddce7cf032.tar.gz
llvm-7b859ff22cb712061f294346094487ddce7cf032.tar.bz2
NVPTX: Use RAUW instead of reinventing the wheel
This code had a homemade RAUW that was incorrect when a user was a constant: instead of calling `replaceUsersWithOnConstant()` it would incorrectly update the operand in-place, invalidating `LLVMContextImpl::ExprConstants`. RAUW does the job better. The ValueHandle that `GVMap` is holding onto needs to be removed first, so this commit also removes each variable from the map on-the-fly. Since deletions from `ExprConstants` use a linear search that compares directly on the pointer value (instead of using the key), there isn't an obvious way to expose this with a testcase. llvm-svn: 215953
Diffstat (limited to 'llvm/lib/ExecutionEngine/Interpreter/Interpreter.cpp')
0 files changed, 0 insertions, 0 deletions