aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2020-10-05 13:50:17 -0400
committerMatt Arsenault <Matthew.Arsenault@amd.com>2020-10-14 12:55:25 -0400
commit6da31fa4a61d68af21dfa1e144e726ed6d77903e (patch)
tree5fbefad2814540dec31967ac5e2da73ce1980c22 /clang/lib/CodeGen/CodeGenModule.cpp
parent0728b67b2718c114eed0639a134c1e5c1c1eff13 (diff)
downloadllvm-6da31fa4a61d68af21dfa1e144e726ed6d77903e.zip
llvm-6da31fa4a61d68af21dfa1e144e726ed6d77903e.tar.gz
llvm-6da31fa4a61d68af21dfa1e144e726ed6d77903e.tar.bz2
InstCombine: Fix infinite loop in copy-constant-to-alloca transform
This was broken by 16295d521e294b27106e51fac29957c1aac8ff89, when instructions started being handled and not just constant expressions. This was re-inserting an equivalent bitcast to the original memcpy operand, which made a non-functional IR change on every iteration. This also fixes a secondary problem where it was inserting addrspacecasts which may not have been legal (i.e. it changed the source address space). Start visiting all pointer users and fail out if we can't process them. Also start handling the relevant memory intrinsic users. These cases can be dealt with by running InferAddressSpaces separately.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions