Hi,

so it seems a lot of stories of people trying to build Sage on constrained 
devices include something like: "the most time was spent building libm4rie all 
of which pretty much is waiting for swap". 

So let's take a harder look at M4RIE. The file in questions is - as far as I 
can tell - conversion.c:

  https://bitbucket.org/malb/m4rie/src/97a12b045567/src/conversion.c

The job is does is pretty boring: it converts one matrix representation to 
another. In particular given words like a0a1a2a3 b0b1b2b3 it will produce 
words a0b0.... a1b1.... and so on. So it's just bit fiddling.

We want that to be fast and hence this stuff is pretty unrolled.

We also want that to be readable so it makes uses of static inline functions 
and so on.

Options:

= Disable Optimisations =

I don't know if disabling optimisations for this file is an option:

(a) I'm not 100% how to code this autoconf, but it cannot be that hard
(b) we actually *want* this code to be fast, so we'd like to drop useless 
optimisations and keep the good ones

We could also add an option to configure which switches optimisations off for 
this file?

= Split up the file =

This can easily be done, its functions all handle different cases and do not 
interact. Volker suggested it might not make much of a difference because GCC 
optimises beyond file boundaries but if we actually produce different .o 
files, this should work?

Of course, the larger functions like _mzd_cling16 might still be a bottleneck. 
I don't know to break those up

Any other options?

Cheers,
Martin


--
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://martinralbrecht.wordpress.com/
_jab: martinralbre...@jabber.ccc.de

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To post to this group, send email to sage-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-devel+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.


Reply via email to