On 31/03/16 15:29, Gedare Bloom wrote:
+RTEMS_INLINE_ROUTINE bool _POSIX_Keys_Key_value_find_less(
Patch looks fine. I was just curious, does the compiler actually
inline this too when it is called through a function pointer?
Its good that you asked.
In general GCC is quite good at optimizing this. The generated code for
the keygetspecific.c is identical before and after the patch.
In keysetspecific.c I noticed some changes since here
key_value_pair->key was used instead of key for the comparison. I
changed the _RBTree_Insert_inline() a bit and now the code is nearly
identical (no performance impact) and we can share the less operator
with _RBTree_Find_inline():
diff -u keysetspecific.s*
--- keysetspecific.s 2016-04-01 07:43:19.418847367 +0200
+++ keysetspecific.s.inline 2016-04-01 07:43:02.374888977 +0200
@@ -121,6 +121,7 @@
isync
cmplw 7,10,9
bne+ 7,.L13
+ addi 4,3,8
mr 10,24
b .L14
.p2align 4,,15
@@ -134,7 +135,6 @@
cmpwi 7,9,0
addi 8,9,4
bne+ 7,.L17
- addi 4,3,8
stw 9,12(3)
stw 9,8(3)
li 9,1
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel