summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@redhat.com>2020-12-22 10:51:41 +0100
committerserge-sans-paille <sguelton@redhat.com>2020-12-22 10:56:31 +0100
commit6fcb039956483988fa4b82a9a3944084353d00a5 (patch)
treebccd86a463c381fb788187f80da3a353664fdc38 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
parentc0c0ae16c3312578cd15fd9913aac3ce528b7602 (diff)
Fold comparison of __builtin_object_size expression with -1 for non-const size
When __builtin_dynamic_object_size returns a non-constant expression, it cannot be -1 since that is an invalid return value for object size. However since passes running after the substitution don't know this, they are unable to optimize away the comparison and hence the comparison and branch stays in there. This change generates an appropriate call to llvm.assume to help the optimizer folding the test. glibc is considering adopting __builtin_dynamic_object_size for additional protection[1] and this change will help reduce branching overhead in fortified implementations of all of the functions that don't have the __builtin___*_chk type builtins, e.g. __ppoll_chk. Also remove the test limit-max-iterations.ll because it was deemed unnecessary during review. [1] https://sourceware.org/pipermail/libc-alpha/2020-November/120191.html Differential Revision: https://reviews.llvm.org/D93015
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp')
0 files changed, 0 insertions, 0 deletions