[all-commits] [llvm/llvm-project] 117074: [inferattrs] Don't infer lib func attributes for n...
Philip Reames via All-commits
all-commits at lists.llvm.org
Fri Apr 16 15:37:08 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 11707435ccb44a9377bfed407453e0646a159636
https://github.com/llvm/llvm-project/commit/11707435ccb44a9377bfed407453e0646a159636
Author: Philip Reames <listmail at philipreames.com>
Date: 2021-04-16 (Fri, 16 Apr 2021)
Changed paths:
M llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp
A llvm/test/Transforms/InferFunctionAttrs/nobuiltin.ll
Log Message:
-----------
[inferattrs] Don't infer lib func attributes for nobuiltin functions
If we have a nobuiltin function, we can't assume we know anything about the implementation.
I noticed this when tracing through a log from an in the wild miscompile (https://github.com/emscripten-core/emscripten/issues/9443) triggered after 8666463. We were incorrectly assuming that a custom allocator could not free. (It's not clear yet this is the only problem in said issue.)
I also noticed something similiar mentioned in the commit message of ab243e when scrolling back through history. Through, from what I can tell, that commit fixed symptom not root cause.
The interface we have for library function detection is extremely error prone, but given the interaction between ``nobuiltin`` decls and ``builtin`` callsites, it's really hard to imagine something much cleaner. I may iterate on that, but it'll be invasive enough I didn't want to hold an obvious functional fix on it.
More information about the All-commits
mailing list