diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2014-08-19 00:20:02 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2014-08-19 00:20:02 +0000 |
commit | 7b859ff22cb712061f294346094487ddce7cf032 (patch) | |
tree | 2468c8663a430ca51ca28540bb18309f242f1a11 /llvm/lib/ExecutionEngine/Interpreter/Interpreter.cpp | |
parent | 171699083d11672faca505edb98dac28c0efd59d (diff) | |
download | llvm-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