From: Markus Elfring <elfr...@users.sourceforge.net> Date: Sun, 25 Oct 2020 18:54:36 +0100
A disjunction is applied by this script for the semantic patch language. This construct uses short-circuit evaluation. It has got the consequence that the last element of the specified condition will only be checked if all previous parts did not match. Such a technical detail leads to a recommended ordering of condition parts if you would like to care for optimal run time characteristics of SmPL code. An usage incidence was determined for the specified identifiers in source files from the software “Linux next-20201023” by another SmPL script. See also: Determination of an usage statistic for memory allocation calls https://lore.kernel.org/cocci/2774601.u91sIFNy1E@sonne/ This analysis result indicates a clear ranking for such function calls. Thus reorder the SmPL disjunction items according to their usage incidence. Signed-off-by: Markus Elfring <elfr...@users.sourceforge.net> --- scripts/coccinelle/null/eno.cocci | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/scripts/coccinelle/null/eno.cocci b/scripts/coccinelle/null/eno.cocci index 81584ff87956..969cab5116a9 100644 --- a/scripts/coccinelle/null/eno.cocci +++ b/scripts/coccinelle/null/eno.cocci @@ -17,8 +17,16 @@ virtual report @depends on patch@ expression x,E; @@ - -x = \(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\|kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\)(...) + x = +(kzalloc +|kmalloc +|kcalloc +|kmem_cache_alloc +|kmem_cache_zalloc +|kzalloc_node +|kmalloc_node +|kmem_cache_alloc_node +)(...) ... when != x = E - IS_ERR(x) + !x @@ -27,8 +35,7 @@ x = \(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\|kmem_cache expression x,E; position p1,p2; @@ - -*x = \(kmalloc@p1\|kzalloc@p1\|kcalloc@p1\|kmem_cache_alloc@p1\|kmem_cache_zalloc@p1\|kmem_cache_alloc_node@p1\|kmalloc_node@p1\|kzalloc_node@p1\)(...) +*x = \(kzalloc@p1\|kmalloc@p1\|kcalloc@p1\|kmem_cache_alloc@p1\|kmem_cache_zalloc@p1\|kzalloc_node@p1\|kmalloc_node@p1\|kmem_cache_alloc_node@p1\)(...) ... when != x = E * IS_ERR@p2(x) -- 2.29.1 _______________________________________________ Cocci mailing list Cocci@systeme.lip6.fr https://systeme.lip6.fr/mailman/listinfo/cocci