aboutsummaryrefslogtreecommitdiff
path: root/clang/tools/include-mapping/cppreference_parser.py
diff options
context:
space:
mode:
authorFabian Ritter <fabian.ritter@amd.com>2024-11-04 12:41:53 +0100
committerGitHub <noreply@github.com>2024-11-04 12:41:53 +0100
commitafa23ea03741193e36b05ddd508d38a90a18a8b8 (patch)
treef557ff5e779f5a12666ea525a05ffe4eb4fc6afe /clang/tools/include-mapping/cppreference_parser.py
parent5f30b1aae0a3e2d3c4c9a50ef4af9457fbea094f (diff)
downloadllvm-afa23ea03741193e36b05ddd508d38a90a18a8b8.zip
llvm-afa23ea03741193e36b05ddd508d38a90a18a8b8.tar.gz
llvm-afa23ea03741193e36b05ddd508d38a90a18a8b8.tar.bz2
[X86] Insert CALLSEQ when lowering GlobalTLSAddress for ELF targets (#113706)
When lowering a TLS address for an ELF target, we introduce a call to obtain the TLS base address. So far, we do not insert CALLSEQ_START/END markers around this call when it is generated, but use a custom inserter to insert them in a later phase. This is problematic, since the TLS address call can land in a CALLSEQ for another call before it is wrapped in its own CALLSEQ. That results in nested CALLSEQs, which are illegal and cause errors when expensive checks are enabled, e.g., in issues #45574 and #98042. This patch instead wraps each TLS address call in a CALLSEQ when it is generated so that instruction selection can avoid nested CALLSEQs. This is an alternative to PR #106965, which instead changes the custom inserter to avoid generating CALLSEQs when the TLS address call is already in a CALLSEQ. This patch also effectively reverts commit [228978c](https://github.com/llvm/llvm-project/commit/228978c0dcfc9a9793f3dc8a69f42471192223bc), which introduced the CustomInserter that so far added the CALLSEQ around TLSAddrs. Fixes #45574 and #98042.
Diffstat (limited to 'clang/tools/include-mapping/cppreference_parser.py')
0 files changed, 0 insertions, 0 deletions