aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorBenjamin Maxwell <benjamin.maxwell@arm.com>2024-12-17 10:54:17 +0000
committerGitHub <noreply@github.com>2024-12-17 10:54:17 +0000
commita7dafea384a519342b2fbe210ed101c1e67f3be7 (patch)
tree95123b92f81c5cecd4fcdb30e7d9713731384947 /clang/lib/Frontend/CompilerInvocation.cpp
parentf7988a338ddb53b03e7cb89d839616925bd0ade1 (diff)
downloadllvm-a7dafea384a519342b2fbe210ed101c1e67f3be7.zip
llvm-a7dafea384a519342b2fbe210ed101c1e67f3be7.tar.gz
llvm-a7dafea384a519342b2fbe210ed101c1e67f3be7.tar.bz2
[SDAG] Allow folding stack slots into sincos/frexp in more cases (#118117)
This adds a new helper `canFoldStoreIntoLibCallOutputPointers()` to check that it is safe to fold a store into a node that will expand to a library call that takes output pointers. This requires checking for two (independent) properties: 1. The store is not within a CALLSEQ_START..CALLSEQ_END pair * If it is, the expansion would lead to nested call sequences (which is invalid) 2. The node does not appear as a predecessor to the store * If it does, attempting to merge the store into the call would result in a cycle in the DAG These two properties are checked as part of the same traversal in `canFoldStoreIntoLibCallOutputPointers()`
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions