aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorArnold Schwaighofer <aschwaighofer@apple.com>2022-03-08 07:19:58 -0800
committerArnold Schwaighofer <aschwaighofer@apple.com>2022-03-08 09:09:51 -0800
commitdcdc1f29bb0cae41d5681183fdf57af8c51de907 (patch)
tree0277afb1150c481420d37b1f4bfe6ce9ffd6e9f0 /flang/lib/Frontend/CompilerInvocation.cpp
parent50bc945a8fc539894fdbf618ace28085c1e19534 (diff)
downloadllvm-dcdc1f29bb0cae41d5681183fdf57af8c51de907.zip
llvm-dcdc1f29bb0cae41d5681183fdf57af8c51de907.tar.gz
llvm-dcdc1f29bb0cae41d5681183fdf57af8c51de907.tar.bz2
InstCombine: Can't fold a phi arg load into the phi if the load is from a swifterror address
`swifterror` addresses are only allowed as operands to load, store, and calls. The following transformation is not allowed. It would create a phi with a `swifterror` address operand. ``` %addr = alloca swifterror i8* br %cond, label %bb1, label %b22 bb1: %val1 = load i8*, i8** %addr br exit bb2: %val2 = load i8*, i8** %addr br exit exit: %val = phi [%val1, %bb1] [%val2, %bb2] ``` => ``` %addr = alloca swifterror i8* br %cond, label %bb1, label %b22 bb1: br exit bb2: br exit exit: %val_addr = phi [%addr, %bb1] [%addr, %bb2] %val2 = load i8*, i8** %val_addr ``` rdar://89865485 Differential Revision: https://reviews.llvm.org/D121217
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions