diff options
| author | jweightma <jacob.weightman@hpe.com> | 2021-05-26 16:33:33 +0200 | 
|---|---|---|
| committer | Sebastian Neubauer <sebastian.neubauer@amd.com> | 2021-05-26 16:40:15 +0200 | 
| commit | fcd32d62c0675abccac7b7f919bb0df52b6c4262 (patch) | |
| tree | 500babeb6e8ba908be58d386a4a5702ad4e64f84 /llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.cpp | |
| parent | b37a2fcd8d7c59c3db4b1c64bbdba6d1bbea9e99 (diff) | |
| download | llvm-fcd32d62c0675abccac7b7f919bb0df52b6c4262.zip llvm-fcd32d62c0675abccac7b7f919bb0df52b6c4262.tar.gz llvm-fcd32d62c0675abccac7b7f919bb0df52b6c4262.tar.bz2 | |
[AMDGPU] Fix function pointer argument bug in AMDGPU Propagate Attributes pass.
This patch fixes a bug in the AMDGPU Propagate Attributes pass where a call
instruction with a function pointer argument is identified as a user of the
passed function, and illegally replaces the called function of the
instruction with the function argument.
For example, given functions f and g with appropriate types, the following
illegal transformation could occur without this fix:
call void @f(void ()* @g)
-->
call void @g(void ()* @g.1)
The solution introduced in this patch is to prevent the cloning and
substitution if the instruction's called function and the function which
might be cloned do not match.
Reviewed By: arsenm, madhur13490
Differential Revision: https://reviews.llvm.org/D101847
Diffstat (limited to 'llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.cpp')
0 files changed, 0 insertions, 0 deletions
