Tweaked *_compact() arg order

This feels more correct.

*_compact() is notably inconsistent with *_commit/appendattrs(), but I
think this is more a case of attrs/attr_count being a special case.

Code changes, this seems to just be compiler noise. Arg order can affect
quite a bit:

           code          stack
  before: 33876           2824
  after:  33856 (-0.1%)   2824 (+0.0%)
This commit is contained in:
Christopher Haster
2024-05-03 00:21:54 -05:00
parent 580ff26024
commit 3f11e6c4a1
+26 -37
View File
@@ -3552,9 +3552,8 @@ static int lfsr_rbyd_appendcksum(lfs_t *lfs, lfsr_rbyd_t *rbyd) {
return 0;
}
static int lfsr_rbyd_appendattrs(lfs_t *lfs,
lfsr_rbyd_t *rbyd, lfsr_srid_t rid,
lfsr_srid_t start_rid, lfsr_srid_t end_rid,
static int lfsr_rbyd_appendattrs(lfs_t *lfs, lfsr_rbyd_t *rbyd,
lfsr_srid_t rid, lfsr_srid_t start_rid, lfsr_srid_t end_rid,
const lfsr_attr_t *attrs, lfs_size_t attr_count) {
// append each tag to the tree
for (lfs_size_t i = 0; i < attr_count; i++) {
@@ -3597,9 +3596,8 @@ static int lfsr_rbyd_appendattrs(lfs_t *lfs,
return 0;
}
static int lfsr_rbyd_commit(lfs_t *lfs,
lfsr_rbyd_t *rbyd, lfsr_srid_t rid,
const lfsr_attr_t *attrs, lfs_size_t attr_count) {
static int lfsr_rbyd_commit(lfs_t *lfs, lfsr_rbyd_t *rbyd,
lfsr_srid_t rid, const lfsr_attr_t *attrs, lfs_size_t attr_count) {
// append each tag to the tree
int err = lfsr_rbyd_appendattrs(lfs, rbyd, rid, -1, -1,
attrs, attr_count);
@@ -3723,8 +3721,7 @@ static int lfsr_rbyd_appendcompactattr(lfs_t *lfs, lfsr_rbyd_t *rbyd,
}
static int lfsr_rbyd_appendcompactrbyd(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
lfsr_srid_t start_rid, lfsr_srid_t end_rid,
const lfsr_rbyd_t *rbyd) {
const lfsr_rbyd_t *rbyd, lfsr_srid_t start_rid, lfsr_srid_t end_rid) {
// copy over tags in the rbyd in order
lfsr_srid_t rid = start_rid;
lfsr_tag_t tag = 0;
@@ -3891,11 +3888,10 @@ done:;
}
static int lfsr_rbyd_compact(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
lfsr_srid_t start_rid, lfsr_srid_t end_rid,
const lfsr_rbyd_t *rbyd) {
const lfsr_rbyd_t *rbyd, lfsr_srid_t start_rid, lfsr_srid_t end_rid) {
// append rbyd
int err = lfsr_rbyd_appendcompactrbyd(lfs, rbyd_, start_rid, end_rid,
rbyd);
int err = lfsr_rbyd_appendcompactrbyd(lfs, rbyd_,
rbyd, start_rid, end_rid);
if (err) {
return err;
}
@@ -3955,8 +3951,8 @@ static int lfsr_rbyd_appendshrub(lfs_t *lfs, lfsr_rbyd_t *rbyd,
rbyd->trunk |= LFSR_RBYD_ISSHRUB;
// compact our shrub
int err = lfsr_rbyd_appendcompactrbyd(lfs, rbyd, -1, -1,
(const lfsr_rbyd_t*)shrub);
int err = lfsr_rbyd_appendcompactrbyd(lfs, rbyd,
(const lfsr_rbyd_t*)shrub, -1, -1);
if (err) {
return err;
}
@@ -4660,8 +4656,7 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree,
}
// try to compact
err = lfsr_rbyd_compact(lfs, &rbyd_, -1, -1,
&rbyd);
err = lfsr_rbyd_compact(lfs, &rbyd_, &rbyd, -1, -1);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
@@ -4703,8 +4698,7 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree,
}
// copy over tags < split_rid
err = lfsr_rbyd_compact(lfs, &rbyd_, -1, split_rid,
&rbyd);
err = lfsr_rbyd_compact(lfs, &rbyd_, &rbyd, -1, split_rid);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
@@ -4729,8 +4723,7 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree,
}
// copy over tags >= split_rid
err = lfsr_rbyd_compact(lfs, &sibling, split_rid, -1,
&rbyd);
err = lfsr_rbyd_compact(lfs, &sibling, &rbyd, split_rid, -1);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
@@ -4830,13 +4823,13 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree,
}
// merge the siblings together
err = lfsr_rbyd_appendcompactrbyd(lfs, &rbyd_, -1, -1, &rbyd);
err = lfsr_rbyd_appendcompactrbyd(lfs, &rbyd_, &rbyd, -1, -1);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
}
err = lfsr_rbyd_appendcompactrbyd(lfs, &rbyd_, -1, -1, &sibling);
err = lfsr_rbyd_appendcompactrbyd(lfs, &rbyd_, &sibling, -1, -1);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
@@ -4898,8 +4891,8 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree,
}
// this is atomic
static int lfsr_btree_commit(lfs_t *lfs, lfsr_btree_t *btree, lfsr_bid_t bid,
const lfsr_attr_t *attrs, lfs_size_t attr_count) {
static int lfsr_btree_commit(lfs_t *lfs, lfsr_btree_t *btree,
lfsr_bid_t bid, const lfsr_attr_t *attrs, lfs_size_t attr_count) {
// we need some scratch space for tail-recursive attrs
lfsr_attr_t attrs__[4];
uint8_t buffer[2*LFSR_BRANCH_DSIZE];
@@ -6328,8 +6321,7 @@ static lfs_ssize_t lfsr_mdir_estimate__(lfs_t *lfs, const lfsr_mdir_t *mdir,
}
static int lfsr_mdir_compact__(lfs_t *lfs, lfsr_mdir_t *mdir_,
lfsr_srid_t start_rid, lfsr_srid_t end_rid,
const lfsr_mdir_t *mdir) {
const lfsr_mdir_t *mdir, lfsr_srid_t start_rid, lfsr_srid_t end_rid) {
// this is basically the same as lfsr_rbyd_compact, but with special
// handling for inlined trees.
//
@@ -6513,8 +6505,7 @@ compact:;
}
// compact our mdir
err = lfsr_mdir_compact__(lfs, &mdir_, start_rid, end_rid,
mdir);
err = lfsr_mdir_compact__(lfs, &mdir_, mdir, start_rid, end_rid);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
@@ -6670,8 +6661,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
return err;
}
err = lfsr_mdir_compact__(lfs, &mdir_, 0, split_rid,
mdir);
err = lfsr_mdir_compact__(lfs, &mdir_, mdir, 0, split_rid);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
@@ -6690,8 +6680,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
return err;
}
err = lfsr_mdir_compact__(lfs, &msibling_, split_rid, -1,
mdir);
err = lfsr_mdir_compact__(lfs, &msibling_, mdir, split_rid, -1);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
@@ -6984,7 +6973,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
// commit the new mroot anchor
lfsr_mdir_t mrootanchor_;
err = lfsr_mdir_swap__(lfs, &mrootanchor_, &mrootchild, -1);
err = lfsr_mdir_swap__(lfs, &mrootanchor_, &mrootchild, true);
if (err) {
return err;
}
@@ -10148,8 +10137,8 @@ static lfs_ssize_t lfsr_bshrub_read(lfs_t *lfs, const lfsr_file_t *file,
}
// this is atomic
static int lfsr_bshrub_commit(lfs_t *lfs, lfsr_file_t *file, lfsr_bid_t bid,
const lfsr_attr_t *attrs, lfs_size_t attr_count) {
static int lfsr_bshrub_commit(lfs_t *lfs, lfsr_file_t *file,
lfsr_bid_t bid, const lfsr_attr_t *attrs, lfs_size_t attr_count) {
// file must be a bshrub/btree here
LFS_ASSERT(lfsr_bshrub_isbshruborbtree(&file->bshrub));
@@ -10277,8 +10266,8 @@ evict:;
// note this may be a new root
if (!alloc) {
err = lfsr_rbyd_compact(lfs, &rbyd, -1, -1,
&file->bshrub.u.btree);
err = lfsr_rbyd_compact(lfs, &rbyd,
&file->bshrub.u.btree, -1, -1);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;