After Bruno's comments it seems that some typical compilers can benefit from "inline" on some functions, particularly small and commonly used functions, so I removed just the "inline"s that didn't appear like they would help measurably on any typical platform.
>From 66e934b61f05ef32583df2a33f371c768b79c452 Mon Sep 17 00:00:00 2001 From: Paul Eggert <egg...@cs.ucla.edu> Date: Mon, 26 Jul 2010 18:38:19 -0700 Subject: [PATCH] sort: omit some "inline"s * src/sort.c (mergelines, queue_destroy, queue_init, queue_insert): (queue_pop, write_unique, mergelines_node, check_insert): (update_parent): No longer inline; these uses of "inline" seemed unlikely to help performance much. --- src/sort.c | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/sort.c b/src/sort.c index 1fd4ce7..2ee5a1d 100644 --- a/src/sort.c +++ b/src/sort.c @@ -3007,7 +3007,7 @@ mergefiles (struct sortfile *files, size_t ntemps, size_t nfiles, T and LO point just past their respective arrays, and the arrays are in reverse order. NLINES must be at least 2. */ -static inline void +static void mergelines (struct line *restrict t, size_t nlines, struct line const *restrict lo) { @@ -3138,7 +3138,7 @@ unlock_node (struct merge_node *node) /* Destroy merge QUEUE. */ -static inline void +static void queue_destroy (struct merge_node_queue *queue) { heap_free (queue->priority_queue); @@ -3151,7 +3151,7 @@ queue_destroy (struct merge_node_queue *queue) RESERVE should accommodate all of them. Counting a NULL dummy head for the heap, RESERVE should be 2 * NTHREADS. */ -static inline void +static void queue_init (struct merge_node_queue *queue, size_t reserve) { queue->priority_queue = heap_alloc (compare_nodes, reserve); @@ -3162,7 +3162,7 @@ queue_init (struct merge_node_queue *queue, size_t reserve) /* Insert NODE into priority QUEUE. Assume caller either holds lock on NODE or does not need to lock NODE. */ -static inline void +static void queue_insert (struct merge_node_queue *queue, struct merge_node *node) { pthread_mutex_lock (&queue->mutex); @@ -3174,7 +3174,7 @@ queue_insert (struct merge_node_queue *queue, struct merge_node *node) /* Pop NODE off priority QUEUE. Guarantee a non-null, spinlocked NODE. */ -static inline struct merge_node * +static struct merge_node * queue_pop (struct merge_node_queue *queue) { struct merge_node *node; @@ -3192,7 +3192,7 @@ queue_pop (struct merge_node_queue *queue) this function does not actually save the line, nor any key information, thus is only appropriate for internal sort. */ -static inline void +static void write_unique (struct line const *line, FILE *tfp, char const *temp_output) { static struct line const *saved = NULL; @@ -3209,7 +3209,7 @@ write_unique (struct line const *line, FILE *tfp, char const *temp_output) /* Merge the lines currently available to a NODE in the binary merge tree, up to a maximum specified by MAX_MERGE. */ -static inline size_t +static size_t mergelines_node (struct merge_node *restrict node, size_t total_lines, FILE *tfp, char const *temp_output) { @@ -3276,7 +3276,7 @@ mergelines_node (struct merge_node *restrict node, size_t total_lines, /* Insert NODE into QUEUE if it passes insertion checks. */ -static inline void +static void check_insert (struct merge_node *node, struct merge_node_queue *queue) { size_t lo_avail = node->lo - node->end_lo; @@ -3296,7 +3296,7 @@ check_insert (struct merge_node *node, struct merge_node_queue *queue) /* Update parent merge tree NODE. */ -static inline void +static void update_parent (struct merge_node *node, size_t merged, struct merge_node_queue *queue) { -- 1.7.2